In this ever-evolving post, you will be following me as I work on one of the assignments of my Game Engines & Expression class at USC. This is an introduction to game development class that teaches us the basics to create digital prototypes in Unity using C#.
Our first main assignment consists of creating a game prototype which mimics the mechanics and ‘game feel’ of classic game from the 8-bit era, or something close to that.
I ended up choosing to ‘remake’ Frogger, a 1981 arcade game developed by Konami and licensed for North American distribution by Sega-Gremlin and worldwide by Sega itself.
Scroll down to see my progress!
I haven’t forgotten about Frogger, I promise. It’s just been crazy busy as we approach the end of the semester. The game is 90% done, with only a few collider issues to fix.
I’ll be writing a post-mortem as soon as I have some time, but here is a screenshot of the first version, which was completed a couple of weeks ago.
In this version, the river part isn’t quite working yet. For playtesting purposes, I added a cheat key, that allows the frog to be invincible when being in the river area.
My reference sheet for the day:
It’s been a while! Last week was our Spring Break but also the Game Developers Conference in San Francisco – busy, busy days.
Before GDC madness, I was able to work a little more on my code architecture, but not as much as I wished.
As we have time constraints (this is due in a week’s time!), I couldn’t spend much longer on this stage … what I’m doing now is updating these as I start writing code, which turns out to also be a really good exercise!
And this is how my prototype is looking like so far:
A major goal for this assignment: avoid getting caught up with art assets. I created these placeholder graphics in order to really focus on building a solid and efficient system.
Here’s what is implemented in this version:
- Modular design: grid-based background and sprites that I believe will make my life easier when adding the final art assets and implementing the code.
- Frog’s movement with W,A,D.
- Frog’s collision with safePortColliders (the upper safe spots our frog needs to get to), and re-spawning once it reaches there.
- Cars behavior and spawning. I spend solid three hours or more creating a script called ‘Cars’ and another one called ‘CarsSpawner’. The first one controls the movement of the cars and handles collision with two side (invisible) colliders that trigger the SpawnCars function located in the second script.
I must say … I’m having so much fun doing this!
After all these months learning how to code, I just realize how much I actually enjoy solving problems and making things work in the most beautiful, harmonious way. Getting a little poetic there but it’s true. Breaking down systems and understanding how its small parts function together … there’s something about it that is really satisfying and fulfilling!
Anyway … the clock is ticking, looking forward to the next phase of this prototype!
- Code architecture – create CRC cards.
A Class Responsibility Collaborator (CRC) model (Beck & Cunningham 1989; Wilkinson 1995; Ambler 1995) is a collection of standard index cards that have been divided into three sections, as depicted in Figure 1. A class represents a collection of similar objects, a responsibility is something that a class knows or does, and a collaborator is another class that a class interacts with to fulfill its responsibilities.
Here’s my first draft, which I will revise and improve upon during tomorrow’s class:
So far, I’m finding these SUPER helpful to break down each element in the game without going too crazy.
- Create a basic game design document.
Click here to see mine.