• Sony Computer Entertainment (SCE)
  • Codemasters
  • Creative Assembly
  • Splash Damage
  • Realtime Worlds
  • Digital Legends
  • Juice Games
  • Quantic Dream
  • Media Molecule
  • Krome
  • Monumental
  • Gusto Games
  • Frontier
  • Eidos
  • Evolution
  • Rockstar Games
  • Lionhead
  • Natural Motion
  • A2m
  • Bigbig
  • Activision
  • Capcom
  • Kuju
  • Lego
  • Black Rock
  • Square Enix
  • THQ
  • Konami
  • Disney Interactive
  • Glu Mobile
  • Ninja Theory
Bookmark and Share   UK +44(0)20 75806018   info@datascope.co.uk
 

info for candidates : Graduates

Advice for graduate programmers

So, you want to be a games programmer?

Writing computer games may seem like a dream job, but how do you actually become a games programmer? On this page:

CV advice and general tips

Be committed! Are you mad about games?

Firstly, having a passion for games is absolutely crucial. Only the best candidates succeed and these candidates are totally committed. You need to be passionate about games. Your programming skills may well transfer into the other (possibly better paid) sectors, but if you want to succeed in games it must be games that you want to make. It may seem as though every job advertised requires industry experience, but there are a limited number of places for candidates who have not worked in the games industry before.

Still with us? Then..

Make your CV scream games!

Make sure your CV screams out your objective of getting into the games industry! Write this at the top in your Objectives, Profile or Career Aims section to grab the reader's attention. Then, in the rest of your CV, emphasize anything you've done which is relevant and/or shows your enthusiasm for and interest in games - e.g. 3D graphics programming during a University project or in your spare time.

Your hobbies and interests section is a great opportunity to show how keen you are. What type of games do you like? Any specific examples? Why? Here is the place to say! When you are playing think about what you like and don't like - in an interview you'll need to be prepared to talk about anything in your CV.

Use Agencies

Don't be frightened of using agencies. Pick an agency which has a longstanding reputation in the games industry. A good agency will know exactly which companies are looking for what type of candidate. One call to an agency can save you many hours of time contacting every games company in the country. They are also an invaluable resource. Agencies look at CVs every day so they know what CV will get an interview and what won't. Ask their advice. Openness and honesty are crucial. Your agency is working for you; they should keep you fully informed.

At Datascope we now send our candidates a username and password for logging in to our website so they can see how their applications are progressing. Once you have registered you will be able to see the names of the companies we have sent your details to, and any interviews in the pipeline. (We will of course phone and/or email you if a company would like to see you - the web login feature is in addition to this!) We believe we are the only agency to offer this service.

Prepare examples of your work

This is essential for candidates without industry experience. For more, see below..

[top]

Programmers - Demo advice

This advice is subject to changes and improvements; reader comments are welcome. Please email simon@datascope.co.uk.

1. Which language/tools should I use?

Regardless of the platform(s) you wish to write games for, your demo should run on a typical Windows PC with the minimum of hassle. It's usually safe to assume Windows 98, a 3D card, a sound card and DirectX 9.

C/C++ - Undoubtedly the first choice because these are the predominant languages used on the main console platforms and PC. If you haven't already done so, get hold of a copy of MS Visual C++ and download or order the DirectX SDK (or another compiler and/or OpenGL) and experiment. If your C/C++ skills need brushing up have a look at one of the many books on the subject; ask other programmers for recommendations. Also use the web - there are lots of tutorials online, and a good starting point is the Developer Resources section of our Gateway to Games page.

Java - applets are preferable because they're easier to run than applications. Include an html page in a zip file with your class/jar etc files, or send a link to a web page which contains the applet. If your applet only works with Sun's or Microsoft's VM, and/or needs Java 3D make sure you say so, and specify which versions are needed.

GBA and mobile games - please supply the necessary emulator and instructions as necessary.

2. What should my demo actually be?

This is your opportunity to shine! What are you interested in, and what can you show off? 3D graphics, physics, AI, networking? It sounds obvious, but the more impressive your demo is the more it will stand out. Having said that, it probably shouldn't be at the expense of your formal studies or your entire social life! Even games companies like to employ people rather than coding machines ;-)

A playable game is not necessarily the most desirable kind of demo, particularly if it's 2D. Games companies see plenty of Pong and Tetris clones and tend to be underwhelmed, although by all means try writing a version of your favourite classic game as a learning exercise before trying something more ambitious. 3D graphics will impress most companies much more than 2D, and a demo showing a set of clear, well-implemented algorithms which you have had time to polish is generally better received than a complete 2D game.

