Xtreme Drone Racing (W.I.P.)

Xtreme Drone Racing is a Playstation 4 game I am currently working on for my MSc Video Games Development (Gamercamp) course. The team consists of 6 programmers, 11 artists and 6 production/design people.

This is set to be an arcade racing game where the player flies drones (quad-copters) around various tracks while performing tricks to gain boost. The idea is loosely based on the budding sport of drone racing.

The game is being developed using Sony’s PhyreEngine 3.14 with C++ as the development language. Perforce is used for version control.

During the game’s R&D phase, I mainly worked on designing an Entity Component based system similar to Unity in order to empower the artists and designers to achieve their respective goals from within the Phyre Level Editor, without having to go through the engineering team to see changes appear in the game. We have successfully developed a framework to achieve this, and it’s proving really useful for the design team to explore/tweak control options, lay out AI paths and the tracks themselves, as well as for the artists to place buttons and map out the UI for the game.

In the pre-production phase, I am working on the Gameplay team and I have spent most of my time working on the vehicle controls. This is an early work in progress first-person view demo in a test level I designed:

The design team is able to explore a host of different options for how our game might be controlled thanks to the vehicle component developed, which supports simulating a “flying car”, plane or helicopter flight model among others:

Player controller component, available inputs

Player controller component, available inputs

Player controller component, rotation configuration

Player controller component, rotation configuration

Player controller component, movement configuration

Player controller component, movement configuration

Furthermore, I worked on the proof-of-concept boost and trick mechanics, which can be seen in the following video:

Note that tricks here are implemented programmatically to allow the design team to explore possible gameplay systems related to tricks. We would want to use keyframed animations for tricks later on, to represent a more lively and arcade looking feel. The boost mechanic is not tied to any gameplay systems at the moment either, and is there to aid in exploring track designs.

Beyond that, I implemented the Time Attack mode seen in the videos above, and locally saved leaderboards via the PlayStation 4 SDK. Finally, I was in charge of extending the PhyreEngine bindings for Bullet physics, as well as tuning the physics engine to our requirements, such as arcade collision responses, preventing tunneling at high speeds and so on.

The project is scheduled to go into production mid-May and is set to finish towards the end of August.