Profile

Skills and Experience

Employment History

Venatrack LTD

Remote (Offices in Slough)
September 2010 - January 2013
Senior developer

I worked at Venatrack on several components of their Motion Capture system which recorded football matches from a number of cameras using different software for a variety of stages of the production, both live software and post-production.

  • I was involved in re-writing the c++ rendering engine for our 3D-clip production software to move from FixedFunction code (DirectX 9) to a more powerful and flexible system (using DirectX 11) which allowed us to add a large number of effects and render much more higher-resolution geometry (collada) whilst still being efficient and allowing us to produce video clips of the 3D renders.
  • Writing HLSL shader effects such as depth of field, realtime shadows, and other post-processing pixel shader effects to go with geometry-effects such as large volume rendering of crowd members (all on GPU)
  • As the different cluster components developed I introduced new systems and classes specifically to aid optimising the c++ multithreaded software, identifying slow code, removing contention between threads and increasing concurrency on 16 core machines.
  • I refactored and improved much of our core C++ API, used on the truck software and our various tools, introducing Unit Tests and identifying(and fixing) many bugs with these core classes which improved stability
  • Much of our C++ software needed to be administrated live under tense conditions so most components had a PHP Web interface with a custom-written C++ HTTP server. This not only needed to be efficient but cross-browser safe (including tablets and mobiles) and implement protocols correctly.
  • We had proprietry database and file formats to store gigabytes of data so we often needed specific C++ tools to convert, view and manage these assets which needed to run fast and work with 3gb+ files.
  • Much of these video tools needed realtime conversion for other flash or HTML based tools (both live and post-production) and to facilitate operators often had a web-interface to interact with the executables on remote machines. These were often written in PHP on a WAMP server to execute these tools and monitor their progress.
  • To evaluate the improving quality of our software, we had various tools to evaluate certain aspects of the software (eg. OCR or Team-kit recognition). Using Teamcity I wrote various scripts in Python to compare the XML output of these tools to automatically produce HTML graphs so we could see improves per-commit.

Travellers Tales

Knutsford, Cheshire
October 2009 - September 2010
Game Systems & Tools Programmer

I joined Travellers Tales to continue my career in the games industry in the MiddleWare team of the company working primarily on the Level Editor and game-systems which the games are run on top of. All of our work was in C++.

Lego StarWars, Lego Pirates of the Caribbean (2010-2011):

  • Implementing new high-level UI functionality.
  • Rewriting and refactoring underlying/low-level design for the editor to allow massive expansion and improve stability, efficiency and move more tools into one interface
  • Refactoring other low-level game-systems which the games run on top of.

Lego Harry Potter (2010) Wii, PS3, XBox360, PC:

  • Working on tools and bug fixing towards the end of the project

Tootle LLP

Derby, Derbyshire/Manchester
August 2008 - October 2009
Partner/Programmer/Designer

With a former colleague I formed a company working on small independent games for Apple's iPhone and low-barrier entry consoles. We have developed our own technology and tools with scalability in mind and looking to expand in the future back onto consoles. We released a few small games into the AppStore whilst we worked on a much larger project, but this never came to fruition before our funds ran out.

Most of the work was in c++ for cross-platform purposes, with objective-c for IOS specific interfacing.

Tootle has ended as of October 2009 as we have run out of bootstrap funding.

Skills and development involved:

  • Large scale engine design with stability, multi-threading, networking/streaming in mind
  • Modular and scalable cross platform design.
  • Low level efficient render implementation across platforms.
  • Created a rapid development asset pipeline working cross platform and realtime asset-reloads, sourced from OS file systems, network/internet.
  • State and XML based graph system which is easily serialised into save-assets which can be stored, streamed to other clients or replayed.
  • Built in tools development and will have realtime mutli-user development
  • Physics, audio implementation and modular integration with 3rd party services and SDK's.
  • Rapid data-driven gameplay development
  • Business/company related activities, setting up a company, accountancy, tax returns etc.
  • Scheduling and working with outsourced artists/services.
  • Deployment of company web-site and web-based interface to game social features
  • Setting up company systems; Version control, bug tracking, scheduling software, backups, automated build processes and unit testing, secure remote access.

Eurocom Entertainment Software

Derby, Derbyshire
August 2001 - July 2008
Games programmer

My initial role at Eurocom was developing gameplay mechanics but soon moved into more technical work; building frameworks for other members of the game development team to use to make their job easier and more efficient.

