Every year i tell myself the same thing. I'm going to make a game and it's going to be amazing. It's going to take you, the player, to another world. It will be a text-based, 80 hour long journey into the unknown. It's going to have a Hans Zimmer type soundtrack and it's going to win awards. Sounds amazing I know. Each year I normally get as far as creating a new project in some fancy sounding game framework IDE, running the Hello World program, feeling some sense of pride and then never thinking about it again. And the results end up looking like someone's nightmare after a night out in the forest.
You've found the magical gauntlet of ..magic.. +20exp
Will ye retreat with loot or fight thy dragon
But this year is different. This year feels different. This year, that one random spark of an idea that I had at some random moment in time last year will become a game. I'm ready I feel like. On this blog, I've written many a time about the Crafty.js game engine. It's become one of my favorites. And I think it's been a good preparation for this old soul to begin another part of his journey. So before this passion for game development leaves my mind, I decided to write about it here. And to dissect just what is a game, and why it's so hard for a programmer to build one. And why, if you are, you should.
If you give a programmer a spec sheet with a game already designed, he will build it for you without a problem. He will put it in a repo, create the database schema and set up the CRUD. If you ask a programmer to come up with a game, he will clone Tetris, probably. If you ask me to build you a game, you'll get the following.
And that's because we tend to treat knowledge as separate packages of data that never comingle. We even give them names. Programmer - Designer. I either do one or the other. And if I try to do both, then they will both suffer. That's the common adage anyhow. But maybe an outdated one. Maybe if we tried to do both, we actually could. Maybe it's time to start breaking down some barriers and to see just what we're capable of doing. If a man out in this world can build an electric vehicle while planning a mission to Mars, we can at least draw a fun idea and then program it.
The truth is that anything can be a game. Bounce a ball. Then see how many times you can bounce it in an hour. Then try to beat that record. Fun times. And this is an important quality to remember. Because at the end of the day, the only thing that matters is how fun this game is perceived as by people. If the majority of people enjoy tapping an avian creature through a somewhat simple maze of pipes, then have at it.
This normally involves collecting, trading, ranking up and competing. And every single game will incorporate these elements in some shape way or form. The trick is to figure out which combination will just click into place. And also to keep an eye out for any new elements that may exist in the ethos that is gaming. Maybe one day, instead of collecting, getting rid of baggage will be the element that makes everything just work.
Idea vs anything else
During the past few years we've all seen them. Apps or games that have taken off and topped the charts, and we can't explain why. They use rustic animations. Some are hand drawn. The music files are 200 bytes of data. But the ideas are amazing. I can't count how many time this year I've texted iDiallo.com excited about some random game that I downloaded on my phone. Simple ideas, yet full of life and potential.
As programmer, I normally think the other way around. The code is important, the graphics are important, the marketing is important, but rarely the idea. The goal is to ship a product out the door within this next fiscal quarter and whatever happens happens. And yes, those things are important normally in software manufacturing. But I don't think they're as important in game development. At least not if you're building it yourself. Draw your game on paper and see if it makes sense. Visualize it running on your phone (paper), and then begin to add elements to it. Do that for a day. If by the end of the day, you're paper is full of doodles and ideas and life, then you have found yourself an idea.
So what are we waiting for
If every programmer, whose skills were at a high enough level to make a game, started to make a game today, by the end of the year, we would have thousands upon thousands of gems to play around with in our spare time. We'd have innovation and we'd have funner ways to learn new things. So this year I plan to design, build and publish a game. I have no idea what this game will be. I have glimpses of a possible game, but I won't know really until I dive in and start doodling. And I invite everyone to doodle along with me, send me your games, and I will test them out and by end of year, I will list my favorites down. At the end of the day, any new idea that is fun is an idea that deserves a chance.
Walter G. is a software engineer, startup co-founder, former CTO of several tech companies and currently teaches programming for a coding bootcamp. He has been blogging for the past 5 years and is an avid BMX rider, bio-hacker
and performance enthusiast.
Stay up to date with my weekly coding tips!