In my humble opinion, Video Game Design class is one of those “once in a lifetime opportunities” for a lot of Oakmont students. After all, the thought of a whole class dedicated to designing, scripting/programming, and play testing games seems unreal.
Not to mention, the school uses PC’s that are actually good. (coming from the guy with a top of the line gaming PC)
I know I’m going to use some big words a lot, so I’ll define them before I start my review. Unity is a game development software that’s been around for almost 2 decades. It supports most OS’ like Windows, MacOS/IOS, Linux, etc. (it’s expanding in terms of VR support) Better yet, it allows you to script games in C#.
With all that out of the way, let’s get to the review of the class, from my perspective.
You’ll probably spend the first week of the class learning the basics of how the game engine works. For example, making textures, materials, adding in game objects, and moving stuff around. Which might seem overwhelming at first.
After the training week is done, you’ll become familiar with Unity’s fundamentals and how the engine works. You’ll probably spend some more time working your way through your first assignments, taking the quizzes for them, doing the challenges at the end of the hour, and getting checked off.
Some time afterwards, you get visited by a new sight on google classroom, with the label “Hour 6: The Amazing Racer”. It’ll be your 1st actual game. However, you won’t be thrown in the deep end this early, as it is a guided game tutorial. During my time on the 1st project, the guide was a bit dated, so looking for some features was its own task.
Upon finishing I realized that many other students were doing something I didn’t think of: personalizing their games. Personalizing my game was probably one of the most fun experiences in the class, as you pretty much have your own sandbox, where you can really do anything in your imagination. To simply put it, it felt like the sky was the limit.
Most people usually import Unity Assets by the metric ton. If you thought making a simple running game was daunting, then the next parts of the class were probably some of the deepest trenches I’ve gone through. I had brought up earlier that Unity uses C# for its code language, and despite there being many resources and tutorials to help, it was still a challenge.
The class progress had scattered when programming was introduced, and it was becoming more and more evident on who would have a hard time or not. If you were to ask me what the hardest part of the course would be, I would say it was the first few programming assignments. In the class’ defense, Oakmont doesn’t really have a designated programming class, so it’s hard to optimize that section of the curriculum. With that being said though, the tutorials put in the assignments were helpful, and had good explanations for each function. As someone who’s thinking of working in the field of IT in the future, having a bit of an intro to programming in a class feels good for practice.
More time will pass, and then you will be at your 10th assignment, a game called “Chaos Balls”. You control a cube inside a large rectangle, and you need to hit a red, blue, yellow, and orange ball into their corresponding goals, as fast as possible. Sopping you are these tiny neon balls (the Chaos Balls), as they will deflect off the walls, and mess up your shots.
Once again, this game was guided by a tutorial. By now, you’ve gotten down the fundamentals of Unity, but are still somewhat novice to scripting and some more advanced features. At this point, you’ve probably gained some experience with scripting, and understand the basics. Probably one of the most important scripting skills you would learn is referencing other scripts/functions. Though I could make code on my own, I was better guided.
Before I knew it, I had a fully functional game, and was checked off for that hour. The next hour, we would be learning about prefabs. Prefabs are basically blueprints of an object that are uniform whenever instantiated. If you were to ask me about my opinion on what assignment was the most useful, besides the intros to scripting, I would argue it was this one.
I say that because later on when we make more complex games, prefabs play a vital role in ensuring that all of your instantiated objects work the same. If you take the class, you would really learn this in the next game you’d make. By the next assignment (hour 12), we were doing 2d game tutorials. Though my final game I made was 3d, I’d say that this was probably the most fun I’ve had in the class. Because for the couple 2d assignments, you know enough about programming to edit and make new functions, and can use most of unity’s tools
The concept of the game was very simple. The player controls a ship, and has to destroy as many meteors as possible. If you collide with one, it’s game over. The real challenge many faced with this assignment was making UI functions. Customizing my Captain Blaster game was probably the best part about it. My friends and I in the class were able to make our game totally unique from one another, and really make things our own. I added some advanced movement, multiple projectiles the player can fire, and a score counter on the UI.
During this time, I did stay after a couple days, to work more on my game, as I wanted to finish my game quickly. Anybody that is taking this class will learn quickly that hard work in the class will pay off well.
After finishing Captain Blaster, you will then move on to animations, effects, sounds, and timelines. Timelines allow you to sequence animations, along with sounds, particle effects, and more. With time, you’ll learn how to effectively use timelines, and will complete hour 19, and the Exercise. I personally found this to be one of the easier exercises to do.
By now, you’ve completed all of the tutorials on all of Unity’s tools. Now, it’s time for your last guided game. The last guided assignment and game (the 20th assignment) was a game called Gauntlet Runner. It operated similarly to your average iOS mobile running game, where the player must avoid the obstacles, but get as many power ups as they can before they run out of time.
Being honest, the game was hard to make. This was because we had to have many scripts and link them all together in our game. A good thing was that by this point, the class learned how to use ChatGPT, to help us with scripting.
In my experience, I had some troubles with the scripting, but the AI was able to fix the errors. But through the troubles, by this point you’ve probably mastered scripting, and will get better at tweaking it with the help of AI. Besides, the game being challenging to make, it did come out very polished and smooth. Also, once you finish the main game, you will be able to make it your own. Like customizing the last game, it was a fun experience to make the game your own, especially now that this time around, you have even more experience with scripting and using Unity’s utilities.
This time, when customizing their game, many are paying more attention to the scripts and assets that are being added to their games. This is for good reason, as for weeks, the class had been brainstorming ideas for their final games. Some days later, and some time staying after school, I finished my running game. In addition, I had also added features to my old games, like main menus and new features, like esc key to exit the game.
Another important yet fun task in the class was going back and polishing our old games. You get a sense of improvement (you feel you’ve come a long way), seeing your earliest projects with the full knowledge of the tutorials. You’ll also learn that you weren’t that great at programming at the start. When you finish polishing your old games, you’ll have 1 assignment left. Make a game yourself.
My own experience with making a game was tough at first. I intended on making a zombie game, but knew it would be a challenge. At first, I couldn’t decide where to start, as I needed many things, like a game manager, scripts, a detailed and well designed map, a player that can use weapons to shoot zombies.
I decided to start with a map, and I opted to make mine like a city, which was easy. After importing a player, I had to take on the task of zombies. Importing zombie models was simple. What wasn’t simple was getting the AI to work. Putting it simply, the zombies had to follow the player, and navigate around walls and through alleys.
Getting the AI wasn’t much of a challenge. Since the class didn’t have an AI tutorial, getting it to work was hard. After lots tinkering, I had gotten my zombies to follow me, through many tutorials, and editing scripts. Next up was making working guns for the player to use. Like the zombies, getting the weapons wasn’t hard, rather getting them to work was.
Over many days, and many scripts, I made it my top priority for the zombies to be able to die when shot. Yet, I wasn’t really having any success with the zombies. Upon trying what seemed like everything, success was finally achieved. It was a simple fix of attaching a cube, making it the collision point, and it despawning with the zombie upon death.
Upon overcoming this colossal challenge, the rest seemed to breeze by. I was able to make a UI (User Interface) for the player, and have the player lose health when they collide with a zombie. When they die, they’d be sent back to the main menu. Not to mention, making the menu was also very fun. It’s one of those easy tasks that can be very customizable, with your extensive knowledge.
With the big tasks out of the way, I found I had lots of time on my hands to work on some smaller details of the game. By this time, many other students in the class were finishing up. So, for a couple days, I added in background music to my game, my menu, and added a cornucopia of sound effects.
During the final days and tweaks of my game, I found it to be a very fun time, not just for creating something truly your own. Rather, it was a fun time to reflect on the progress I made, and how far I had come since the start. It was a very fun experience, and a very unique class.
Before I knew it, the final day came. My friends and I all had our own unique and working games. The many days we spent in class and after school had finally paid off.
The conclusion I’ll reach is that Video Game Design is a very unique and very fun class. For many students, this may be a once in a lifetime opportunity. As someone who is interested in Tech, I can happily say that it was a very fun experience. I would highly recommend you consider taking the class.
Nicholas Hill • Feb 2, 2024 at 7:35 am
nice
Joshua Le Grand • Feb 1, 2024 at 9:22 pm
great article
John Morand • Feb 1, 2024 at 1:22 pm
nice