Link to GitHub of my game: https://github.com/qixunnnn/Soulrex
Created by Qi Xun & Jun Wei
What should we create?
After fortnight of rushing Web Application Development (WEB) and Mobile Application Development (MAD) assignments, we finally have time to start this assignment (Sadly on a public holiday...). Even though we are behind time, we promise and strive to do our best to create something unique. We started off with thinking concept and ideas of a magician with orbs. After hours of brainstorming we came out with an idea of creating the protagonist with fighting mechanics of "Invoker" from Dota 2 but different in a way that will be explain later.
Jun Wei decided to use Photoshop to draw a prototype of the protagonist to guide us with better understanding of each others idea. The protagonist will combine different orbs that will cast different abilities. Here are the explanation of the drawings:
It represents the ability to knock opponent backwards. (The Red Guy)
The second image represent how the characters will look like. (The Red guy)
The ability to cast a spell. For example, wind spell can be cast when Water and Air orbs are activated.
Is the character cute or cool? Dark or happy place?
We wanted a character that looks pixelated and cool (He kinda cute tho). Of course, a protagonist must looks like he can fight right? We also wanted a character that suits a darker theme of our game concept.
After hours of searching for the ideal protagonist we want, we came upon this character. We love the way he looks and he fits the characters. With hands looking like boxing glove and looks like he will look good with orbs around him.
We concluded that we will stick to this guy as a protagonist of our game. (Yet to give him a name)
We wanted a more dark theme that we believe will suit a better for the character. We found the perfect background for our protagonist up there.
Both of us had agreed on this as our background and theme.
All our game assets are credits to this talented and wonderful artist: https://hugues-laborde.itch.io/
What program to use? Experience? Neither of us have
We spend this day to decided on what program to use. Our initial idea is to use Game Maker Studio 1.4 but we realized that it is very old and resources online are limited. Therefore, both of us decided to use Game Maker Studio 2 (We didn't buy it, we use 30 days trial). The UI looks more pleasant and information are easy to find online. I think this will suit the best for our game. We also created a GitHub shared repository that will allow us to work together. Jun Wei helped to create and import the files into it.
I tried importing the sprite in and create an object for him. Programming language in Game Maker Studio reminds me of Python. Although i'm familiarize with Python, I still don't understand what I was actually doing. I learned some basics from YouTube to guide me along my start of this assignment.
Time to take a walk and face the opponent
Protagonist running
Opponent
1/3 of orb
Today, I've learn how to make the character moves with animations. The opponent sprite is added and the orbs are created by Jun Wei. Through the day, I was also trying to make sure that the add the map but the it is very ugly below tiles are not added yet. Not everything was as smooth and easy going as I thought it would be I've encounter some issues.
Protagonist keep jerking when moving. [SOLVED. Because collision mask are not set properly]
Protagonist is stuck in the floor after walking. [SOLVED. Collision mask of idle and running is different]
Protagonist has no jump animation. [SOLVED. JunWei created it]
Unfamiliar with Game Maker Studio image editor.
After today, we will split our task accordingly. We separated our roles into doing different things to be more efficient. I will do the designing and he will do the programming as through out a year of assignment with him, we know what are the stronger points of each of us. We will still help each other along the way no worries :).
Time to get some serious work starting
JunWei suggest an idea of changing the fighting mechanics to make our game unique. Instead of choose different combination to cast a skill that sounds cool but not very unique. He wanted to combine orbs that is specifically depend on the indicator above the opponent head. He will explain more of this on his side.
Before we start, Jun Wei and I had came with a story plot. The story started off where the protagonist is instructed to get some woods for the mum for his cooking. He hate helping the mother with all this, just like a typical young teenager. When he went to the forest, he encounter a monster (the opponent), he was a timid boy and was scared off by it and went deeper in to the forest. After running away from the monster, he couldn't find a way out. He kept hearing noises that instruct him to go towards him, which turns out to be the orb. The orb promise to get him out the forest and told him that his mum is in trouble.
After getting out the forest, he realized that his hometown is on fire and the monster that chased him in to the forest was everywhere. He orb enter into the protagonist body and gave him abilities allows him to combine and attack the opponent. The opponent can only be damaged when correct combination of orb is used to damage the opponent. We returned home and realized his mother was dead. He was heartbroken and broke down into tears. The orb told him that her mother soul was captured by a soul keeper to increase his power and he must stop him before he take over the world. The protagonist does not like the idea because he is timid, but the orbs is already in his body and he left with no choice but to save the world. At the same time, he wanted to revenge for his mother as he feels like he responsible for it. We went on a journey to find the boss.
This will teach the characters how to move around, jump and a little story to add immersion experience into the game. Nothing must, simple and easy to follow.
This is the part of the story where his mother instruct him to get some woods and chase by the mother
This is the part where the player will have to walk to the end and talk to the orb. This is the part where he first time encounter the orb.
This is the part where he enter deep into the forest and couldn't get out of it. His first encounter with the orb
I just duplicate the map of Tutorial 1 and change the arrangement of the characters. This is the part where players learn to use orbs to combine different abilities to fight the enemy around.
This is the part he found out that his mother is dead and the orb entered his body which gave him abilities
Through the guidance of YouTube and research from Google, I learn how to create a camera object that will zoom and follow the player in the game. This will make the game more immersive and fun for the players.
After we completed our task, both of us commit, push and pull but we came out with many errors that we are unsure about. It crashes our whole GitHub and game and luckily I have a backup before doing so. I recreate a repository and import the file in. We tried to do the same thing and kept on getting the same thing. We came to the conclusion that both of us cannot do at the same time. This will slow our progress tremendously but we have no choice. We then decided to do our work at different timing with me in the afternoon and him during the night to avoid facing this issue. We also sacrifice our sleep time at night to discuss and work together.
Without sounds and multiple maps, it's boring
This is the map created for game play after the players finish their tutorial. Protagonist will start finding the boss. Added some difficulty when jumping from bridges to bridges to enhance gameplay.
This is the map created for second game play after the player finish the first game play map. The green walls are created by Jun Wei to prevent the enemy from dropping out of their designated location.
Sound effects help to give feedback to players, immerse them inside the virtual realm, and provide an entertaining experience. Most of my sound effects are from Zapsplat (https://www.zapsplat.com/ ).
This feature will create a text message on top of the protagonist head. This object can also be implemented on a sign board. I feel like this play a big part of the story telling in the game.
I've work on a transition object that contains of some enumerator also known enums, that are global scope variables with constant values. All of this can be execute through a script I have created. Transition object can be used to navigate player to other rooms, death effects and also helped with checkpoint. Transition object also create the Black bar effect when fading in and out.
Final part of the game
The props assets are also from the similar person that created the sprite of the protagonist. I felt like this is perfect for our theme and we stick to it. I tried adding other assets but just ruined the way the game looks. I felt like something was missing from the game. I realized that adding water animation helps to make the game more alive and good looking. This water right here +10 points to the aesthetic of the game :O.
After searching for a long time to find the assets that suit, I came upon this tiles which I called them the "Green, Black and Forest" Tiles. The green (grass patch) add some coloring to the game without ruining it. The black (dead flowers) add some points to our dark theme and lastly the "Forest" add some effect that the player is in the forest.
Tutorial 1 Room: One of the map design I have done
Tutorial 2 Room: Another map design I have done
As I realize that we are way behind time, I did the plotting and designing of boss together. When I was plotting the map, I need to think of ways to balance the game. At the start, the player is too strong compared to the boss but was later balanced out by Jun Wei by adding the speed and indicator change. The map was revamped multiple times because there are some bugs here and there. Here are some of the bugs I've encountered:
Protagonist is too powerful because he can hit the boss without getting damage. [SOLVED. We added another type of wall objects in different color that enemy can run through]
The boss was stuck in between walls. [SOLVED. We added another type of wall objects in different color that enemy can run through]
The boss is too slow to chase the player. [SOLVED. Speed has been increased to balance the gameplay]
Last 50 meter of the race
As for the last day of the assignment, I planned out my day to ensure that I complete all the task. Even though we have a hard time trying to take turn and do our work, we still manage our time as efficiently as possible. Here are the task I need to do:
Complete all the map design, ensure that it suits the mood and theme. (Completed)
Connect the whole game together. (Completed)
Balancing of the game. (Done by Jun Wei)
Find bugs and fix it. (Completed)
Return Room: The map after the orb teleport him
Game Play Room 0: Player will start here after the tutorial end
Game Play Room 2: Players must find the way to the boss
When connecting the game together and try to play through the whole game, we decided to add checkpoint to the game to make the game more enjoyable for the player, so now players will spawn back to the start of the room when their player die. We also decided to add an "L" button that will skip the tutorial immediately for the sake of presentation. Both of the features are done by Jun Wei.
Some of the major/minor bugs we encountered are:
Screen fade out before the animation of death is completed.
Checkpoint doesn't work for Game Play Room 2, game will crash sometimes when player die.
Boss hit boxes are larger than it's body.
Text object kept repeating.
Portal spawn before the conversation end.
All of this are fixed except for the second one. We cannot find the main issue to that as it only crashes sometimes.
Balancing of the game:
Revamp the boss map because player can camp and attack the boss without taking damage.
Orb doesn't flip with the arm when enemy turn around.
Enemy arm health will regenerate if not attack for 10s.
Enemy will increase it's speed once his arm are gone.
Due to the lack of time because of the other assignments, we did our very best to create a game that is unique and fun. We initially wanted to add more stuff into the game and I believe that we focus on the certain part of the games like the mechanics of fighting way too much but we hope that we manage to get the game idea across. The source control wasn't great in Game Maker Studio 2 and we don't have a great experience with it.
Overall, I didn't expect myself to have so much fun when creating this game and it was a pleasant experience as I felt like an indie game developer through the process :P. I enjoyed this module a lot and am thankful to have a passionate and fun teacher to guide us along. In the future, if we ever got to do a similar assignment, we will manage our time better. I feel like Game Maker Language (GML) is not as hard to learn as everything it's straight forward. Mathematics is very important went creating game too.
Till next time!