This was the final week until the assignment was due and there was still plenty of work that needed to be done. Class was mainly used for asking questions about the assignment and working on the assignment, though we did discuss particle effects and how to do them, however I still felt like I didn’t quite understand them but it would take a fair amount of time to mess around with them and I had a deadline due so I decided to take what I had then. The main focus for this week was to finish the assignment to the best of my ability.
I continued to work on the levels which were made quite easy from the level population script last week, the only change was to the rate of the types of GameObjects being spawned (i.e. more traps in the other levels). I also needed to add background music and sound effects to the game, this was done easily by using royalty free music from incompetech and generating basic sounds from labchirp. The background music was attached to the GameManager object which is the central point for the levels, it generates the amount and types of GameObjects available in the level. The sound effects, however, were attached to the player as it is the main interaction tool with the level, the sound effects are stored as variables and then called when the player collides with the appropriate GameObject.
The other changes that I needed to do was to add UI to the game screen and main menu, splash and credits screen to credit work of other creators. The first problem I decided to tackle was the UI, I only needed a very basic UI and there was minimal information that I needed to display on the screen (i.e. score and lives). This was done using a canvas with a HUD Controller Script, this was created as an instance so that it could be accessed and updated from the GameManager instance. The main menu, splash and credits screens were fairly straightforward because of time constraints, I used similar methods as my assignment in MDU112, I made sure to credit Rakshi Games and Sugar Asset for the barrels and dungeon trap assets. Copyright is still a big concern of mine, as I am still unsure as to what I can and cannot use for my assignments/games, and how I should credit code/assets properly to avoid infringing copyright. I express my full concerns in another blog post here, where I try and explore the world of Copyright and Contracts, I will continue to do so to ensure that I am not infringing on copyright unknowingly.
The final addition that I needed to add to my game was the bonus feature for the game. I explored a few different options as to what this might be, possibly different states of the player, creating more than one playable character, changing the level slope mid game, and creating moving enemies but ultimately chose to create a secret level for the player to be able to find. This secret level spawned the player onto a platform that was filled with coins which boosted their score greatly, the problem that I had with this method was that I had to load the player into a new scene. This caused errors as the GameManager would reset every time a new scene was loaded, this meant that I had to change the GameManager to be a singleton, this allowed the player score and lives to be tracked. Finally, the game documentation needed to be updated as changes were made to the original documentation.
In conclusion, this week had been extremely busy due to the changes that I needed to make for this assignment and finishing the assignment for GAM112. I didn’t get all the functionality that I wanted to complete done and the development period was definitely not optimal, this will be discussed in the post-mortem writeup next week. But overall I managed to get all the requirements done and learnt a lot of techniques to help me with future projects.