Reflections, a Ubisoft studio is a video games development company based in Newcastle, UK. Collaborating with Ubisoft's international creative teams on projects such as Assassins Creed Syndicate, Tom Clancy’s Ghost Recon, online open-world RPG \"The Division\" as well as the adventure platformer \"Grow Home\". With a host of other top titles to our name such as open-world action adventure 'Watch Dogs', MMO racer \"The Crew\" and the latest instalment in the world's No.1 dance game franchise 'Just Dance 2015' Reflections' objective is to combine technical expertise, flair and innovation to create and contribute to successful and memorable games. We are looking for Pioneering, Obsessive Humans to cement its reputation as an industry leading studio within the UK and the world.
The Senior Physics Programmer is recognised as a leader in his or her field and will possess specific analysis skills which make them a point of reference for their project and the Studio. He/she will implement, maintain and advise the game team on various physics based systems, including vehicle handling dynamics, ragdolls, physics based animation, cloth and water simulation, and collision response. The Senior Physics Programmer reports to the Lead Programmer.
- Research and experiment with unconventional techniques and new approaches to contribute to technology advances for the project or Studio;
- Develop complex algorithms, techniques and processes to expand the engine functionalities;
- Offer expertise in team software design reviews and assist with making major software design decisions for the project.
- Produce robust meta programming solutions and be fully aware of potential problems and pitfalls;
- Design modules or components to be integrated in a complex system;
- Use data modelling to structure and organise data;
- Use templates & design patterns appropriately;
- Perform code reviews for peers (detects errors, design flaws);
- Extract and interpret run time information related to processor load & memory usage, and take appropriate actions to optimise;
- Use cutting-edge technologies at low level to make optimizations;
- Design and develop test framework and process that can be used for different games systems and projects;
- Participate in the definition of coding standards & methods used on the team;
- Determine the cause of complex defects in the engine and provide solutions;
- Create tools for memory & CPU load profiling;
- Integrate large-scale modules or components (could be from other projects) while minimising the impact on the rest of the programming team;
- Anticipate online system performance issues which could restrict their scalability;
- Involvement with education of the game team to ensure vehicle gameplay is considered during the design and implementation of game features;
- Assist with investigation, design and implementation of class-leading vehicle features;
- Implement practical and timely solutions that meet the game design and technical requirements;
- Implement code that is modular, self-contained, and defensive and observes the technical constraints on the system;
- Work as a key part of an agile development team, taking responsibility for organising and planning their own work;
- Ensure coding standards are followed, and help to enforce good programming practices within the engineering team;
- Maintain technical documentation for the engineering team as well as other disciplines;
- Optimise code and data for memory usage and performance as required;
- Write debugging tools for programmers, level designers and artists;
- Keep abreast of changes related to vehicle and physics gaming within the industry.
- Support the Lead Programmer in any ad hoc tasks and duties.
Skills and Knowledge
- Passionate about playing and making games;
- Excellent C/C++ programming skills, with good knowledge of object oriented development;
- Experience with commonly used development tools such as Visual Studio and perforce;
- Able to plan and estimate their own tasks and ensure timely delivery of work;
- Self-motivated and pro-active with a strong work ethic;
- Excellent oral and written communication skills;
- Bachelor’s degree in a relevant subject or equivalent industry experience;
- Substantial commercial software development experience with significant involvement in 2 major published games in a physics programming capacity;
- Knowledge of common algorithms, data structures and patterns, and the ability to apply them to problems while keeping constraints and performance in mind;
- Able to analyse unfamiliar code of significant complexity to understand and extend the functionality of an existing module;
- In-depth knowledge of different software development methods such as Test Driven Development, Unit Testing, Agile etc.;
- In-depth practical knowledge of physics middleware such as Havok, Bullet, PhysX or equivalent in house physics simulation systems, including their architecture, application and limitations;
- Very strong demonstrable skills in mathematics, physics theory and principles;
- Proven ability to debug defects of significant complexity.
Salary: Competitive + Relocation.
Location: Newcastle upon Tyne, U.K