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)