Cloning the Classics

June 15, 2020

Many kids grew up dreaming to develop video games. Me included. My generation grew up with the Sega Genesis and the Super Nintendo with games like Super Mario, Street Fighter, Sonic the Hedgehog, and Chrono Trigger. Rainy days were the best days as they provided ample time to explore new worlds. I dreamed of making those types of games one day.

Well, reality hits hard sometimes, dreams change, and life goes on another path.

It really doesn’t have to be that way. Why can’t I make those games still? Maybe I won’t be doing it as my day job and earning much income from it, but it could still be fun. Maybe I will even learn something from it.

Dabbled


“To work or involve oneself superficially or intermittently especially in a secondary activity or interest.” - Merriam-Webster [1]

I’ve dabbled in video game development for several years. Which really means: I’ve walked through several tutorials when I had time and spent several weeks on my own game ideas before abondoning them to the blackhole of unfinished projects.

Throughout those dabbling years, I’ve spent time using Unity [2] , Corona [3] (Soon to be Solar2D) [4] , love2d [5] , Arcade [6] , and SpriteKit [7] across 4 programming languages: C#, Lua, Python and Swift. This may sound somewhat impressive but, as a reminder, I dabbled. I am not an expert in any of these game engines or frameworks. I barely scratched the surface.

The problem was I rushed into building the dream game immediately after finishing some tutorials and knowing just enough to feel dangerous. There would be an explosion of energy and excitement. Several nights of sleeplessness as ideas raced through my head. I furiosly coded in whatever language and framework I was interested in at the moment. No real plan, no goals; just a vision. Then, after a few weeks of slow progress, the energy cools, the excitement fizzles and the game begins it’s less than graceful slide into the blackhole. Video game development is hard.

An Experiment


The video game development itch is back but it’s time to try something different.

Instead of attempting the dream game immediately, I’ll sharpen my skills and learn new tools by rebuilding popular games from the past. Break these games into small, discreet and attainable goals. Build incrementally and celebrate the small wins. At the end of the process, have a playable game with the majority of mechanics implemented.

“The last 1% of a game can take just as long as the first 99%” is a common sentiment in game development forums and is mainly attributed to polishing, tweaking and perfecting the game before shipping. I’m not very interested in creating perfect clones at the moment. Someone has already made these games perfect. I’m more interested in teasing out some of the interesting mechanics, game design, and programming challenges the game offers. I’ll leave the 1% for my own game.

I’ll share the experiences through Development Logs (DevLogs), a frequent sight in the game development corner. Typically, DevLogs are written during the project’s life to share updates and status with fans. Some, offer a glimpse into game development concepts, programming challenges and game design choices. They can be used as a tool, not only to share and grow a fanbase, but to reinforce your own knowledge and experiences as you practice communicating through written word.

Hopefully, after several iterations, with each iteration solidifying more of what I’ve learned, I will possess the tools, skills and mindset to pursue the dream game.

Rules to build by:

  1. Build incrementally
  2. Embrace imperfections
  3. Share knowledge
  4. Have fun

References


01: “Dabble” at Merriam-Webster

01: Unity

02: Corona Labs

03: Future of Corona

04: Love2D

05: SpriteKit