Game Development Log

An Achievable Game Design

Making of Hyperlink

Casper Beyer
Byte Games

--

Like I’ve mentioned in the initial post in this series “Coding My first Game in My 30s” I’ve made a lot of unfinished games over my two decades being a developer. I’m not saying this to flex, quite the opposite as I’ve never gone for it and finished any. None of my games are open source nor have I published any of them anywhere worth mentioning.

The reason for this is simple; they suck, they might be playable but they’re incomplete demos. Most of them have been about scratching an itch and implementing some technical aspect just for the fun of it to get a break from the monotony of writing web software. While others have just been too ambitious; their scope kept growing to the point where I could never complete it alone with the time I’m allowing myself to spend on it.

So lessons learned; I want to get this actually out there so my primary goal is designing a game where I can realistically do everything that goes into creating and publishing a polished game in a reasonable time frame without working myself to death or going insane.

While I’m comfortable enough with 3d to write a 3d game there’s a-lot more that goes into making a game than just the code including but not limited to art, sound, story and level design so while its within my skillset the time required means a 3d game is out of the question as the art is very time consuming.

I’m tempted to reach into that folder for a rogue-like I’ve never finished but I want to get this done within a couple of weeks which will probably turn into a couple of months instead so I have to go smaller scale. Going for an existing project would also break the premise of this series which is that everything is to be documented from scratch.

With that in mind I started playing around with the idea of taking one of the most basic games imaginable and re-imagining it while keeping the core gameplay mechanic as an exercise in game design. I’m confident enough in my technical abilities but designing and coding a complete game from scratch including all the assets and levels alone is quite the task even with a simple game. If I can’t make a simple design fun then I sure as heck don’t have the ability to make a complex design fun.

At first I was thinking a tower defence game, but then I went and played through a couple of old school Arcade games and it hit me, Snake. Yes, Snake, specifically the 1997 version made popular on Nokia phones which sounds really unimpressive because, well it is.

It’s basically a “Hello, world!” demo you can hack together in about 20 lines of code. It’s one of the simplest things one could think to implement, it’s very recognisable, it’s absolutely perfect!

I’m not going to spend a lot of time coming up with a design document for this since you can’t really test for fun on in a document. This post and a couple of scraps of paper is essentially the entire design document at this point in time; to sum it up the pitch is a snake-like game with additional elements including but not limited to the following;

  • Portals that teleport the player from one block to another.
  • Levels made up of anywhere from one to N rooms.
  • Puzzles where you have to activate blocks in sequence to power up other blocks.
  • Pickups that modify the player characteristics and abilities adding extra difficulty and depth.
  • Hazards and obstacles that hurt the player in some way other than just straight up killing the player.

I’m leaving this intentionally vague as trying to make it a concrete concept at this stage isn’t going to lead anywhere particularly productive.

As a programmer I find that it’s often easier to do the thing I’m good at which is hacking away at code and just trying it out rather than spending a bunch of time thinking about in in abstract what-ifs; again it’s hard to know what is going to be fun in a game without building it and actually playing it.

Check back soon for the next segments which will be more code oriented; first we’ll cover designing and implementing the platform abstraction layer before moving on to the first iteration of the game.

--

--

Casper Beyer
Byte Games

Indie Game Developer, Professional Software Developer and Expert Jak Shaver. Working on Deno.