Teamwork is crucial! Completing a demo game shows you have the enthusiasm and tenacity to finish what you start, but you won't be able to do everything when you're working on a commercial game. As a professional games programmer you're likely to be working in a team of 5-20 programmers, so think about how your code could work together with theirs. Can you demonstrate how other people could drive your code? You'll also be working with artists and games designers (and tools for them) - you don't necessarily need to show the tools needed to author the data for your demo, but you definitely need to know what tools would need to be written.

Use your imagination, but bear in mind that you're applying as a programmer, not a games designer or artist, so while wonderful new game concepts and beautiful artwork are great, they are certainly not necessary or expected. (Arguably your coding skills stand out more if the artwork you use is deliberately plain!) If you need textures, explosion noises and the like it's fine to use other people's stuff provided it is in the public domain or you have their permission; search the web and see our Gateway to Games. Make sure you say what's not your work, and it's good manners to credit the original artist/author(s).

Some further suggestions relating to specific types of demo (Graphics, Physics, AI):

Graphics:

  1. Consider the sort of custom data you might need to export from the art packages for the artist to be able to control the look of the artwork.
  2. When possible, show off 3D maths skills:
    • Projected geometry / textures
    • Environment mapping
    • Complex shadows
    • Curved surfaces
    • Complex camera tracking
    All of these require a strong understanding of the maths needed for games programming.
  3. Special Effects (Explosions, Particle effects, etc.)
    • Interesting unique effects are good, but not necessary.
    • Whilst background artwork should be deliberately plain (they are not employing you for your art skills), special effects artwork (usually textures) should be as good as possible. If you can get an artist to help you that's even better. With special effects looks are all important; how you achieved them is secondary.

Physics:

  1. Consider who sets up the various physics parameters and which ones are exposed to the game designer.
  2. Show collisions which cope with difficult cases
    • Stacked objects
    • Multiple collisions at same time
  3. Show management of scale
    • Keeping physics at a constant frame-rate despite large number of objects
    • Spatial optimisation to prevent needing to calculate collisions when they are not occurring
  4. Show numerical stability
    • Jittering when close to stationary is bad
    • Objects gaining unrealistic velocities (including angular) is bad

AI:

  1. Focus not just on the behaviours, but also how a game designer might control those behaviours.
    • AI is no good if game designer cannot get it to do what he wants
    • Often custom data is required for an algorithm. Consider how that data might be authored and who would author it.
  2. The behaviours must be demonstrably interactive.
    • Dynamic behaviour which can be replicated more simply by a pre-canned behaviour often shows a lack of practicality. What does the dynamism give you?
    • Consider the type of interaction which you are trying to demonstrate - is it clear?
    • AI is about the illusion of intelligence - does that come across?
    In what way is your AI intelligent and how are you selling it to the user?

3. How should I present and submit my demo?

