For my FMP I have decided to make a short platforming game in Unity 5. I decided to do this because I aspire to be a game designer and because I wanted to challenge myself for our final major project.
After looking into different types of 2D games to determine what would be the best to make, I came to the conclusion that a platformer would be best as it is simpler than a rogue lite game and doesn’t have to be very fast paced like 2D on rail shooter games.
Once I had decided on a genre of game I had to focus my attention on what sort of mechanics I would implement, whether the game would focus on speed or methodical thinking. I settled on trying to combine the two, something that could be completed quickly but could easily result in failure if the player didn’t consider the obstacles that they could encounter.
As for obstacles I decided the best choice would be pitfalls, a common trap in platforming games. The pitfalls are dotted across the game and are generally well hidden. Aside from pitfalls there are also some fake platforms, which don’t have a collision mesh, so the player just falls right through. I wanted to add in an enemy creature that would chase you through the level, however this enemy would require several scripts to work properly and as I am still a beginner at Unity I felt it was best to just exclude it. I still wanted to include a puzzle element to the game so at the moment there is a part of the game where there are five platforms next to each other, but two of these are fake. The player must determine which is which in order to win, if they get it wrong then they will get trapped in a pitfall and be forced to restart.
Speaking of restart, one thing that I really wanted to include in the game was a script that would reload the game when the R button is pressed. I was able to create the script without any bugs but unfortunately when trying to add the script in to Unity it kept coming up with an error message. While I tried my best to find the source of the problem, I was unable and had to exclude the script from the final product. This means that the only way to restart the game is to close the game window and open it again.
When my game was still in the early development stages I used mostly standard assets that came with Unity to get an idea for what the level would look like at the end. These were of course placeholder and I have been able to fully replace them with my own custom sprites. The sprites themselves are quite basic and I made them rather quickly as I wanted to have as much time as I possibly could to work on the rest of the game.
I was able to add some audio into my game, attaching an Audio listener and Audio source to the player character means that now music will be playing throughout the level. My first thoughts when creating the audio was to attach a listener to the player character and then have some sources dotted around the level that would keep the music from fading out. Then I realized that I could simplify the process by just attaching a source on the player character as well. This made the task a lot easier and I was able to complete it in better time than I otherwise would have. The music I selected was a piece from Halo 5, it is clearly unfitting for my type of game but it is very comical to hear this epic music playing over a very simple platformer.
Today I did more work on my FMP, I was able to replace the default Robot-boy sprite with one that I made myself. I also tried to create an animation for said sprite however I was unfortunately unable to get it to work. Another thing I tried to do was to create a way for the player to respawn, first of all I found some code online that gave a basic respawn command. I had to change the code a bit because there were a few errors in it and some of the code was obsolete as it had been created for Unity 4 and I was running Unity 5. The code is still incomplete as there is still a line that is obsolete however once I get a response on how to correct this, the code should be ready for use. I hope it works.
Today I created a sprite in Photoshop that I plan to implement into my game, the sprites roll is to chase the player and kill them if it gets close enough. There are 4 different versions of the sprite, this is so that it can have a small looping animation if I have the time to implement it, the enemy will be flying, so I won’t need to worry about it falling off of the platforms, it also doesn’t have collision so it won’t get caught on objects. I hope to get the enemy implemented into the game tonight.
Over the weekend I spent more time working on my FMP, I spent the majority of the time placing in new platforms and some basic traps, in order to make the course a challenge for players.
At the moment most of the traps are either basic pitfalls, where there is a fake floor that doesn’t have a collision mesh, so people just fall right through. The other trap gives people several routes to pick from, though only one actually has a collision mesh, if people choose the wrong block in the route then they fall.
As I develop the game more and more I would like to implement some more complex traps, for instance one idea I wanted to use was to have platforms falling out from underneath the players as they jump on them. I also wanted to implement some kind of enemy chasing the player later on in the level however I currently do not have a model for this enemy nor do I have an idea for how to introduce it into the level. If I do get it implemented then it will probably float after the player, ignoring the platforms. This is to prevent it from accidentaly falling down at any point.