Games functionality covers a broad array of areas, including graphics, networking, AI, and physics, all coming together to form a coherent whole, and the result should be a game you pick up and play without a glitch. All the inner workings are developed by programmers, who need to create a consistent, efficient, and stable experience across a number of devices and often more than one platform as well, while providing the right framework for the work of designers and artists to shine.
Alan Chambers, Senior Graphics Programmer here at PikPok, shared his experience with us.
What’s your background?
My practical education in video games started when I was 5 years old after my Dad bought a ZX Spectrum 48k in 1985. After that my education continued in 1990 with the Amiga 500. That was actually a truly incredible time for games. The Super Nintendo Entertainment system had just launched and we were starting to see Arcade quality games like Street Fighter II appearing in the home. I was completely hooked.
It was only a few years later, at age 15, that I started coding. Around the same time, I had to start thinking about academic subjects that would shape a career for me. I chose every computing module I could get my hands on. And eventually, several years later, I graduated with a Masters Degree in Computer Science from the University of Wales, Swansea with Distinction. All that time spent on video games hadn’t hindered my academic capacity, but it certainly helped define me as a person.
How did you get into video games coding?
After I finished my studies, I started looking for work. I submitted my CV to an agent in the UK, who rejected it almost immediately. The feedback I got took me aback. I hadn’t conveyed any sort of passion for games and, in particular, not even stated what my favourite games were. I obviously had plenty to talk about in that department so I whipped up version two and sent it around.
However, it was then three months since I had graduated. My Dad was sick of supporting me at the age of 22 and so he took me to one side and told me to “give up this dream of getting a job in video games and get a real job”. It was only a couple of weeks later when I got my big break. A guy called John Wildsmith, a former coder at Ocean took me on to do some work in collaboration with Konami. A year later I was at Sony Computer Entertainment making AAA games for PlayStation. You should never give up your dreams, not even if your Dad tells you to.
What have been the biggest differences for you with the switch from console development to mobile games?
In many ways the switch has meant a return to the ways things used to be done. Console hardware is incredibly technical and requires big teams to cover all the aspects of development. The scale of the projects means it often takes years to bring it together. Mobile games have made it much simpler to get your product out there for several reasons. The hardware is not as complex. It means we try less to achieve physically correct game worlds, because it’s not quite possible yet. Instead we focus more on making things fun. This allows us to have small teams kicking out fun and vibrant games in a matter of weeks or months. And this also means we can engage in more projects simultaneously, which makes better business sense.
Secondly, the ability to roll out updates on demand has been incredibly helpful. It means we can get the first iteration of the game out there and earning cash quickly. The submission process is therefore much simpler since issues that surface post release can be easily addressed in an update.
Do you work as sole coder within a team, or do you split the tasks with another coder?
It depends on the project really. Generally, it's been the case that I work with another coder so we need to divide up the work between us. However, it’s not always this straight forward. Sometimes we have coders come on to a project to do certain tasks and then move off once they’re complete. The working environment can be quite dynamic.
What are your duties?
My duties within the studio are quite varied. They range from implementing specific graphics features for the art department to optimising areas of our games that are slow and aliaising with external publishers. Other responsibilities include overseeing the development decisions on our internal render engine tech as well as representing the company at various University expos. There is certainly never a dull moment.
What are the challenges of the work?
The work presents both computational and mathematical challenges. We have to work within the constraints of the hardware we are targeting. And this often means we have to find ways of making things run nicely on the less capable devices without compromising the overall look of the product too much. The difference in performance on the devices we support can be quite large, so creating a scalable solution that works for all of them is definitely not easy.
Which other team members do you work directly with?
I tend to work very closely with the art department to ensure their vision for a particular product is achieved. This often means I need to liaise with tech art as well to build the tools we need for a certain effect or feature to come through into game.
What skills do you need to develop to work on mobile games?
We’re finding that we need a much broader skill set to work on mobile games. Because of the smaller team sizes, each person has a greater area of the game to own. It means we are getting exposed to areas of maths and coding that we wouldn’t really have had a chance to do on the consoles. In addition, there has been a shift in the type of programming languages we need to use. Java, Objective C and C++ knowledge is now used to kick out a number of titles whereas previously we were using just C++ and assembly. Also, we’re now able to integrate other technologies that help us analyse how our games are being used so we can make them even better in future updates. This means we’re having to learn how to collect, and respond to, meaningful data if we want our games to be the best they can be.