Table of Contents
- Section I: Introduction
- Section II: Game Development Documentation
- Game Theme
- Objectives & Gameplay
- Key Features
- Target Audience
- Technical Details
- Concept Art
- References
- Section III: Tutorial
- Sample Gameplay
- Link to Published Game
- Section IV: Self-Reflection
- Section V: Conclusion
Section I: Introduction
In an industrialized society that's constantly evolving toward STEM careers, it couldn't be more important to ensure that the future of this nation will be properly equipped with the knowledge they need to succeed and excel at working dead-end nine-to-fives. The core principle underlying all of today's modern technology and the revolutionary innovations of the future is but one word: mathematics. With that being said, we all have to start somewhere. So where better to start than teaching our nation's children how to count? After all, mechanical physics and integral calculus would not be possible if Sir Isaac Newton didn't know the solution to 2 + 2! Without further ado, I give to you the revolutionary commutive, associative, and distributive treatise that has transfigured the world of addition: Counting Simulator!
Section II: Game Development Documentation
Game Theme
The theme is in the title. Counting Simulator is all about learning how to count. This entails both learning all of the different single-digit numbers, as well as how to both add and subtract them correctly. In addition, since this game is all about educating the future of our nation, what better setting to place the player in than a futuristic sci-fi warehouse with only minor resemblance to the factory-like environment that the child playing this game will end up laboring in for the majority of their objectively meaningless livelihood!
Objectives & Gameplay
Although the objective of the experience is to teach children how to count, add, and subtract, the objective of the gameplay is to navigate across a variety of dangerous parkour scenarios and reach the end of the course by navigating through a total of three required sectors. Each sector is unique in that they will all specialize in certain areas of mathematics in order of ascending difficulty. The fundamental layout of each level is as follows: the player walks into a room, and there is a large gap that divides each end of the room. There are three separate floating platforms in the middle of the gap that the player can jump on. The distance between the entrance and exit of each room is too great to jump across in one fell swoop. In other words, the player HAS to jump onto one of the platforms if they want to make it to the exit. On the wall across from the entrance and above the exit, the player is presented with a math-related question, such as "What is this number?" or "Which number is the largest?" There will be three different numbers that the player can see, with one number being on top of each floating platform. These numbers indicate the answer choices the player may choose from in response to the question. However, only one of those choices will be correct. The platform with the correct answer choice is the only one the player is able to jump on. The other two incorrect platforms have no box colliders, so if the player tries to jump on them, they will clip through and instead fall down into the pit below. When the player falls into a pit, they will respawn at the beginning of the SECTOR, not the level at which they fell. In addition, when a player respawns, they lose one heart. The player has a total of three hearts, and if they were to lose all three, they would consequently lose the game, and a game over screen would appear prompting the player to restart the entire game from the beginning. To clarify what this would look like, if a player with three hearts falls into a pit on a level in sector two, they will respawn at the beginning of sector two regardless of which problem they fell at. However, if the player had one heart left and they fell into a pit in sector two, they would have to restart the entire game from the beginning of sector one. When the player reaches the end of sector three, they will have successfully beaten the game. However, once the player has reached the end, there will be a few options for bonus levels that are not required to complete.
Key Features
One of the key features of Counting Simulator that makes it a children's game worth playing is the balance of flow maintained throughout each level. As the player engages with the game and progressively grows more experienced with a term I like to call "numeric literacy," they will be forced to use the skills they've acquired and strengthened in previous levels to solve new and potentially challenging problems. Such an experience stimulates critical thinking and problem-solving skills, teaching children how to think outside the box at an early age so they will grow up to be even more well-versed in the realm of analytical reasoning. In addition, there are also optional bonus levels at the end of the game that function in the same way as previous sectors; however, these bonus levels will have more advanced mathematical questions and operations for the player to solve, which offers a challenging yet refreshing enhancement of immersive gameplay. Despite the fact there is no reward for completing these bonus levels as the game does not have an established reward system, the lack of compensation encourages the bright minds who do opt for the challenge to do so for the sake of enhancing their own learning experience and testing their own skills, rather than simply doing so because there is some perceived external reward being dangled over their head.
Target Audience
The target audience of Counting Simulator is children ranging from kindergarten to second grade. The reasoning for the selection of this specific audience is that all of the children in those grade levels will most likely be below ten years of age. Therefore, since this game only teaches kids about positive integers ranging from zero to nine, the game will be able to incorporate the child's age into the learning experience to facilitate their acquisition of the skills needed to count by making the experience more relatable and personal to the player.
Technical Details
This game was made using the Unity Game Engine and is designed solely to be played on the PC platform using a keyboard/mouse input system. Using a keyboard and mouse is vital to the functionality of the game, as the movement in this game is catered to the WASD keys and the arrow keys.
Concept Art
Coming soon.
References
“Custom Teleporter Pad Script: Tools.” Unity Asset Store, assetstore.unity.com/packages/tools/custom-teleporter-pad-script-20098.
“Super Character Controller: Game Toolkits.” Unity Asset Store, assetstore.unity.com/packages/tools/game-toolkits/super-character-controller-135316.
“Sci-Fi Construction Kit (Modular): 3D Sci-Fi.” Unity Asset Store, assetstore.unity.com/packages/3d/environments/sci-fi/sci-fi-construction-kit-modular-159280.
“Super Character Controller: Game Toolkits.” Unity Asset Store, assetstore.unity.com/packages/tools/game-toolkits/super-character-controller-135316.
“Sci-Fi Construction Kit (Modular): 3D Sci-Fi.” Unity Asset Store, assetstore.unity.com/packages/3d/environments/sci-fi/sci-fi-construction-kit-modular-159280.
Section III: Tutorial
Sample Gameplay
Similar to the concept of counting itself, the means through which the player progresses through the game is fairly simple.
a
a
a
a
Section IV: Self-Reflection
One of the challenges I faced while making this game was a strange hiccup with the respawn mechanic, where whenever the player would fall into the pit below the floating platforms, instead of being teleported back to the specified spawn location they would simply clip through the floor altogether and be stuck in an infinite state of gravitational acceleration. The respawn script of course used an OnTriggerEnter(Collider other) function, which requires that the collider of the object the script is applied to has to be a trigger. However, whenever I enabled "Is Trigger" on the floor's collider, the player would just clip through it without being teleported. This was very strange because this was only happening when "Is Trigger" was enabled. When it was disabled, the floor was about as solid as you'd expect a floor to be, but this meant that the player could not be teleported back to the start of the sector and would therefore be stuck. After a VERY long time spent digging for solutions, the one I stumbled across was surprisingly (and annoyingly) obvious. The solution was simple: if the "Is Trigger" collider doesn't want to be a solid, then just have two colliders with one as the trigger and the other as a normal box collider. Once I did this, the script suddenly started working like magic. All those hours spent experimenting and searching when all it took was slapping on a second collider. This proved to be a major inconvenience as I was originally planning to spend a majority of that time designing and implementing a unique user interface which touted a 3-heart health bar that went down every time the player got a question wrong and fell into a pit and reset whenever they entered a new sector. The scourge of the floor problem took away a big opportunity for me to make the game several times more interesting by adding in a health system and have there be a risk of losing progress the further one went into a level.
Speaking of user interfaces, on a better note, the implementation of text-based questions into the game environment proved to be a lot easier than I initially thought it would be. I thought I was going to have to mess around with textures and mapping, potentially employing Photoshop to paste text over the textures. However, it turned out that all I had to do was make a few TextMeshPro - Texts (as 3D game objects, NOT as a part of the UI), do some resizing and reformatting, and just copy and paste away.
Another challenge I faced was actually designing the game levels themselves: more specifically, the stairwell the player goes down before they enter the first sector. The stairwell goes back and forth, with the path sticking to the walls of the room and leaving a large open space in the center of the room where there was only pure downward descent. The thing that was difficult about making the stairwell was how many times I had to remake it. There was a specific way that the initial scene had modularly assembled the default stairwell I was disassembling and reassembling into something unique, and since it's hard to explain without actually seeing what I'm talking about, I'm just going to say that I ended up having to build, dismantle, rebuild, rearrange, re-dismantle, and re-rebuild the stairwell because the scale and proportions that I was going for ended up not working with the way the default scene had assembled the staircases. I had to shrink the central space on the inside of the walkways down to a 3x3 block square, since each wall and each modular floor piece were 3 blocks in length. Before reassembling, my first attempt ended up having the open area be 3x5, which didn't work out with the scaling of the rest of the room. It was a tedious process, but once I got enough of it assembled, I was able to copy and paste my progress and move it all down so that I wouldn't have to build more stairs and walkways by hand. That gave me a total of 4 stairs, which I deemed was tall enough to continue.
Although the stairwell did take a lot of erasing and retrying, that's not to say that designing the rest of the level wasn't difficult, because it certainly wasn't an easy task. Because this process involved the copying and pasting of large selections of objects, I was only able to reposition the duplicates with the accuracy of a shaky hand on a mouse. I zoomed in to make the translations more precise, but they couldn't be perfect Despite the fact I did take the liberty of using a free modular asset pack I downloaded from the Unity Asset Store (because I absolutely do not have the time, skill, patience, and mental capacity required to create, unwrap, and texture component after component after component), I wasn't just going to use the default scene and simply make some minor changes to it and call it a game. Oh, absolutely not. Although this is my personal opinion, I believe that just making minor edits to an environment that's already been painstakingly assembled beforehand is not enough to call it a game that I made. Sure, the asset pack was free, but I feel like passing it off as your own without making any real (real as in significant) changes defeats the point of having these sorts of high-detail modular asset packs be on sale for free. The intention is you're going to use that asset pack to make something new, creative, and most importantly unique, which is what I pushed myself to do during the process of level designing.
The final, and probably most frustrating, challenge I faced doesn't actually involve making the game. Oh no, the absolute worst part about this whole endeavor was not making the game but publishing it. Publishing my game to Unity Play requires me to make a WebGL build of it, and for whatever reason Unity refused to comply with me.
Speaking of user interfaces, on a better note, the implementation of text-based questions into the game environment proved to be a lot easier than I initially thought it would be. I thought I was going to have to mess around with textures and mapping, potentially employing Photoshop to paste text over the textures. However, it turned out that all I had to do was make a few TextMeshPro - Texts (as 3D game objects, NOT as a part of the UI), do some resizing and reformatting, and just copy and paste away.
Another challenge I faced was actually designing the game levels themselves: more specifically, the stairwell the player goes down before they enter the first sector. The stairwell goes back and forth, with the path sticking to the walls of the room and leaving a large open space in the center of the room where there was only pure downward descent. The thing that was difficult about making the stairwell was how many times I had to remake it. There was a specific way that the initial scene had modularly assembled the default stairwell I was disassembling and reassembling into something unique, and since it's hard to explain without actually seeing what I'm talking about, I'm just going to say that I ended up having to build, dismantle, rebuild, rearrange, re-dismantle, and re-rebuild the stairwell because the scale and proportions that I was going for ended up not working with the way the default scene had assembled the staircases. I had to shrink the central space on the inside of the walkways down to a 3x3 block square, since each wall and each modular floor piece were 3 blocks in length. Before reassembling, my first attempt ended up having the open area be 3x5, which didn't work out with the scaling of the rest of the room. It was a tedious process, but once I got enough of it assembled, I was able to copy and paste my progress and move it all down so that I wouldn't have to build more stairs and walkways by hand. That gave me a total of 4 stairs, which I deemed was tall enough to continue.
Although the stairwell did take a lot of erasing and retrying, that's not to say that designing the rest of the level wasn't difficult, because it certainly wasn't an easy task. Because this process involved the copying and pasting of large selections of objects, I was only able to reposition the duplicates with the accuracy of a shaky hand on a mouse. I zoomed in to make the translations more precise, but they couldn't be perfect Despite the fact I did take the liberty of using a free modular asset pack I downloaded from the Unity Asset Store (because I absolutely do not have the time, skill, patience, and mental capacity required to create, unwrap, and texture component after component after component), I wasn't just going to use the default scene and simply make some minor changes to it and call it a game. Oh, absolutely not. Although this is my personal opinion, I believe that just making minor edits to an environment that's already been painstakingly assembled beforehand is not enough to call it a game that I made. Sure, the asset pack was free, but I feel like passing it off as your own without making any real (real as in significant) changes defeats the point of having these sorts of high-detail modular asset packs be on sale for free. The intention is you're going to use that asset pack to make something new, creative, and most importantly unique, which is what I pushed myself to do during the process of level designing.
The final, and probably most frustrating, challenge I faced doesn't actually involve making the game. Oh no, the absolute worst part about this whole endeavor was not making the game but publishing it. Publishing my game to Unity Play requires me to make a WebGL build of it, and for whatever reason Unity refused to comply with me.
Section V: Conclusion
To wrap this mess up with a "what did I learn" statement: floors are not always solid, and WebGL is cringe.