Week 4


Week 4 did not go according to plan at all! But that doesn't mean it went bad. As I said in my last devlog, the first thing I did this week was finishing up on the minions. They are now fully functional. The player can select them, order them to move around, they can work, and their skillsets matter on how effective they work. The rooms now track what monsters are in them and calculate their production based on that. However,  I was (strangely) surprised by realising that the game finally became playable to an extent. It is by no means finished but at least I could send it to my friends to play. Since the opportunity for actual testing came around I used it immediately. I received a lot of very useful feedback which totally changed the plans for this week.

A Dungeon Of One Of The Testers

Very impressive dungeon (did not expect anyone to play the game for so long)

All of the initial testers were my friends and I specifically asked them to test the game but I was still surprised to note that most of them played the game for 20-30 mins or even longer. I do hope that this is an indication of how fun the game is. I did not see most of them test the game live, I only received feedback in form of them telling me how they felt/what they did/what they liked/disliked after they already played the game. A lot of people struggled to understand how the game works in the first few minutes and they had to ask me for help. I did anticipate this since it's the very first version of the game and it doesn't have any tutorials but I still took note of it. Testers helped me find a number of bugs in my game. Two of the most important bugs were that some rooms wouldn't connect properly if they were surrounded by other rooms and that sometimes the minions would walk vertically through walls because the nodes of the rooms on the other levels would be closer than the node of their own room and, hence, they would be chosen as the first node in their path.

The testing was a very fun experience that reminded me why I love making games and motivated me to add more of the planned features, but it was also a strong call to slow down for a second. Initially, after the main testing was done I thought that I'd just work on the debugging between my major tasks of the week, but after I had a bit of time to think about it, I realised that I also made a few mistakes in the early stages of creating my game, and if those aren't fixed now, it could lead to bigger trouble down the line. I could either focus on adding as many features as possible and dumping the project right after it's marked or polishing the game with the idea of better potential for later improvements and an overall nicer experience. I decided to go for the second approach. I grew to see a bit of potential in this project and I'm considering continuing it after the semester ends, plus, next week will be my official testing session, so it's good to provide a more polished experience. With all of that in mind, I decided to dedicate this week to polishing my game and fixing previous mistakes. I did add a bit of content but all of it was quality of life content rather than new functions.

I started my polishing by fixing a terrible mistake I made: over-generalisation.  Namely, my room class. It started to grow quite big and I came to realise that if I plan on expanding my game it will get harder and harder to create new unique rooms if there is only one general script for all rooms. I decided to make the room a parent class, as it should've been from the beginning. However, I still don't think each room should have its own script. A lot of rooms function very similarly to each other (for example, mines and generators), so I broke rooms down into categories. This will not only allow for more customisation of each room than a general class would allow, but it will also allow for relatively simple expansions into more convoluted versions of rooms that already exist.

Un-generalising the rooms was the biggest hurdle of the week, but now that it's done each room can be much more unique and they still all work nicely and coherently. Some good examples of the new features that were possible due to that would be: only rooms that need monsters to function dim the lights when there are no monsters in them, ladders now have more coherent textures (texture is chosen depending on how many ladders there are and where a specific ladder is compared to other ladders), battle room now has rocks that the monsters can hide behind (they are on a different layer to the room itself) and the spawner has default task times different to other rooms that make resources.

Moving on to the smaller hurdles, I created a whole list of small things that I wanted to improve. I will briefly go over most of the things that I implemented. I started off by lowering the nodes to make it seem like the minions are actually walking on the floor rather than floating around. The reason they looked like they were floating around is that a node would be created right in the middle of the room, whereas people usually walk closer to the bottom of the room. Some of the testers thought that the skeletons were attached to strings and moved around by something (too philosophical, already falling asleep, must remove). I surprisingly found that the easiest way to do this was to just make the node think and tell everyone that it's lower than it actually is rather than actually lowering it, so that is what I did.

The next two small things would be the two bugs mentioned earlier. While the room bug was easy to fix (simply had to replace an else if with an if), the pathfinding bug was a bit more complicated. After trying different approaches for a bit I decided to simply make the monster go to the node of the room that it is in at the moment first (as it knows which one that is) and that works quite well. No walking through the floor no more, but also monsters are now required to finish their path before starting a new one. Might need more fixing later.

Lastly, I added UI that would help the player understand what is happening as well as give orders to rooms with options (like spawners). It also contains the prices for all monsters to make it easier for the player. Next week I plan to finish up the expeditions. I did manage to start on them but it didn't go so well.


Files

Builds.zip Play in browser
Sep 27, 2022

Leave a comment

Log in with itch.io to leave a comment.