Thursday, 17 September 2015

Setting the groundwork

Hello to whoever may be reading! I would just like to thank you for taking an interest in my blog. Hopefully you shall be able to take away a few tips and pointers of your own if you're simply curious about the game development process or would like to design your own game. This first post is more about the game design process (not the programming side) and offers a more abstracted look at the whole development cycle. This is also aimed towards people who already have some form of programming experience. If you don't, it's important to make as many spare-time projects as you can and play around with different aspects of games. Play around and make some particle emitters, a little asteroid game, a custom menu, etc. If you try to build your first commercial game from 0 experience to completion, I do not envy the kind of Hell you're going to put yourself into!

Game development (programming) and game design (conceptual design) actually work hand-in-hand and complement each other beautifully. Now, when I talk about game design, I'm talking about the actual game and how it will play out. To a seasoned veteran who plays lots of games, some of this might appear to be common sense, but it goes a whole lot deeper than you could possibly imagine, so please bear with me and you'll soon reap the rewards! I generally don't have a whole lot of industry experience, but as someone who has released titles (right from the beginning to finished product), that at least puts me in some position to share my experiences and challenges I've faced.

When I show a software developer what I've created, they generally freak out a little bit at the scope of my creation. I'll get questions like "How did you manage that hierarchy?" or "Why did you do this THIS way instead of THAT way?" and I'll receive lots of interest. To someone who doesn't program, I can show them a buggy prototype which appears to run and show some pretty particle effects and get a load of praise for it, then show them some lovely little cohesively-designed class hierarchy or nice class for handling future additions, and I get this blank look of "That's about as interesting as a brick". It's almost a polar opposite reaction. Programmers don't get excited about something that looks pretty, but like to see what's under the bonnet (the code), while people who don't program just want instant gratification, and the fact that my game looks nothing like the latest AAA release tends to draw them away.

However, all good things take time. Unfortunately, if you're a programmer, good things don't take time - they consume every essence of your being! Its important to know what you're jumping into. When you start to create a game, every tiny, microscopic, unimportant, boring-as-hell little detail, is left to the programmer. You start at this point where you compile a little code and get a blank screen, then you figure out how to draw a square on the screen, then how to move this square a pixel or so. Eventually, you learn what seems at first an insurmountable amount of knowledge, and you will be surprised with what you have achieved. Everything has to start somewhere!

Anyway, I'm derailing a little bit, so I'll get back on topic. I always get ideas from people about games such as "A massive MMORPG with Morgan Freeman as the narrator and a million weapons and five-thousand playable classes". That's nice. Is it feasible, though? Yes, if you have a few million quid spare. I'm going on the assumption that if you're reading this, it's because you want to MAKE money, not because you HAVE money. You have to work with your strengths and fizzle out your weaknesses. I'm a very lucky guy, because I started drawing at a young age, and therefore am able to provide the art for my own game. However, I'm not exactly a 3D modeler, so if I decided to take on a new project, I wouldn't opt for 3D, because it's just not feasible. Not to say it couldn't be done, but it could take months or weeks just to make a 3D model, when all of that time could be put to something more productive.

This is where game design plays its part. If you have a good game design concept, it doesn't just mean that you should have thought of a good game idea, but should also mean that you've factored in all your strengths, weaknesses, free time and budget. Let's look at Tetris. When Tetris was created, there wasn't much processing power available at the time, and the idea of creating something of today's standards was something of a pipe dream. Instead, the designers looked at what hardware they had, thought really hard about it, then put a SIMPLE but EFFECTIVE idea into practice. Tetris has been a phenomenal success and that still holds true to this day. The graphics have barely changed, it doesn't have vast, procedurally-generated landscapes, super high-fidelity 4k textures or a consequence-based story with branching choices. It's just a great idea for a game and feels pure and untouched. It's an addictive concept that gives rise to all kinds of strategies that the original developer probably didn't even account for!

This brings me to my game project. I've been working on a prototype on and off for the best part of 4 years. As I started to draft up ideas for my next game, I had to take into account all my strengths and weaknesses:


  • I can draw pixel art
  • I'm somewhat good at C# programming
  • I have a computer and electricity mains
  • I have arms and hands (vital for typing)


  • I'm haplessly addicted to Dota 2
  • I'm scared of volcanoes
  • I can't draw ultra-realistic still-life drawings