The Official Beijing Olympics (2008) PC, XBox 360, PS3:

  • Fast large crowd rendering (400,000 animated crowd members) using instancing, vertex shaders and minimum of resources
  • Low level networking implementation including a custom protocol with flexible data storage in packets and Nat-negotiation
  • High level networking game-interface, transparent to all 32 events.
  • SDK specific match making, lobby and user handling on Xbox Live, Gamespy and PSN.
  • Base game/event system on which all other events were built on top.
  • Event implementation support to other programmers and aiding personal development.
  • Generic control system which made GamePad control, AI, network-streamed and replay input transparent to events
  • Customisable in-game character creation across all events
  • Initial implementation of a few events.

Pirates of the Caribbean: At World's End (2007) PC, Wii, PS2, PSP:

  • Credited for work reused from previous project, also provided support for implementations

Ice Age 2: The Meltdown (2006) Wii, PC, Gamecube, PS2, XBox:

  • Entire Wii port of the company engine using new rendering features, wii mote implementation, save systems and working with evolving hardware/sdk. Implementation took around 2 months in time for the Wii launch.
  • Object graphical effects, glass/ice refraction on objects, physics based tails and ropes, springs. Death effects
  • Menu and UI implementation including artist-orientated screen system, cross platform interface support
  • Level transition effects, fast level change and file handling
  • Save system which allowed us to restore the game to an exact point/state of the game
  • Efficient and font rendering system
  • Customisable control system for the player through Menu system cross platform.
  • Localisation implementation including foreign keyboards on the PC, non english character text support and specific japanese, chinese and russian builds
  • TRC handling and correction across all platforms and various territories, eg. japanese wii
  • In-game text management tools

Batman Begins (2005) Gamecube, PS2, XBox:

Sphinx and the Cursed Mummy (2003) Gamecube, PS2, XBox:

  • Joined both projects to help finish the games to implement missing features, bug fixing and optimising code
  • Front end menu system, localisation and text handling.
  • Fullscreen graphics effects including heat shimmers, water refraction
  • Platform specific save game management and TRC handling

Robots (2005) PC, Gamecube, PS2, XBox:

  • Fullscreen graphics effects including heat shimmers, water refraction
  • Game-wide optimisation
  • Boss level
  • Base game object systems, framework development for future games.
  • Inventory and pickup object management system
  • Localisation handling, efficient text rendering system for very large amounts of in-game text
  • Menu and UI systems with cross platform interface support
  • Platform specific save game management and TRC handling

Buffy the vampire slayer: Chaos bleeds (2003) Gamecube, PS2, XBox:

  • Multiplayer/control support
  • Camera control
  • Player weapon implementation
  • Gameplay implementation of puzzles, object types
  • Gameplay objectives and level-to-level handling
  • Inventory and pickup object management system
  • Menu and UI system, localisation management
  • Platform specific save game management and TRC handling

Self employed web/application development

1998 - Present
Developer/designer

I have produced web sites, backends, Content management systems and e-commerce systems on a contract basis. I have a long standing experience with web-based technologies and standards compliance. I also have been involved in graphics production including creating logos and brands and whole site designs and user interfaces.

Most of my web-based work is personal; experiments with technologies, integration into non-web based (console) games.

Whilst I am a competent designer most live examples are more technical achievements rather than examples of design. Often I am asked to implement a design from drawings/images or add dynamic functionality to an existing site and not change the design.

Skills used:

  • Worked with PHP, XML, XSLT, Perl, Python, JScript/Javascript, Wordpress and more
  • Dynamic image and flash animation manipulation
  • AJAX based dynamic pages
  • SQL and XML based database interfacing and management
  • RSS management and manipulation
  • Simple standards based CSS and XHTML sites
  • Larger re-usable CMS systems with simple automated interfaces to databases where websites could be constructed from XML
  • Negotiating and liaising with clients and other contractors

Westek Technology

Melksham, Wiltshire
April 2000 - May 2000
PHP Programmer

As part of my college work experience program I worked at a company for whom I wrote a web-friendly front-end for their internal Microsoft Access databases in PHP. Although this was just work experience I was asked for specifically and was paid for my work.

Education

Trowbridge/Wiltshire College

Trowbridge, Wiltshire
1999 - 2001

Distinction grade BTEC National Diploma in Computer Studies, specialising in Programming.

References

Contact phone numbers and email addresses availible on request.

Thomas M. Carlsson

Venatrack LTD (In administration)
Richard Taylor

Travellers Tales (No longer at TT)
David Arnold

Eurocom (In administration)