A good idea is to consider the demo as presentation (particularly if it's not a complete game- see below) and lead the user through the various visualisations. This avoids the user having to use lots of different controls in order to see everything. Remember your demo needs to make the best possible initial impression on its own because you won't be there to explain!

Include sound effects if you wish but remember that annoying sound or music is worse than none. Arguably time spent learning the intricacies of e.g. DirectSound could be better spent unless you want to specialise in audio programming. If you do include sound, mention that you have it (perhaps by having an obviously visible option to switch them off) because in a work environment the person running your demo might have the volume turned down.

Offer a choice of screen resolutions, colour depths and windowed / full screen mode when the demo first runs or as an option accessible from within the demo itself. Do not make a user change their desktop display settings if at all possible.

Instructions / explanation of techniques - include a readme but display brief instructions (the controls at least) - in the demo itself, either during or before it starts. Most people will try and run the demo first then look at the readme file later. (Do you read the manual before trying a new game you've just bought?) A readme is good idea as well because you can use to explain the techniques you are trying to show, in addition to reiterating the controls and requirements.

Source code - we prefer you to include the source code because then it's available for clients should they wish to look at it. They are very unlikely to wade through it all so consider also providing extracts of the best and most interesting bits!

To submit your demo - please email a zip file (less than 4Mb preferred) or send a URL from which we can download it. Our mailserver won't reject larger attachments but our clients' might. If your demo is bigger than about 4Mb zipped, do you have big .wav files you could compress with e.g. ogg vorbis or mp3? Any image files you could convert to jpeg? Please post CDs only as a last resort.

Demo Checklist:

  • Does your demo work reliably? Try it on several PCs and please make it as bug-free as possible; crashes do not impress!
  • Have you included any non-standard DLLs it requires? (It may not be run on a development machine. In particular, compile a Release build (not Debug) if using VC++ / MFC.)
  • Does it look good - immediately? Try to grab the viewer's attention straightway - as with your CV. A game could have a demo mode which plays automatically after a few idle seconds on the title or menu screen.
  • Does pressing 'Esc' quit cleanly?
  • Have you supplied a readme file, or even better instructions within the program? They should say:
    • how to run it (the simpler the better)
    • how to play or get started; what the controls are (ditto)
    • system / software requirements - e.g. does it need a particular type of graphics card?

You can find lots more info on the web, and a good starting point is the Developer Resources section of our Gateway to Games page. There are also some relevant newsgroups including alt.games.programming and comp.games.development.programming.misc. (These links go to Google Groups).

[top]

Programmers - Sample demos

To run a demo here download the zip file, extract its contents into a folder and run the .exe file. Controls are either displayed on-screen or in a readme file.

A reasonably up-to-date graphics card is a good idea.

Recommended downloads for running demos:
- DirectX - latest version available from http://www.microsoft.com/windows/directx/
- Latest driver for your graphics card - available from its manufacturer/vendor (try this list).

SpinBall, Pacman and Crash - Andy Pheasant

SpinBall screenshot a.k.a. Super Funky Ball ;) Pacman screenshot Crash screenshot

Andy sent us three competent 3D game demos in one, so we'll let him off for being slighly over 4 Mb :) The addiction/frustration balance in Spinball seems to be juuust right and it may bring on a bad case of one-more-go-itis. You have been warned! He had several years of Visual C++ and hobby games programming experience but hadn't worked in the industry when he sent us this.

Download:Zip file (4.17 Mb)
Specific requirements:DirectX 9 for Spinball and Crash, DirectX 8.1 for Pacman

Street Racer - Michael Platings

Street Racer Screenshot   Street Racer Screenshot

Michael wrote this impressive GTA-like demo using Visual C++ and OpenGL and sent it to us when he had just finished his postgraduate research degree. It features "A highly robust collision detection algorithm, a Newtonian physics engine and an innovative dynamic lighting algorithm". He is now working as a games programmer :)

Download:Zip file (715 Kb)
Specific requirements:Fairly up-to-date graphics card. (Tested with Geforce 256; this may not be the minimum spec. Crashes reported with some ATI cards).
Homepage:http://members.lycos.co.uk/mplatings/

LLAMA (Lava Lamp Animated Model Application) - Kim Randell

LLAMA screenshot - click for full size image LLAMA screenshot - click for full size image LLAMA screenshot - click for full size image LLAMA screenshot - click for full size image

A lava lamp simulation Kim developed for his fourth year university project, using OpenGL. This is one of two versions you can find along with the full report on his website.

Download:Zip file (126 Kb including glut32.dll)
Homepage:http://members.lycos.co.uk/kim0randell/llama/

Copyright notice: The original authors retain copyright © of all demo and sample work here (except where otherwise stated) and it is published here with their kind permission. You may download material from this page for your own personal, non-commercial use only.

[top]

Current vacancies

These vacancies are suitable for graduates or other good programmers who do not have games industry experience. They are also posted on our main games programming jobs page.

If you are interested in any of them please quote the ref no(s) and send your CV and demo work.

Graduate C/C++ Developer - New

London, £GOOD

My client is a global brand and pioneer of web/mobile unlimited media services. This company has developed an award-winning cloud computing platform providing music discovery, recommendations, ingestion and community services across a diverse range of devices.

They are currently looking for a graduate Java Systems Engineer with a minimum 2:1 degree in Computer Science.

Must have working knowledge of:
- C/C++
- SQL/RDMS
- Digital Rights Management (DRM)
- Small device programming.

London £GOOD

Contact: Andrea Ref: 31958 15/03/10

Graduate C# Developer - New

London, £GOOD

My client is a global brand and pioneer of web/mobile unlimited media services. This company has developed an award-winning cloud computing platform providing music discovery, recommendations, ingestion and community services across a diverse range of devices.

They are currently looking for a graduate Java Systems Engineer with a minimum 2:1 degree in Computer Science.

Must have working knowledge of:
- C#
- WPF
- .NET
- SQL/RDMS.

London £GOOD

Contact: Andrea Ref: 31956 15/03/10

