Virtual Greyhounds Racing Simulation

Highlights

  • Designed and implemented real-time race engine using Unreal Engine from scratch.
  • Dynamically generated outcomes for all runners and winning places with determinate repeatable performances.
  • Simulated realistic race ebb and flow as runners gain and lose position with multiple variations for the same final result, combined with natural greyhound behaviour.
  • Simulated human camera operators with dynamic and realistically imperfect tracking, panning and zooming.
  • Created race track builder to programmatically model and distribute the track surface and associated fixtures (guard rails, fences, lights, lure rail).
  • Created dynamic special effects for particulate kick-up and surface footprints.
  • Created video post-processing solution to automatically cut the captured races, while checking for run-time issues in the footage.

Responsibilities

  • Middleware product evaluation, solution prototyping, analysis, design, development, unit testing.
  • Lead developer (single developer for 90% of project, joined by second developer near project end).

Solution

Real-time technologies: C++, Unreal Engine, Xcode, Visual Studio, macOS, Windows

Video processing technologies: Objective-C, Xcode, macOS

Pre-production content

Achievements

  • Development was cross platform, supporting macOS and Windows with a single source code base.
  • Positive QA feedback for the reliably deterministic results of all production runs.
  • Core “race engine” is extensible and designed to support additional race sports, starting with horse flat racing.
  • Video processor reliably performs frame perfect edits of the captured video, creating production ready race videos without manual interaction.

Pre-production content

Reference drone footage vs. virtual footage based on the same stadium (best viewed full screen)