Programming or Code, is usually simply described as “a set of instructions”, “Creating tasks according to certain rules”, “Structured instructions that make an overall system function” etc etc.
While true in all regards, programming for me has always been about making rules, that can eventually change easily, it’s about making something flexible out of a structure that still maintains its rigidity. It’s downright strange, I tell you.
As an indie game programmer, my utmost respect actually lies with Game Designers, and I often find it surprising that other people find that surprising! Game Design is literally the heart of Game Development isn’t it, the glue that holds the rest of the talent team together.
However here’s the kicker.
In the process of designing a good game, there are numerous tweaks happening all over the place; balancing, adjusting, sometimes a whole mechanic gets knocked out because its not cohesive enough with the rest of gameplay.
So where does that leave our game programmers?
Good game development isn’t just always about having a plan – its more about having plan b, plan c, plan d and so on. You can develop a basic structure, but it’s never wise to go full steam power ahead with an entire system; especially if your game designer is still making little tweaks to core functionality.
Little tweaks to anything “core” – is still a core change- no matter how small it is.
So the lessons here are:
- Agree on the systems most basic mechanics and structure early on, the stuff that is highly unlikely to change.
- Build the game from an overall stance, kind of like a puzzle, (outside to inside), rather than like a building which has a concrete base that everything stands on.
- Communicate constantly with your game designers – ask them about the design progress for certain functionality and talk about how your code brings their design to life, even in a simple way – so that they understand how to create a design that is robust,dynamic and fun, but still follows the overall basic rules of your system.
. Amina Khalique | Technical Director .