Developers constantly have to deal with a choice: should I specialise in a technique / technology, or should I be a generalist? It’s well-known among practitioners that specialisation brings in money more easily. But having a high level overview is more valuable in the long run.

Videogame development is one of those fields in which a generalist can truly find himself or herself. It’s one of the most complex, wholesome activities a creator can engage in.
It not just coding, but it also involves many other aspects. At Codemotion Madrid 2019, Rocío Tomé will deliver a speech about cognitive principles applied to the development of video games (see this link for more information). But this is just an example.

The first thing I thought when I saw Steven Goodwin’s talk at Codemotion Rome 2019 was: “this is a great example of a generalist”. He went all British on the crowd, with both his accent and his humour. His speech jumped from coding to art to design to writing, all related to the activity of building a game. He was talking about the ensemble, explaining the parts without compromising on the big picture.

Hubris and Polish

Many fall in the trap of believing that building a game is easy. As easy as playing the game. That’s why many game players throw themselves into game creation without knowing the elements of design and coding, setting themselves up for a disaster. In the case they manage to obtain a product, it will likely be unpolished, buggy, and not fun.

Any amateur can start building a game, but making the different parts play well with each other and actually delivering a final result is what sets a professional apart.

Starting a game is the easy part. Hardest part is to finish it.

Goodwin talked about four different and interrelated activities involved in game creation: Design, Art, Writing and Coding. Let’s review all the tips he explained.


The game world should be consistent, both its physics and its logic should be predictable. The player should be able to immerse himself in the virtual world, any inconsistency would throw him out of the magic.

Consistency in itself is not enough; design involves making many different choices, because every detail can be realised in so many ways. All choices should point to game consistency but also playability, storytelling and overall fun. Since the combinations are endless, one must gain trial and error experience and being able to review, get feedback and adjust.

Speaking about playability, Goodwin stressed the necessity of finding a good equilibrium between an easy start and a difficulty to master, what he calls the “Goldilocks zone”. When a game is too easy the player gets bored, when a game is too hard the player gets frustrated. One should also consider a progression of difficulty in gameplay. An easy but engaging start should slowly move into an addictive effort towards mastery.


By continuously refining graphics, gameplay, dynamics and storytelling, the game gets better and better. An interesting concept Goodwin puts forward is an arms race between game parts: once you improve graphics for example, you realise that user interface is lame. So you improve the interface and realise the storytelling lacks an edge. You work on that and gameplay has to be improved to stay at level with the rest of the game. These iterations are what leads from a prototype game to an addictive and fun experience.

Improving often means taking away instead of adding stuff. In a sentence so important for current generations “less is more”. For example, the graphic user interface showing points, energy bars, maps etc should be minimal. It should occupy as little space as possible while delivering the message intuitively and visually. Same goes with sound: it’s better to have a few well-recorded and timed samples than clutter the experience with multiple unsynced noises.


There should be a story behind the game, a narrative justifying what’s going on, giving the player a compelling reason to spend time in the game. The story is way more powerful when sided with a coherent lexicon, which means using the words that are proper for the virtual world we are immersed in. Language should be contextual to the game, like a silk dress, and should leverage emotions as much as possible.

The player should be motivated not only to start, but also to go on and see what happens next. He or she has to feel, to be part of something bigger.


As stated above, one should not improvise him or herself in coding. It’s ok to start learning programming with the objective to build a game, given a good amount of time is dedicated to learn programming basics and doing practice.

The industry as a whole should spend more effort on code quality. Using source version control with tools such as git, writing a respectable test suite and dedicating time to code reviews, are all activities not widespread enough. Game quality will improve much by rising standards in coding best practices.


The overall message Goodwin brings is an invitation to passion and quality in game development. Building a good game depends on making all the parts work together in a consistent and creative way. Design, art, writing and coding are different dimensions along which the creator can improve the game. Each dimension has its tools, best practices, pitfalls; each dimension requires effort, taste, experience. All dimensions join their effort to give the player a delightful experience.

If you are interested in game development, learning how to improve your skills from different perspectives, do not miss the opportunity to attend Codemotion Madrid 2019. There are many talks about game development, including one by Rocío Tomé about cognitive principles applied to the development of video games. Check the agenda at this link, and do not forget to get your ticket!