In this post I have been focusing on additions that are more code related and not quite as visual or flashy. A lot of these are small but I have finally added enough that I feel happy to show off and talk about.

Firstly, I have added a basic foundation for pickups that can interact and change stats on the player. This means that future pickups can use the foundation and many variants can be created with far less effort, with only changed stats and model.

Next is another foundation for future work which took a while to implement, however the time taken will be well worth the ease of replication for multiple future NPC’s. I haven’t added the option to respond with dialogue options however the NPC has states with the ability to change between states easily. The dialogue box is set up to be dynamic to fit in any amount of text.

The following addition is less practical and useful for the future, however it is flashy to a degree especially with the added sounds, giving the player a sense of reward and accomplishment when they find these collectables, which are the main progression point in this short game. They are created off of a base collectable that spawns an amount of particle emitter scenes that are sent off in random directions. These particle emitters move outwards, then after a second or so, travel quickly towards the player and are freed when they hit.

The last addition that I want to talk about here is the ladder, a very simple idea however I have found that in many games they do not feel good to use, so I have gone about fixing what I don’t like about them and implemented a version that is intuitive and smooth to use. the ladder needs to find the player in the scene and modify their movement options so it also requires tweaking the player code as well. The movement is based off of mouse placement and an offset ‘deadzone’ so that entering and exiting aligns more with player intention.

One of the biggest challenges so far is scope and the player controller scaling in size. I have found that the more I add, the more the player controller is required to handle, so to solve this and prevent messiness, I have continuously gone back and refactored for simplicity and added comments for context in order to keep things as clean as possible. Another way to help with this, is to handle as many things as possible from scripts outside of the player, such as on the object being picked up, most of the work will be done on that object and only interact with the stats of the player, and by doing this, makes things much more manageable and easier to tweak and fine tune in the future.