Graduate (Java) Systems Engineer - New

London, £GOOD

My client is a global brand and pioneer of web / mobile unlimited media services.

This company has developed an award-winning cloud computing platform providing music discovery, recommendations, ingestion and community services across a diverse range of devices. They are currently looking for a graduate Java Systems Engineer with a minimum 2:1 degree in Computer Science.

Must have working knowledge of:

Java
Apache/Tomcat
Jboss
Zabbix/Nagios
Linux variants
Scripting
SQL/RDMS (Oracle 10g+).

London £GOOD

Contact: Donna Ref: 31938 15/03/10

Programmers - various

Cambs, £DOE

Every single one of the 150 developers at this studio shares a passion for games - it shines through their impressive track record. Their advanced, integrated platform of technology & tools, which they've been evolving for 14 years, helps them maximise the care and attention to detail they put into all aspects of their work as they continue to drive towards their vision: of videogames being the world's premier form of entertainment. Headed by a legend in the industry this leading independent developer has a track record of games that have defined genres, been critically acclaimed and sold many millions of copies. They continue to innovate and are well known for incorporating many technological and game-play firsts. They are currently recruiting to deliver on an exceptionally strong, varied portfolio of 'next gen' projects. They offer a friendly, professional atmosphere and great working environment, are passionate about games and actively encourage individuals to develop both their skills and careers, and influence the company as a whole.

They are recruiting a mix of experienced and graduate programmers for various technology and tools team areas such as: 3D graphics, audio, animation, physics, networking, AI, platform specific low level code and optimization.They currently have several exciting ‘next-gen’ projects encompassing a range of genres. They have a reputation for technological innovation and their programmers get involved in all aspects of system architecture, design and implementation, bringing an extremely high standard of professionalism to the development of all their games, and fully contribute to a dynamic, creative and fun environment, working with advanced technology on the leading games consoles.

You will have either a good degree, or solid track record, in Computer Science, Maths or Physics and possible specialisation in one of the following fields: 3D graphics and shaders, animation, physics, AI, audio, networking, low-level code and optimization Industry experience is not essential, but passion and enthusiasm are.

Cambs £DOE

Contact: Andrea Ref: 31684

Junior Developer / Cloud Media Services / London

London, £27000

My client is a global brand and pioneer of web / mobile unlimited media services. 4 x Junior Developers / 27K london

A fantastic opportunity has arisen for 4 exceptional Graduate / Junior Programmers with this award-winning global company. My client has developed an award-winning cloud computing platform providing media / music discovery, recommendations, ingestion and community services across a diverse range of devices. This technology enables consumers globally to download, play and share unlimited amounts of music any time, any place. In partnership with the major international music labels, leading device vendors and mobile network operators, is ensuring the availability of next generation cloud-based media/music services.

You shall join an award-winning team of highly motivated and skilled software engineers. You will be mentored in the arts of cloud computing and build revolutionary music products across a range of platforms and devices. You will work in a friendly and relaxed environment where the emphasis is on the quality of your work and not the shininess of your shoes. Any combination of the following skills would be desireable:
C, C++, C#, Java, Jboss, Apache, Tomcat, SQL, Oracle, Flash etc

Ideally I am looking for someone with a minimum 2:1 degree in Computer Science or related discipline (disciplines such Linguistics, Music, Philosophy will also be considered providing there is a strong programming element), or equivalent. My client is head-quartered out of the US but this role is based in the UK's cutting edge development studio. Please get in touch ASAP to find out more, referrals appreciated!

Many Thanks!
Matt Hawkes: Senior Consultant.

London £27000

Contact: Matthew Ref: 31533

Software Test and Integration Manager

London, £DOE

Sony Computer Entertainment Europe Research and Development Team provides a range of services that support the development of games on the PlayStation family of products by both SCEE's own internal studios and its third party partners throughout Europe and Australasia.

They’re looking for s Software Test and Integration Manager to be responsible for coordinating test activities for multiple software development projects developed by teams within the SCEE R&D organization to ensure high quality standards.

Essential experience:
- Experience of managing API and tools testing.
- Excellent communication skills - able to work with a range of groups and individuals across a wide organization.
- Demonstrable project management experience in managing the delivery of multiple software products through the test lifecycle on schedule.
- Proven skills in being able to plan and manage all aspects of a test project.
- Previous team management experience
- Strong problem solving skills
- Fluent in English

