Celestial Mines

Celestial Mines is a puzzle platformer designed for Games Studio 2 at UTS, The game revolves around two characters as they delve into the underground in search of treasure.

My Role

My role in the project was that of a lead developer, Our group had half the group size than that of other groups within the class, as such I had to take on more roles to pick up the slack to bring our game to the same level of quality as the rest of our class.

My Goal

My goal for the project was to create a game that was easy to play and fun to explore, with the story helping it along. The size of the game was expected to be small due to the small development team as such we focused more on attention to detail and design to show our skills.

My Achievements

2021-06-26_18-09-02-export.gif

Settings Menu

One thing I often look for when I first start playing a game is the settings menu, I find it quite important to be able to customise the way you play a game even if it’s a small or short game.

Celestial mines was no different, using my skills with Unity’s UI system I set about creating an in-depth settings menu, Allowing people to change their controls, the volume of the game, the resolution of the game and even the UI scale.

Dialogue / Cutscenes

With our game being more story focused we needed a way to get our story across, With that the dialogue system was created.

The dialogue system allows developers to set up custom conversations using Json, The dialogue json file allows developers to set who is talking, what emotion their showing, how fast they’re talking and even allows a sound effect or voice file to be played alongside.

The dialogue system was used alongside Unity’s timeline system to create cutscenes that can then be triggered with ease.

2021-06-26_17-40-25-export.gif

Character Animations

Celestial mines was an opportunity for me to expand my skill set, using my already existing artistic skill with pixel art I decided to take a crack at pixel art animation.

Creating animations for the characters was a hefty task but in the end, the result was far more than I had hoped for, the characters felt like they fit in with the world around them, it felt satisfying watching them move around.

Hooking up the animations with Unity’s animation state system taught me a lot and helped me find ways to make the characters feel more alive, even something a simple as a blink animation can go a long way when creating characters.

2021-06-26_17-05-57-export.gif

Character Pathing

When deciding how the supporting character Maki would move around the game, we decided to have them follow the mouse along to give them a more organic feel however there was one clear issue, and that was that Maki would end up getting stuck on walls when you moved your mouse too fast.

The solution to this was to give Maki a pathing algorithm. I decided to learn how to implement A* pathing expanding my skill set in doing so, the result was well worth the effort, the way Maki moved around was smooth and felt natural and made the moving him around a lot easier.

2021-06-26_17-10-04-export.gif

Mapping the World

A common thing that came up in playtesting was that players would find themselves getting lost in the large map.

Two things were implemented to help that issue, the first of which was a set of land marks that would set one area apart from another, the other addition was a map of the area. The map worked using triggers to tell where the player was and would update the map to include new areas they explored while also placing the character icon in a way that helped players know where they were.

2021-06-26_17-28-21-export.gif

Interactable Objects

Interactable objects like buttons and levers are staples in games, they allow the player to interact with the world.

Celestial mines was no different, implementing a system to allow buttons and levers to be flicked and activated was necessary for the game to function.

I set about to create a system that would allow developers to easily add in new interactable objects that they could then link to any other object with relative ease. This system also allowed for simple logic to be added allowing for us to create a locked door that needed a correct combination to unlock.