Today's builds include a number of editor changes and gameplay experiments.
First up, the horizontal placement (vertical in the editor) of enemies can now be controlled via drag and drop, or by nudging via the up and down arrows. This works for both entities and states, and allows multi-hit enemies to change sides between hits.
The settings screen is now "paginated," with one screen for each category. There's also a new category for experimental settings (settings that likely won't be present in the final game, but allow for switching between things that we're currently considering).
The currently exposed experimental options are Camera Position, Action Controls, Movement Controls, Movement Sensitivity, and Edge Danger.
Camera Position allows you to switch between third person, top down, and first person camera positions. The default third person camera placement is likely to be what we stick with here, but the other two give an opportunity to look at and think about the game's presentation in different ways. First person starts to suggest what a hypothetical VR mode might look like, and what concerns (such as the presentation of the sky and background, enemy height, horse visibility, etc.) might be relevant for that kind of perspective. The top down view gives a look at timing and distances - two things that the game doesn't put any effort into communicating just yet.
The Action Controls option allows for switching between three different input modes: immediate, hold till hit, and hold forever. In immediate mode, an action is activated and deactivated the moment the player presses a button, requiring a high degree of precision with timing. The two remaining modes allow the action to be held as long as the player likes, making enemies easier to hit with early swings. In the case of hold till hit, the action is deactivated once an enemy is hit, requiring the button to be pressed again for the next enemy that's vulnerable to that action. Allowing players to hold an action expands the player's options for approaching enemies, and potentially allows for some interesting gameplay variation where actions need to be held for specific durations.
The Movement Controls option allows the player to control lateral movement of their character in one of four modes. One mode where movement is not enabled, one relative mode, an absolute mode with analogue movement, and a second absolute mode where the character moves between "lanes." When movement is enabled, the character will drift toward the edge of the path during turn effects. The edge is dangerous, so players need to keep track of their lateral movement as well as aiming actions to the beat. If movement is something we stick with, obstacles on the path will likely become an additional danger, but whether or not lateral movement should affect whether or not particular enemies can be hit is something we're uncertain of. Lane based movement currently feels nicest, but is least compatible with the turn drift effect/edge danger that we're currently exploring.
The Movement Sensitivity setting controls how much sensitive mouse input is for movement controls. 0.125 feels comfortable for me, but it seems like much lower make for better defaults.
Edge Danger allows for switching between two penalties for touching the edge when movement is enabled. When set to stun, the player will be unable to perform actions for a period of two seconds, but can still move). When set to die, the game will end immediately.
All of these experiments are very rough, and are focused on mechanical exploration over presentation. They're a way for us to poke around in the game's possibility space without spending a lot of resources or time on proper implementations or polished user experience. This can make it a bit difficult for someone outside of the development team to appreciate what's going on, but if you're comfortable looking past the rough edges, I'd be keen to hear your thoughts on what might lead to something interesting or fun!
- Added per-category pagination to settings screen
- Added experimental action controls
- Added experimental movement controls
- Added experimental camera positions
- Added experimental stun and death penalties for moving off the edge of the path when in a movement mode
- Added movement_sensitivity
- Added edge danger indicators
- Added auto lateral movement on turn effects
- Added "lane" based rounding for non-analogue absolute movement
- Added Manager::update_settings() for checking and applying settings when resuming a game
- Added curve based camera position interpolation during INTRO phase (may need separate curves for rotation and position for more control? Maybe switch to animating along a path node in the future?)
- Added x offset positioning to editor (y axis) snapping to 0.75 world unit increments
- Added x offset lerping to enemies changing states
- Added up and down arrow key nudging for entities and states in the editor
- Optimised manager _process() slightly by changing mutually exclusive ifs to else ifs
- Refactored experimental movement_controls to be split into movement_controls and edge_danger
- Refactored action sound effects to store them in a dict indexed by ActionType enum
- Refactored action input processing to loop through ActionTypes
- Refactored editor and manager to use the same beat def parsing
- Renamed character model's attack_ function calls to action_ for consistency
- Refactored processing of confirmed drag movement
- Updated some temporary variables to be Manager class properties
- Updated to allow finer movement by removing dead zone from movement amount
- Updated action input processing to allow attacks to be held
- Updated enemy processing to allow attacks to be reset automatically (for HOLD_TILL_HIT action mode)
- Updated from MainMenu::resume_game() to call Manager::update_settings() instead of calling setup_trainingghosts() explicitly
- Updated multi state enemy pushback to be Vector3
- Updated player horse to ride off into the distance when music track ends instead of stopping
- Updated manager sequence list to contain spawn-offset times and entity instances
- Updated mouse mode to be captured during gameplay and released in the menu
- Fixed player getting stuck on the edge when using absolute controls and making small mouse movements
- Fixed player getting stunned by th edge when already stunned
- Fixed only one sound being used from the missed effects bank
- Fixed relative movement potentially getting weird when returning from pause menu
- Fixed unspawned entities not being freed properly
- Fixed settings menu items not being freed properly when changing settings screen
- Fixed old sequence data not being cleared properly when starting a new game while an existing game is in progress
- Fixed entity get_x_offset() always returning the value for currentState
- Fixed multi state entities' states all using first state's x offset in editor
Get Into Darkgroove Forest
Leave a comment
Log in with itch.io to leave a comment.