Paul Johnston, Software developer

Job Title: Software Developer

Organisation: The Game Creators Ltd

Number of years in current position: 2

Qualifications: BSc Computer Science (2.1)

Briefly describe the organisation you work for.
We provide easy to use game creation tools that enable users to harness their imagination and create interactive 3D games without the need to code, or by programming in our Dark BASIC Professional programming language.

Explain what you do on an average day at work.
Depending on the progress of the project we are currently working on, it can vary from researching the latest technology, designing and implementing a code structure to handle the required data, or testing and debugging an existing or nearly complete project. Some situations you can access online documents that help you to code the desired result and at other times we have to use our instinct and code trial & error solutions. Games need fast routines that must output the results within 60 times per second, so optimised code and neat tricks are the order of the day.

What do you like most about your job?
I enjoy the problem solving associated with a challenge and finding the correct solution to achieve the desired result, particularly if the solution turns out to be non-obvious or ‘elegant’.

What stimulated your interest in maths, and when?
My interest in maths started at an early age whilst I was in Primary school. I saw a subject that provided not only problems but the methods of solving them. As I studied maths through A-Level I saw how the mathematical methods could be applied to real world problems such as those in physics and computing.

What influenced your career choice?
I didn’t learn about the potential of computers until I studied A-Level computing, but I immediately saw an outlet to apply the maths I had learned. I took an interest in the problem of collision detection between primitive shapes and that led me to a career in game development.

Which skills do you consider to be essential for your job?
The ability to breakdown a solution into simple steps that a computer can follow in your chosen language is essential. Also, for game development, it is beneficial to be able to spot areas of a solution that can be changed to reasonably trade accuracy for performance, or reorganising data to make the solution simpler.

Any advice you may have for other individuals considering your career path.
Pick a programming language that suits your chosen field and know it well; in game development this is most commonly C++ for its performance and low-level abilities. Knowledge of the language and its quirks will be the deciding factor in making the computer implement the solution you want.

Your future career plans.
I don’t have anything specific in mind but at some point I hope to write a 3D engine from scratch, perhaps building on my earlier collision work, so who knows where that might lead.