Designing a 3D Video Game - Avahni & Pri
When we first started this project, we envisioned the creation of a 3D first person horror game in which the player would be able to move through a maze collecting orbs while trying to avoid the petrifying grasp of a shadow-monster that would be tweaked and programmed to chase after the player, in an attempt to stop them from completing the game. You would complete the game by collecting all the orbs, which is explained later on.
To create our project, we used Godot. Godot is a game engine that allows you to create 2D and 3D games. With the requirement of basic level coding skills, Godot is easy to use and can be installed for free across a wide range of devices.
Once we successfully installed Godot, we started playing around with the engine, creating smaller games and programs just to get a feel of how the engine worked and to better understand how we would eventually complete our goal in making a 3D horror game.
Once we got a grasp on how the software worked, we were ready to focus on the main game. We started off by creating the playing field, or in other words, the area where the sprite for the player would exist. First, we created the ground to support the sprite so that when the game started, it wouldn’t just fall through the map. After the ground was implemented, we built the walls surrounding the entire area, adding more walls on the inside of the surrounded area to create a maze in which the player would be running around in.
After the playing field was created, we moved on to creating and programming the player. Since this game was a first person horror game, the body of the player was just a movable block that had a camera on one of the sides so that the player would not be able to see the “body”, making it seem as if the player was seeing the game through their own perspective. We programmed the block to move around the field using the W A S D controls on the keyboard. The angle and direction that the player would look at would be determined by the position of the players mouse on the screen.
Following the completion of programming and creating the player, we moved on to the orbs. The orbs were a bit tricky to program since this was something that we never got the chance to explore in the first stage of our project when we were experimenting with all the different settings. Creating the orbs took a little more time and effort but, in the end, we managed to make it so that when the player would find an orb and run into it, it would disappear and appear in the players inventory. Originally the orbs were supposed to glow and emit a humming noise but although we were able to make the orbs glow, we were unable to find a way to add in the sound to the orbs. Because we were unable to add sound, our entire game was silent but that did not stop us from moving on to the next step.
We finished the orbs and moved on to the shadow monster. The monster was a long dark capsule figure with glowing white eyes. The body of the monster was made to blend in with the dark walls so that it would be harder to see the monster from afar and would provide the player with more of a challenge.
It was at this stage in the game development where we started to face some major problems:
1. We were not able to work on our project together as easily due to the virus outbreak that had hit the world.
2. The program wouldn’t allow us to work on our project from different devices.
3. The project needed a lot of storage and required its own folder which was difficult because we didn’t have a lot of storage to begin with, so we had to delete a lot of things to make space.
4. We lost our work because the program crashed and when we tried to redo as much as we could, the program froze and just wouldn’t load.
Due to these problems, we are unable to share the finished product with you, but we can tell you what we learned and the knowledge we took with us.
Even though what we envisioned at the beginning of the project didn’t come together the way we wanted it to, it was still an enjoyable learning experience that taught us many things. At the beginning, we only knew so much about coding, so this project allowed us to build on that and we learned new things too. Something new we learnt was that a spatial is the most basic 3D game object and is needed to make almost anything. We also learnt that a CollisionShape is a type of node used in 3D games to create shapes such as a cube, sphere, cylinder, and even a concave/convex polygon. What we learned from using the Godot software makes coding on other applications easier so we’re thankful for what we learned on Godot.
In conclusion, we learnt that patience is key when it comes to dealing with your computer freezing as well as with one another. Throughout the many months we worked on this project, we were bound to end up extremely frustrated at one point or another whether it was due to accidentally forgetting to save our work or it be because we just weren’t on the same page when it came to deciding what the next step was. Patience and reminding each other to stay calm when something went wrong came a long way for us as it helped keep our cool. We may not have been able to present a fully completed project this year, but we are still proud of how far we have come and what we were able to accomplish.
To create our project, we used Godot. Godot is a game engine that allows you to create 2D and 3D games. With the requirement of basic level coding skills, Godot is easy to use and can be installed for free across a wide range of devices.
Once we successfully installed Godot, we started playing around with the engine, creating smaller games and programs just to get a feel of how the engine worked and to better understand how we would eventually complete our goal in making a 3D horror game.
Once we got a grasp on how the software worked, we were ready to focus on the main game. We started off by creating the playing field, or in other words, the area where the sprite for the player would exist. First, we created the ground to support the sprite so that when the game started, it wouldn’t just fall through the map. After the ground was implemented, we built the walls surrounding the entire area, adding more walls on the inside of the surrounded area to create a maze in which the player would be running around in.
After the playing field was created, we moved on to creating and programming the player. Since this game was a first person horror game, the body of the player was just a movable block that had a camera on one of the sides so that the player would not be able to see the “body”, making it seem as if the player was seeing the game through their own perspective. We programmed the block to move around the field using the W A S D controls on the keyboard. The angle and direction that the player would look at would be determined by the position of the players mouse on the screen.
Following the completion of programming and creating the player, we moved on to the orbs. The orbs were a bit tricky to program since this was something that we never got the chance to explore in the first stage of our project when we were experimenting with all the different settings. Creating the orbs took a little more time and effort but, in the end, we managed to make it so that when the player would find an orb and run into it, it would disappear and appear in the players inventory. Originally the orbs were supposed to glow and emit a humming noise but although we were able to make the orbs glow, we were unable to find a way to add in the sound to the orbs. Because we were unable to add sound, our entire game was silent but that did not stop us from moving on to the next step.
We finished the orbs and moved on to the shadow monster. The monster was a long dark capsule figure with glowing white eyes. The body of the monster was made to blend in with the dark walls so that it would be harder to see the monster from afar and would provide the player with more of a challenge.
It was at this stage in the game development where we started to face some major problems:
1. We were not able to work on our project together as easily due to the virus outbreak that had hit the world.
2. The program wouldn’t allow us to work on our project from different devices.
3. The project needed a lot of storage and required its own folder which was difficult because we didn’t have a lot of storage to begin with, so we had to delete a lot of things to make space.
4. We lost our work because the program crashed and when we tried to redo as much as we could, the program froze and just wouldn’t load.
Due to these problems, we are unable to share the finished product with you, but we can tell you what we learned and the knowledge we took with us.
Even though what we envisioned at the beginning of the project didn’t come together the way we wanted it to, it was still an enjoyable learning experience that taught us many things. At the beginning, we only knew so much about coding, so this project allowed us to build on that and we learned new things too. Something new we learnt was that a spatial is the most basic 3D game object and is needed to make almost anything. We also learnt that a CollisionShape is a type of node used in 3D games to create shapes such as a cube, sphere, cylinder, and even a concave/convex polygon. What we learned from using the Godot software makes coding on other applications easier so we’re thankful for what we learned on Godot.
In conclusion, we learnt that patience is key when it comes to dealing with your computer freezing as well as with one another. Throughout the many months we worked on this project, we were bound to end up extremely frustrated at one point or another whether it was due to accidentally forgetting to save our work or it be because we just weren’t on the same page when it came to deciding what the next step was. Patience and reminding each other to stay calm when something went wrong came a long way for us as it helped keep our cool. We may not have been able to present a fully completed project this year, but we are still proud of how far we have come and what we were able to accomplish.