Quartet Launch


Quartet is a platformer game I have been working on for the past 7 months. It has been a long ride so far, full of ups and downs. I am glad I have been able to complete the project.

As most game developers know, one of the biggest joys as a game developer is to start a project and complete the project πŸ˜….

Quartet was a fun project to work on, this is my second project working with the Unity game engine, so when I started it, there were a lot of things I did not know in Unity and there was a whole lot I had to learn, but the whole point of this project was to enhance my skills in Unity and learn more about the engine. I figured that a platformer game would be a great step to enhance my skills.

I encountered a whole lot of challenges while working on the game πŸ˜₯,  one of the major challenges I encountered when I started the project was getting Assets online, I am not an artist in any way or form πŸ˜‚so I had to get 2D assets online, I spent days trying to get the perfect assets for the game before I got one of Kenney's assets, it was hard picking which one to use because Kenney has a whole lot of assets to pick from. I eventually settled for one and started working on the project.


When I started, I first started with the the Game Design Document (GDD), I tried to capture all I wanted the game to be in one document file, my plan for this game was not go beyond scope (even though I went beyond a little bit,πŸ˜‰), I documented about the Game Mechanics, Story, Player Controls, Player Skills, Game Features and so on. 


Image of Game Design Document:


Game Mechanics was really important later on because I was developing a platformer game and for those of you who don't know πŸ˜…, Platformer games have some GOLDEN RULES.  I won't call them golden rules but there are some things that are usually required from platformer games to make if FEEL RIGHT. So while I was working on the game mechanics, I had to consider things like Coyote Time, Jump Buffer, Variable Jump Height, Squash and Stretch, Dashing, and many others.

Unfortunately, Squash and Stretch, was not able to make it to the final build but I made sure to implement mechanics like Coyote Time, Dashing, Jump Buffer and others. Play the game to find out 😏


As I progressed working on the game, I encountered a mighty stumbling block πŸ˜“, a PLAYER CONTROLLER,  initially I thought I was a badass programmer (cough cough...😫), and I thought I would be able to make a standard Player Controller for a 2D platformer game (with just less than a year experience using Unity), but oh was I wrong 🀣🀣, eventually when I found out I could not create a good Player Controller for the game, I had to try and get resources online, getting the Player Controller online was quite difficult because most resources I encountered did not have exactly what was I looking for until I discovered DawnosaurDev from  a YouTube video, his player controller was perfect for what I was trying to implement, I downloaded his source code and went through it and then integrated it to my Unity Project. 


Code of Player Controller Script:




I'll share some of the other prominent difficulties I experienced while working on the project:

  • Setting up CineMachine was an issue because I had not used it previously in Unity, so I had to get used to the whole system of cinemachine and setting it up properly, I remember asking myself multiple times why the default Unity camera did not just work and I had to install and use an external package to have a good camera system. Eventually, I was able to set it up with some tweaking here and there. πŸ˜…


Image of CineMachine Camera GameObject in Unity:

  • Setting up the Enemies/Obstacles in the game was another mountain I had to surmount πŸ˜…, I had to create different Enemy types in different levels, so setting up the script for each Enemy type was a lot of work and also Animations, (animationsπŸ˜ͺ), I was also new to Animations when I started this project in Unity, so setting up the animations was a lot for me that time because I was just getting to understand Unity's Animation System. I remember at a point I had to implement Blend Tress, I almost gave up on Unity at that point by the way πŸ˜…, because Blend Tree caused me so much pain πŸ˜ͺ,  but eventually I was able to figure it out.


Image of Player Animator Controller (Blend Trees):


  • This is not a really a difficulty though, but I recall the first time I built the project using the Build Settings. Fortunately for me, the project ran very fine on first try but the  game UI πŸ˜ͺ was a mess (Why, you would ask...), unfortunately at that time, I did not know I was supposed to change a setting in the Canvas of UI Scale Mode in the game from Constant Pixel Size to Scale with Screen Size, I was able to fix this in time and solve the UI issues I was having. I also learned about Anchors in Unity, and used them appropriately.

  • Another issue I encountered was setting up the Respawn mechanic in the game when player loses, setting up the respawning was a whole lot, I had to also figure out how to respawn players at Checkpoints, I had to create checkpoints at specific areas in each level and used the player's transform.position. I also created an empty Game object, I equated the player's transform.position whenever player falls off the level to the respawn Point's transform.position so that the player effectively starts from that position (Sorry, non-Unity devs, you might not be able to relate with these terms πŸ˜…).


Code of Respawn Script in the game:


Code of Checkpoint Script in the game:

  • Another system I had to implement in the game was a Checkpoint System, I did not want players to start from the beginning of the level after losing so I had to incorporate checkpoint systems, the checkpoint system was fairly easy to implement thankfully, I just set player's position to each checkpoint after player triggers it.



I encountered a whole lot of other challenges when developing this game but I don't want to bore you guys with my problems. πŸ˜†

Overall, developing this game was a fun and a learning experience that I really enjoyed and I'm happy to share the outcome with everyone.

If you made it this far, thank you for reading through!


Till next time, DynamO.β™₯️

Files

Quartet.zip 30 MB
14 days ago

Get Quartet

Leave a comment

Log in with itch.io to leave a comment.