CV

Personal Details

Name:
Steven Campbell

 

Date Of Birth:
20th March 1986

 

Nationality:
Scottish/British

 

Current Location:
Dundee, Scotland

 

Current Occupation:
Lead Engine Programmer at Atomicom

 

 

Contact

Email:
stuckie[AT]stuckieworld[DOT]net

 

stuckie[AT]stuckiegamez[DOT]co[DOT]uk

 

 

Schools and Universities Attended

Knowetop Primary School:
1991 – 1996

 

Calder Primary School:
1996 – 1998

 

Braidhurst High School:
1998 – 2004

 

University of Abertay-Dundee:
2004 – 2008

 

 

Scottish Standard Grades – 2002

Computing
1

 

English
2

 

French
2

 

History
2

 

Art
2

 

Mathematics
2

 

Physics
2

 

Graphic Communication
2

 

 

Scottish Highers – 2003/2004

Information Systems
B

 

History
B

 

Business Management
B

 

Mathematics
B

 

Physics
C

 

English
C

 

 

University of Abertay-Dundee

BSc Computer Games Technology with Honours

Final Classification
2:1

 

–Example Grades–

 

(1st Year) Programming in C
A

 

(1st Year) Computer Games Technology ( Flash/GBA )
B

 

(2nd Year) Graphics Programming ( OpenGL )
A

 

(2nd Year) Console Development ( PS2Linux )
B

 

(3rd Year) Prototype Game Development
A

 

(3rd Year) Online/Mobile Games ( PHP/MySQL )
A

 

(4th Year) Honours Project Execution
B

 

(4th Year) Network Game Programming
B

 

 

Additional Qualifications

Young Enterprise Scotland 2004
Credit

 

Philips amBX Dare Award
2nd

 

Dare To Be Digital
2008

 

 

Job History

2011 – present
Lead Engine Programmer at Atomicom

 

2009 – 2011
Programmer at Playbox Games

 

 

Current Skills

Programming in C:
Intermediate – Advanced

 

Programming in C++:
Intermediate – Advanced

 

General Engine Programming:
Intermediate – Advanced

 

Programming in Lua:
Intermediate

 

Script Binding Mechanisms:
Intermediate

 

Tools Programming:
Intermediate

 

Programming in Objective-C:
Intermediate

 

My skill set will adapt as the task requires.

 

API Experience

OpenGL ( including GLSL ):
Intermediate

 

GLES 1 and GLES 2:
Intermediate

 

SDL:
Intermediate

 

wxWidgets:
Intermediate

 

 

Professional Platform Experience

Windows:
Intermediate – Advanced

 

Linux:
Intermediate – Advanced

 

Android ( including NDK bindings ):
Intermediate

 

iOS:
Intermediate

 

Playstation 3:
Intermediate

 

Wii:
Intermediate

 

Xbox 360:
Beginner – Intermediate

 

 

Homebrew Platform Experience

Gamepark Holdings GP2X/Wiz/Caanoo:
Intermediate

 

Pandora:
Intermediate

 

I particularly enjoy learning new platforms, in or out of work.

 

Released Titles
December 2011
Switch (iOS/Android)

 
Credit: Lead Engine Programmer
Going back to Switch, we updated it with some of the fixes we had done with The Best Christmas Game Ever and Tiny Gems to release it on both Android and iOS with the ability to remove Ads, and a cleaned up system to hopefully run on more devices and in a more Android-friendly manner.

 

December 2011
The Best Christmas Game Ever (iOS/Android)

 
Credit: Lead Engine Programmer
I again rewrote the Android system to match better with how the Java side works, to ensure we can target down to Android 2.2 onwards. This involved cleaning everything up and modularizing the code base so we can drop in features of later versions of Android, as well as drop in various libraries without too much damage to the rest of the system.

I also continued on the iOS system, to ensure we can use as much of our C++ engine as possible, and abstract the underlying system’s Obj-C from the rest of the team.

 

November 2011
Tiny Gems (iOS)

 
Jumping from Android to iOS, I wrote the initial iOS system and brought the game up as quick as possible, matching close to the current Android system as I could to allow the game programmer to only deal with one interface as much as possible.

I implemented support for everything from iAds and In-App Purchasing, to Game Center’s Achievements and Leaderboard support, as well as detecting the various different iThing platforms ( iPod, iPad, iPhone, etc.. ) and their resolutions to keep things as abstracted from the system as possible.

 

July 2011
Switch (Android)

 
Credit: Lead Engine Programmer
I was responsible for engine clean-up and general rework from the experiences learned from Bang Bang Racing to help enable games to be created faster, and run in a more optimised manner.

I again worked on the toolchain to enable support for Android’s multiple configurations, and with the experience from Bang Bang Racing, rewrote our JNI and Android linkup code to be more compliant with the rest of the engine.

 

May 2011
Bang Bang Racing THD (Android)

 
Credit: BBR – Programmer
Credit: BBR THD – Lead Engine Programmer
I was part of the team that developed Bang Bang Racing, and was responsible for the initial porting over to Android.

My THD specific tasks included setting up the toolchain, dealing with the JNI binds between native and Java code, ensuring that we were Android lifecycle compliant, and porting over or writing any system libraries that required it to run on the device.

 

Work Experience
Summer 2007
University of Abertay

 

I contributed some work at Abertay University on the “WhiteSpace” project with Networking, Database and CMS programming.

The Networking was between a Linux server and Flash client. The server also had to retrieve and update information from a MySQL database, which had a CMS front end for news, etc…

The Project was not completed, due to external issues.

Summer 2008
Dare To Be Digital

 

I was Lead Programmer for Team Caffeine on Plight of The Weedunks

My tasks included ensuring the engine was kept in order,
maintaining a tool to convert COLLADA files from Maya into our Graphics Engine’s binary format and extracting additional properties,
gameplay scripting,
tieing together the Graphics Engine to the Game Engine via Lua Proxies,
anything else that generally needed done.

Although we were hit with some problems due to mis-communication, we ended up with a solid prototype at the end of the ten weeks, and are very proud of the final product.

 

Personal Statement

Games Programming is inherently challenging and creative, which is something I love about it. There’s nothing better than solving a particularly nasty problem, with the end result being a unique gameplay mechanic that works and plays well.

For me, I love branching out onto new platforms and I’m an obsessive “technology fiddler” when it comes to gadgets; I will try and get my own code running on a device regardless of what restrictions are placed upon it! This has led me to become a better programmer in general, as most Homebrew requires very careful programming in confined environments, as they do not get the support that professional development environments give. This gives me the additional edge that I can work from a blank canvas, or adapt to existing frameworks when required.

I’m also not averse to building my own tools to get the job done, nor using different languages and find it easy to be able to switch mindsets when required.

As a mostly self taught programmer, I tend to be very independent and can be left to get a task done if need be; even if it involves going out of my “comfort zone” and researching new technologies and techniques. I also strive to make an effort in keeping the team involved and informed in what I’m doing at any time, and become fiercely committed to whatever project I’m assigned to. I will get the job done to the best of my abilities, which would include “crunch time” if necessary.

While the Games Industry continues innovating at the pace it does, I find it hard to keep up to date with all the APIs and platforms that come and go. However, I always strive to at least know the basics of anything that appears so that if I’m called upon to look further into it, I’ve always got some background knowledge and know where to look, and what to look for. As such, my skill set is constantly changing and evolving as I focus on different areas as the task requires.

It’s an exciting time to be involved within the Games Industry as new ground is broken every day, and I love being a part of it and contributing in any way I can.

Last Updated 12th February 2012

Post a Comment

You must be logged in to post a comment.