Technical skills
- Solid understanding of the software engineering and testing processes.
- Demonstrable C / C++ programming skills.
- Proven experience of C / C++ black box testing for APIs including domain, functional, and scenario testing.
- Experience of testing frameworks, ideally UnitTest++ and CppUnit.
- Experience of automated build solutions such as Cruise control.
- Project management tools experience (such as Hansoft / MS Project).
- Experience of issue tracker software (Bugzilla/Jira) and source control systems (Perforce/Subversion).
- Computer Science or Engineering Degree 1st or 2:1 preferred.

London £DOE

Contact: Andrea Ref: 31443

Graduate Technical Artist

Brighton, £DoE

My Client has firmly established itself as a world leading developer of Next-Gen racing games and we expect them to continue that heritage with the creation of their forthcoming Next Gen title. Described as an extraordinary fusion of extreme sports and racing that results in a truly unique experience, the game promises to be one of the highlights of 2009. Now under the ownership of a major global company that self-publishes and licenses a broad portfolio of video games for multiple platforms in all major markets worldwide, this company is almost guaranteed a bright, innovative, and exciting future.

They are interested in graduate computer scientists who have strong visual skills, or production artists with strong technical skills. You should be equally comfortable explaining technical knowledge concepts to artists or translating artistic design into a technical implementation.

Responsibilities:
- Develops content creation tools and pipelines
- Work alongside the art department to provide technical support and workflow improvements
- Codes HLSL/Cg shaders from a variety of different reference materials

Technical Skills:
- Education in Computer Science, Mathematics, Physics or Engineering is desirable
- Ability to program in scripting or high-level languages such as Python, C++, C#, Lua, MEL, Maxscript, HLSL, Cg.
- Good working knowledge of 3D computer graphics including lighting, rendering and modeling
- Experience of user-interface design and an interest in Human-Computer Interaction

Artistic Skills
- An art background, from education and/or work experience, which shows a thorough understanding of visual balance, texture, colour, light and form. A good sense for material properties is necessary
- A good critical eye and the ability to critique others work constructively
- Experience of commercial graphics packages such as Maya, Max or Modo.

Brighton £DoE

Contact: Lucy Ref: 31417

PSP/PS3 Network Game Integration Engineer

London, £DOE

Sony Computer Entertainment Europe Research and Development Team provides a range of services that support the development of games on the PlayStation family of products by both SCEE's own internal studios and its third party partners throughout Europe and Australasia.

They’re looking for someone to create, maintain and enhance their internal suite of networking middleware and, at the same time, to assist and provide expert advice to the various game teams. There are two distinct areas of work and they expect a certain degree of familiarity with both. On one hand, there’s the enhancement and maintenance of theirr networking middleware, a cross-platform C/C++ code base. Additionally, they have to provide ongoing support to game teams during their development cycle, in all things online. This is not just supporting their own software but also the various platform specific SDKs, as well as providing guidance on general best practices and the occasional on site support.

Required Skills and Experience
- Reasonable competence in C, C++ and OOP.
- Ability to work concurrently on various projects.
- Quick learning and a proactive, can-do attitude. Quick to gain familiarity with new source code.
- Attention to detail and good debugging skills.
- Good communication skills, being able to explain technicalities to a broad range of possible audiences.

Desirable Skills and Experience
- Console games industry experience, preferably with Playstation formats.
- Network programming experience or at least an understanding of TCP/IP.
- Ability to work on several different branches across a project and understanding of the different source control solutions.
- UNIX experience, preferably as a developer as well as a user.

London £DOE

Contact: Andrea Ref: 31329

Graduate Mobile Programmer

Central London, To £27k + benefits

This award winning company is one of the world's leading developers of mobile phone gaming technology and content. Based in London and founded in 1998, the company has an unparalleled track record of innovation and market leadership in this field.

They need a graduate Programmer to work as part of a key team developing the company’s world-leading native mobile OS abstraction technology, for licensing widely to the mobile applications development community.

Candidates will have following skills/experience:
- Excellent academic qualifications.
- Thorough understanding of C++ (design, implementation and debugging).
- Ability to write high quality code quickly and work within a wide variety of codebases.
- Ability to move rapidly between varied and challenging projects and technical environments.
- Highly developed problem-solving skills.
- Good knowledge of writing efficient code in constrained environments.

The following skills/experience are advantageous:
- Working with mobile platforms.
- Games development experience.
- Real-time 3D graphics experience.


A full induction is provided to train new recruits in the company’s processes and proprietary technologies.

Central London To £27k + benefits

Contact: Andrea Ref: 31245