This gave me somewhere to start. I'm by no means a veteran of programming and I have to know my limitations, but I have a roof over my head and a PC with Visual Studio installed on it. I decided to destroy any links to my weaknesses. Uninstall Dota 2 was first on my list. Also, I don't live in or near a volcano, so that's good. I also decided that the art direction would have to be abstract or cartoony in some aspect, and going for something gritty and life-like would be a large waste of time. Now, that's not to say I couldn't gradually develop these new skills, such as a fine eye for detail, but would these skills be necessary? Let's have a look at something:

Time is the ultimate currency. Want to get an education? That costs time. Want to earn money? That also costs time. Want to improve skills? Time! Something that, in my experience, indicates a good design choice, is when a developer is able to create the maximum amount of enjoyment from the minimum amount of development. This isn't to say that projects need to be rushed, but more that your time should be spent efficiently, almost like you're bartering money for a better deal, but with time instead. The deal is that you want something that plays well without breaking an arm and a leg to get to that point. Now, without rushing to conclusions, something worth playing needs all the love and care you can give it, but you need to be able to give it! One problem that arises in mainly the AAA industry is that the people behind the business don't tango with the developers too well. for example, the visionary may decide that a soldier, when running up stairs, MUST have his feet contacting every step on the way up to create extra realism. These people are working within a limited time frame on a limited budget, and to discredit the game's creator, he has little knowledge of how difficult this might be to program. It could involve all kinds of animation hitches, reworks, re-modelling and shuffling round code which was pristine and nice when left alone. This is very bad. This time could have been applied to creating something ten times as fun at a tenth of the cost (hypothetical, of course).

Things that may appear to "wow" crowds of people in games could be slow motion, mind-control, rewinding time, stat upgrades, etc. To the non-programmer, these could seem like feats of incomprehensible dark magic, when these could be generally very easy to add. But something as simple as realistic walking up steps could be nightmarish to a programmer. This is all because of how programming works and how the programmer is responsible for allocating memory and processing in the most elegant solution. This problem with communication is a huge gripe for many game programmers in the industry. No offense to the other people involved, but we all have our own areas of expertise for a reason, and you must trust our judgement!

The beauty of being an indie developer is that you don't have anybody to tell you what to do! If you have an idea, it's virtually always possible to convert your idea into a fully-functioning game/program. With power comes responsibility, and you definitely have enough responsibility to contend with! Ask yourself, will creating a 3D game really add to the experience? Will multiplying development time ten-fold pay off? Is it viable and will you see it through to completion? You're way more likely to impress somebody with a fully-finished product instead of a buggy code graveyard of broken dreams and ambition.

If you're mediocre at programming, but a great artist, maybe create a game with atmosphere that tells a story with its great scenery. If you're a champ at maths but can't draw, maybe consider some kind of Geometry shooter with minimalist graphics. If you want to develop a new area of understanding, make sure it's for a good cause!

Now here comes the shocker: a great game doesn't have to excel in EVERY area. By sticking to your strengths, you can truly showcase exactly what you're good at without watering it down with a terrible story or horrible soundtrack. I see this time and time again with games, where a solid game mechanic is put in place, to be totally ruined with some horrendously stiff voice acting. If you want to add a system, such as weapon upgrades or levelling, for example, make sure it's done right, or simply do not add it at all. Adding stuff for the sake of it diverts attention from the truly brilliant mechanics you may have added and dilutes the general experience. Your game doesn't even need a story. Tetris, Lumines, Mario (we all know the story doesn't really count), or Geometry Wars just jump you straight into the action (for the most part) and that is not a problem. A story wouldn't really enhance these games and wouldn't fit the aesthetic. Sometimes purity is best. Super Meat Boy doesn't have a story that induces buckets of tears, but it's extremely fun to play!

In summary: Work to your strengths and try not to include weaknesses. Don't add stuff if you're not happy with it or you feel it doesn't add any depth or fun to the experience. If you want to develop areas of knowledge, do so in knowing that it will be a vital part of the game!

I'd just like to leave you with this video series known as "Extra Credits". They give some fantastic insight into the game design process. Thanks for reading!!!!!!

The editor in action

No comments:

Post a Comment