itch.io is community of indie game creators and players

Devlogs

Days 1-3 - Rough Start

Speedy Salmon
A downloadable game for Windows

A Rough Start

The beginning of the jam was absolutely not ideal. Day 1, Monday, I planned to have a starting chunk of an environment and part of the player controls done, but I barely got the former completed, not to mention doing a complete project restart to start anew and fresh (I didn't get much done anyway). I just created a flat landscape with a river in the middle using Unreal Engine's Water plugin. Day 2, Tuesday, I planned to start and finish the player controls, but I hit a roadblock on what should be a very simple concept of just moving a character, but I kept smashing my head against the wall and got nothing done.

This has happened to me a lot before, but it's only until now that I realized I didn't have a coping mechanism for it. The only thing I've done when reaching a block is keep trying to force my way through. Don't know why it took me so long but I decided to make myself a rule that when approaching something, before starting it, think of how to do it. Then try doing it. If you hit a block and can't get through for like 15-20 minutes, think of a different angle and execute it. If you start to get desperate, take a break afk and keep brainstorming. Hopefully this can rid me of this bad habit, it's a learning experience!

Completed

Player Controls

Using Unreal Engine's now built-in Enhanced Input System, I created separate actions for player movement and jumping, added keyboard and controller input using an Input Mapping Context (which is where you put these actions together and add a physical input), and in the blueprint I setup to use this mapping on launch.

It was also important to enable or disable input depending on if the player is in the water or not (don't want to keep rising up past the waterline!) so I created a water detection system, and only allowed the movement and jump behavior to occur if the player is in the water.

Mapping Input and Water Detection

Movement and Jump Behavior

The issues I have with the controls are some jank to it, mainly with fine-tuning the detection of when the player leaves the water, because some input still manages to get through, or if you hold W or UpArrow, you'll just be flying in the air very near to the surface. 

Another thing to figure out is the "fly" movement. Right now I have a simple jump which adds an impulse force upwards, which works well for a "skip" movement (though I need to disable this behavior when the player is submerged) but I need to figure out how to add the momentum of rising in the water to a space press to send the player high in the air. However, this is something to look at later as I need to get the foundations of my game working ASAP.

Along with the movement behavior I added the camera behavior. It's extremely simple that if follows behind the player, but I wanted it to obscure part of the environment depending on if the player is on/above or below the surface. If the player is below the water, the camera can't see anything above well, if the player is above, the camera can't see anything below well.

Environment Procedural Content Generation (PCG)

I also added some of my procedural elements to populate the landscape with a forest and the river with grass and rocks. I used Unreal Engine's Procedural Content Generation Framework plugin and it's been fun learning it! I used a low-poly tree asset to create the forest and low-poly grass and rocks to populate the riverbed (credits to the assets will be included in the project). I'm only focusing on one side of the forest for PCG since there is still some things to figure out.

Forest PCG (focusing on one side until it's figured out)

River PCG

Some obstacles I ran into was adding a variation of static meshes to the forest generation. I plan to use a tree, as well as a tree stump, rocks, and plants to populate the forest and add more diversity than a copy-paste, but the values I used to fine-tune how the trees are placed exclude any other mesh's alignment that I add to this system. I'd rather not create multiple PCG systems for the same spatial area, especially when it allows me to add different meshes with weight distributions on the same generation.

Next

Tomorrow I plan to work on environment chunk instantiation and deletion. The objective of the game is to travel a long distance down the river until you reach the ocean. I plan to execute this by creating "chunks" that connect with each other and create a continuous river. Any chunks that the player passes is then deleted or offloaded somehow. I'm basically trying to recreate the way Minecraft does their environment loading through chunks, which is popular for maintaining performance. I have no idea how I'm going to go about this, I'm hoping that I can instantiate landscapes in Unreal, but if my attempts fail then I'll just create a very long river and have it be a shorter experience.

I also plan to start on creating a HUD, and start the Menu systems. The HUD will be very simple, just a linear map or visual showing the distance traveled and how much is left. For Menus I'll obviously have a main menu, options, credits, pause, endgame, and anything else I'm missing. Don't really have experience with UI/UX flow with learning Unreal so far so I'm hoping it goes smoothly.

Overall Standup

  • Completed: player controls, camera view transitions, forest PCG, river PCG
  • Obstacles: forest PCG variations, control jank
  • What To Do Next: environment chunk loading, HUD, menus
  • Possible Roadblocks: executing environment chunk loading, UI/UX inexperience

Check out the FishFest game jam here! --> https://itch.io/jam/fishfest

Download Speedy Salmon
Leave a comment