Tiltshift

We built a custom engine for a racing game. My roles during this block were Gameplay Programmer and QA. The team consisted of three programmers. The engine was built from scratch and developed for Windows and PlayStation 4.

Length

8 weeks

Role

Gameplay Programmer & Tools Programmer & QA assurance

Tech

Perforce & Jenkins & Custom Engine

Members

1 Gameplay Programmer & 1 Graphics Programmer & 1 Tools Programmer

My responsibilities

  • Implement physics
    • Used Box2D for the physics
    • Built it into the entity component system
  • Create the player
    • Implemented a car using Box2D
    • Created an input lay out that works for Playstation and Windows
    • Made the player able to drift and slide through corners
  • Create the AI
    • Implement procedural learning for the AI
    • Write the learning progress to a file
  • Solved problems
AI

The AI improves it self by driving over the track. I attached nodes to the track, the AI writes to them if they drove faster than before.

The AI is using the same base vehicle as the player, meaning it is fully physics based. This gives interesting features like the possibility of sliding and drifting AI’s .

Here you can see how I trained the AI. They would start driving and if they hit a track limit they would start over.

Shipping the game with a semi-trained AI gives the player a challenge at the start. Making the AI learn while the player is playing gives more challenge to the player over time.

Player Car

The player car is build using Box2D physics. Input support controller and keyboard with the focus being the PS4.

Because the car uses physics as base to move around in the world it is possible for the player to drift and slide through corners.