Design a site like this with
Get started

Day 15: Casual Endless Flyer

The game dev lectures at HarvardX: CS50G, while informative, are not like the how-to tutorials you’d see on Youtube.

There isn’t a step-by-step creation process to follow. Instead, the game is already completed (everything including models, sounds, and scripts) and then after watching the lecture your assignment is to make certain tweaks or additions to the game.

The lecture for the 3D Helicopter game is ~2 hours and the instructor does talk in depth about the game, but I don’t feel this would be a good place to start if it was someone’s first foray into Unity.

I spent several hours going through the code and editor, trying to figure out and understand what was done and where.

My version of the helicopter game I have linked in the video below is basically what would be termed a ‘reskin.’

I created a new scrolling background in MS Paint (because I can’t draw anyways), new sound effects using Bfxr, new explosion effects dabbling with particle systems, added music from Bensound and changed the font, layout and model colors – but the core of the game – the 3D models and code are not mine.

Still, it was altogether a good learning exercise. I basically have the framework to complete a simple endless flyer from scratch but need to learn how to build 3D models in Blender, animate and import them. The game itself isn’t technically 3D…more like 2.5 since it’s 2D with 3D elements.

Royalty Free Music from Bensound
Airplane, helicopter & building model by HarvardX: CS50G
Coin font from Lecompte Free Font (Andy Lobjois)
Spinning Coin model from Proto Pack (PIXELATTO)

The assignment for this game is two parts:

  1. Introduce gems into the game that spawn just like coins but more rarely; each gem should be worth 5 coins
  2. There’s currently a bug where the scroll speed of skyscrapers and coins doesn’t reset on game over (hint: static variables don’t refresh on scene reload); find and fix this!

I’ll start working on this tomorrow.



Author: Mike@PAUSED

Aspiring indie game developer. Devlog:

5 thoughts on “Day 15: Casual Endless Flyer”

  1. I have a love/hate relationship with reverse engineering someone else’s code. I like seeing how they solve the problem, but then again I often go “why the hell did they do it that way??” or “what were they thinking??” It’s my own private code mocking show, see Of course sometimes when I come back to my own code months or years later I end up mocking myself, it’s a circle of life thing. 😉


    1. I like how there are so many different ways to tackle a coding problem. Some ways are more correct than others, but if it works, it works 😉


  2. I’ve always found modifying other people’s code to be more challenging than writing my own program from scratch. When I’m just writing my own code, I can just use the tools I already know to create something entirely according to my own preferred methods. If I’m modifying someone else’s code, there’s the added challenge of looking through it and figuring out what all the different parts are for, which can actually be a rather enjoyable task.

    I gave myself the task of downloading the GNU CoreUtils source code, and just examining the code until I saw how all the different pieces fit together. It’s amazing what you can learn from other programmers and how they implement things. I also gained a fairly good understanding of the basic mechanisms underlying an emulator by examining the source code for frotz.

    Liked by 2 people

    1. I’m finding it more challenging too – sometimes it’s even just the naming convention used and getting confused with what they named and what is actual syntax. Especially since oftentimes the only difference is a single capitalized letter:

      Text text;


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: