Snake: The Hello World Game

During a recent time of being unemployed I had some free-time lying around and decided to pick up this ‘new’ engine everyone has hyped up, Unity.  Well I started by looking at a few video tutorials, but showed too many details I already knew and skipping ahead had the chance of skipping something I didn’t, yet needed to, know.  I tried looking at existing projects to learn my way around, but wound up more confused and went back to the painfully slow video tutorials.

However, since my early programming days, I’ve always been better jumping in head first.  So I scrapped the tutorials and existing projects and jumped in to make a quick game, like most people make a quick “hello world” when working with a new language or platform for the first time.  At the time I did not consider myself to be making a “hello world game”, I simply picked the classic: Snake and started developing it with Unity.  It wasn’t until weeks later at a new job when I was testing out a new engine, GameMaker:Studio, that I realized how great Snake is for a simple Hello World Game.

Snake is extremely simple; an object for food, and object for the snake head, body and tail, and two ’tiles’: grass and rock.  Snake head collides with snake body, tail or rock and the game ends.  Snake head collides with food, and a body part is added to the snake while the food moves to a new random location.

It is possible to make Snake utilize nearly every system/piece in a good engine or framework; graphic/sounds/assets (and pipelines), tiles/maps (level design), objects/entities, scripting, collision, input and timing.  This forces you to gain a little experience with each portion while testing out, or learning a new framework.  However I did notice, while talking with a good friend, that Snake lacks the testing of physics.  This may or may not be of importance, depending on your needs from the framework – but Asteroids or even Break-out might be a good choice to include physics.

For now, I will stick with Snake.  It takes a few hours to make, give or take the learning process, and will show the good and bad of the tools, pipeline and editing with a particular engine or framework.

Comments are closed.