Week Two - Retro
Introduction
For the second showreel, we were given the theme of retro. For this, I wanted to make a game and decided to team up again with Mitchel. We decided to go for a retro-styled game that followed a similar genre to the Pokemon games. For this, we initially had the idea of a simple Pokemon battle but unfortunately, we did not have time to add battle mechanics, which is something we will look into at a different time.
Roles
We decided to split the work evenly with me doing about 70% of the cading and 30% of the art and Michell doing 30% of the coding and 70% of the art. For the game, I was in charge of adding the movement mechanics, pokemon mechanics, and the battle scene transition mechanics, with Mitchell taking just the battle mechanics.
For the art, I decided to make the player art and animation assets using asperite. I would make a simple player in the style of the original Pokemon games and make an animation for the idle and walking in all directions. Mitchell was in charge of making the environmental assets including all of the plants and objects in the scene. He also sprited both the Pokemon which can be seen on his blog.
Sprites
Here are the player sprites I made. I made the idle and walk animations going up down and right then flipped the right for the left animations.
Idle:
Walk:
Movement Code
The code of the movement is pretty simple and handles both the movement and animations. this was my first time coding in GDScript and it was really easy to understand as it is similar to C* which I'm used to. For the movement, I used a video series by Coding Quests on making a Pokemon game in Godot, which I will like after the animation segment as I used it for that too.
The script is pretty simple using a variable to get the input from the player then if the player is inputting, times that input direction by the speed variable. This gets the direction the player is pressing and adds speed to that direction. Then if there is no input add friction to the player until they are stopped.
The animation works by using the animation tree to set the animations and direction then if the player is moving play the walking set of animations if not then play the idle set of animations.
Animation work
For the animation I made an animation for each direction, this was simple and Godot uses a very basic timeline animation editor. After this, I made the animation tree. And bellow is the animation and movement in action.
Here is the video I used for movement and animation: Code Your Own Pokémon Game! Battle Transition To the Battle!
Battle Scene
To start, I created the battle scene and transition animation this is just a simple animation of a circle getting bigger then smaller. After this, I created a battle background for the game.
Next, I added the script. the script works by setting the scene and loading it using pre-load. the script then plays the transition animation. It also sets all of the scene details and necessary. Below is a video showing it in action.
Here is the video I used for the battle scene and transition: Code Your Own Pokémon Game! Battle Transition To the Battle!
Pokemon Database
For the last part I got to before I handed it over to Mitchell, I worked on adding the Pokemon to the game in the form of their database. Now for this, the script looks complicated but for the most part, it is pretty simple. first is just a list of the features of the selected Pokemon including the names stats and attacks. here are our Pokemon and their features.
write the three needed functions, one for holding the selected Pokemon, one for adding Pokemon to the held list, and one for adding EXP to that Pokemon. The selected Pokemon is empty till the add Pokemon function adds a Pokemon.
The ads Pokemon function works by looking through every Pokemon in the database using a for loop, then if the Pokemon name is correct then add the Pokemon to a temporary variable then set the selected Pokemon to the temporary list.
The add EXP works by getting the selected Pokemon increasing the EXP amount with the amount variable. Then if the amount is greater than the maximum EXP then increase the level. after that increase the max EXP so the player has to gain more EXP to level up to help with the game's balancing.
Here is the video I used for creating the pokemon database: Code Your Own Pokémon Game! Dokimon Database + Script Setup!
Final Game
Finally here is the game, Have fun.
Final Thoughts & Feedback
For the final game, I am happy with the final product but I would have liked to get the rest of the gameplay done. I like the way the movement feels but I would have liked to make it work with the WASD keys. I really am happy with the teamwork and I feel me and Mitchell worked really well together and had good communication.
Team
Mitchell - Art assets and level building: Mitchell's Blog