Devlog 3: Elijah Jackson: Moving, Buying, & Changing


"Moving & Knowing"

Elijah Jackson

05/02/2025

New Movement:

This week, my first major focus was to finish adding new movement options for the player to use during gameplay. As of the last update the player was able to move, jump, interact, and shoot. I started this sprint out by giving the player the ability to sprintcrouch, and slide. The new movement features are aimed towards making the game feel faster overall.

Sprint:

To start, I made the sprint ability for the player. It works very simply but is scalable for later updates. Currently, when the player holds LeftShift,  the player speed gets ~67% faster. The speed increase is enough to run into other sections of the map while avoiding enemies. Sprint also disables the use of weaponry in order to keep it balanced from just normally walking. That is why we opted to not have a "stamina bar" or any other form of exhaustion mechanic as well.


Crouch:

Next, I made the crouch ability for the player. Crouching is activated by pressing and holding LeftCtrl. Crouch is the ability that has the least practical applications in game so I wanted to focus on ways of making it useful. Currently, our plans are to have some areas that the movement abilities help access as well as skills that are triggered off of them in the future. Additionally, future enemy types will have attacks that can be mitigated by using the crouch ability.

Slide:

The final new ability is the slide ability.  This ability is activated by holding LeftCtrl, while sprinting. This ability provides a quick "dodge" style mechanic to our game, as well as providing a more cohesive experience to the player. The slide also presented a unique challenge for development this week. Sliding isn't supported by the character movement component that is attached to the player by default. With the crouch and sprint mechanic I could easily modify the character movement component to create them, but sliding was different. 

Currently our game uses input based movement based on a character movement component. This means that player input directly correlates to movement  even when the player isn't animated. For the slide, this style of movement didn't work. To solve this issue I researched animation based movement called root motion. Root motion is movement that is based on the animation itself, the player moves in the animation so they move in the game as well. After implementing a slide animation with root motion I encountered another issue: after sliding the player would freeze in place for a moment before being able to move again. This was because the root motion cancelled out the regular movement causing the player to need to re-accelerate after exiting the slide. To solve this issue, I disabled root motion on the player towards the end of the animation and re adjusted the player's velocity to match what it was when they started the slide. This resulted in a slide that feels very useful, but not too slowing or dragging to the player. The slide has become one of my favorite movement options in the game thus far.

The movement options were very interesting to program and provided me with the opportunity to do some work with states. Something that I found as I went through developing them is that most of the time you don't want them crossing over with each other so I created player states. For example, in order to slide you must be in a sprint state and not in a crouch state. These states allowed me to create a clear idea of how and when I wanted these movement options to be used.


Currency System:

The second thing I worked on this week was the currency system. The player has a currency component that carries their points that can currently be used to purchase weapons and doors. In the future, we plan to have weapon upgrades, player abilities, and objectives that are purchasable with currency. The player can gain currency by defeating enemies and collecting currency drops from them.


The UI has also been updated to show items that have a cost as well as points updating when they are gained on the UI. Each interactable can be assigned a cost which will add the cost section of the UI to the screen. An item that costs more than you have cannot be gained and upon interacting with an item you can afford, the points are removed. The currency system is fairly basic in concept, but easy to build upon for making a fun game loop.

Settings:

The last part of my work this week was the settings menu. Our game needed the ability to have modifiable settings for the player to use. This week, I learned about a class in Unreal entitled GameUserSettings. By default, Unreal has a handful of settings that are saved locally when the game is running and can be edited through a config file. By inheriting from this class I could define my own custom settings to save and write those to the config file as well. For now, our settings are contained to one screen, but we plan on dividing settings into multiple windows in the future for more user options.


One of the facets of the UI that I wanted to focus on with the settings was choice and modularity. I've started by making the minimap and the controls UI toggleable, but I plan to make most elements of the UI toggleable so that players can decide how much information that they would like to have. One of our inspirations for this project is Call of Duty: Zombies and something I've heard from many players of those games is discontent for over engineering of the UI. Many don't like things like the minimap, health bars, or damage numbers. More casual gamers and myself tend to enjoy those elements though. With this in mind, I want to make sure that the game is tailored towards both audiences.

The settings are also persistent, meaning that they do not have to be reset upon relaunching the game. This was important to me, as resetting things like graphics mode, volume, and preferred UI can be tedious over multiple playthroughs.


 Overall:

This week allowed me to focus a lot more on gameplay and making the game feel fun. The new movement options and light balance changes make the core loop more fun and help show promise for future updates. The currency provided a great baseline for gating content through play sessions to build up the experience as the player continues playing. I'm excited to dive into player abilities and more feedback over the next week as we build upon the base and make the game truly fun. Thank you for reading!

Get Mechanical Meltdown

Leave a comment

Log in with itch.io to leave a comment.