News Rating Scribble Surfer Classic’s Code

The backstory

Around the year 2012 I found myself wanting to make my own video game. I have always had a deep interest in them and wondered how they worked, and thought it would be pretty cool to make one myself. I managed to find some small obscure game engine that was suspiciously similar to GameMaker. If I remember correctly it was called “DarkFlow” but I cannot find any traces of it on the modern day internet apart from this page, which doesn’t have much info. I made my own game in it by modifying an included example project, which has sadly been lost to time. After being distracted by making simple websites for about a year or so I finally had gotten a license for GameMaker Studio in 2014. There was a deal on HumbleBundle where you could get the Windows, Android and HTML5 export options for a cheap price. Now that I had the real GameMaker I would go to make a few small games, but today’s post is about the original Scribble Surfer mobile game. I wanted to take advantage of this new fancy Android exporter I just had gotten, so I started to come up with some ideas for a mobile game. The original Scribble Surfer game was the result. Since I started making the new version and have been sharing the process behind it, I thought it could be interesting to look back and poke some fun at the original game and the not so great code behind it.

Seemingly pointless things

While looking through my old code I found multiple logic blocks that go unused, events that don’t do anything and variables with weird names that get set and are never used. All of this is pointless. Probably left overs from code that was only half deleted or moved to other parts of the game. All this does is bloat the game files and make it painful to read through seven years later. I don’t quite remember why all this was left behind, maybe I was being lazy or just clueless about it. Unironically, some of these events have a logic block in them containing a single comment pointing out how it does nothing.

I give pointless things 3/10 empty events, just because that comment made me laugh a little.

The strange controls

Now the funny thing about the controls is that I was wanting to have it work like the new version does, where you would drag your finger up and down to draw a line the character “surfs” on. However if you have ever played the original (you probably haven’t) you would know this is not how it works. The controls in this version have the player tap to set a height that the character basically flies to. I just couldn’t wrap my 13 year old brain around the math and arrays that would be needed for the controls I wanted. In fact, I actively avoided arrays. These are obviously not the most intuitive controls, and when I had people try the game they would often just try dragging their finger across the screen. So did I change it to be drag based at least? No, I was stubborn. For some reason I thought it made more sense to just tap on the screen.

I give the controls a generous 2/10 taps.

This is an advertisement. Get Ezcha Elite to remove ads.

Hard coding and magic numbers

For this one we are going to need a (hopefully) quick and simple explainer. When you are programming, you usually want to use variables or constant values rather than directly writing your value into the logic. This makes your code much easier to read because you can quickly see what each value is represented. Apparently I did not know this back in the day, and I’ve found some difficulty in deciphering these ancient writings, as I cannot remember what some of these values are and how I got them. These are known as “magic numbers” and should generally be avoided.

I give magic numbers 0/10 variables.

Abusing the clipboard

It’s common in programming for multiple systems to share logic. A good way to handle this is to have reusable code/modules that can be shared across them. It is a bad idea to just copy and paste your code for two main reasons. The biggest issue is that if you need to change the said logic you will have to find and update it in every place it might be used in, which gets tedious very quickly. Missing a spot could also cause inconsistency and even errors. However, if you make code that is modular and reusable you only need to update it in one spot. Copying and pasting code also makes the file sizes slightly larger, not the end of the world but still not ideal.

This is an advertisement. Get Ezcha Elite to remove ads.

I give copying and pasting code 0/10 CTRL+C’s. Avoid doing this, it sucks.

Inaccessible store

I did this funny little thing where I completely removed access to the in-game store in an update. It may seem like an odd choice, and well, it was. The first version of the game had in-app purchases, which worked in the test environment but not when the app was live and public. Once I noticed this, I decided to temporarily remove the store button on the title and score screens. Eventually I realized that the game wasn’t really worth putting money into so I never bothered adding the buttons back in, completely forgetting about buying max lives.

I give the missing store 1/10 coins. At least the code for buying extra max lives works.

Still want to try it?

Mostly for my own nostalgia’s sake, I have never removed the original from Google Play despite it being so poorly made. It may not be my best work but it’s a nice reminder to see how I’ve improved over the years. I made a small update for it where I ported it to GameMaker Studio 2, added “classic” to the branding along with making the shop accessible again. If you want to give it a try the update is available now on the Google Play Store along with a new web version too!

This is an advertisement. Get Ezcha Elite to remove ads.

Cool, but where’s the new one?

I have been pretty busy with my job, helping out with a friend’s game, and with a massive site update. Scribble Surfer is still in development though, progress has just been a little slow in the past few months. The online account system and leaderboards will rely on this site update so I need to finish that first. Here’s a sneak peek at what’s coming for the meantime!

This is an advertisement. Get Ezcha Elite to remove ads.


Join the Ezcha Network!

You must be logged in to comment.

Login or register


2 years ago

I have tried the game and it is great!


3 years ago

hi ezhca


3 years ago

scribbles urfer


3 years ago

great job!!!! keep up the great work


3 years ago

You’ve clearly improved so much over all this time insane bro.


3 years ago

Ah yes. These updates are great, and I wish you great luck in this journey of development hell and pressure from the community you've built up over the years.

This is an advertisement. Get Ezcha Elite to remove ads.


Rating Scribble Surfer Classic’s Code

Written by Dylan
Published Oct 5, 2021, 9:20pm CST


I'm finally back again! In this post I'll be rating my old code from the original Scribble Surfer game, which was made back in 2014. I also give sneak peaks of the new Scribble Surfer game and a massive site update that you won't want to miss.