Project Overview: Cyberpunk Buenos Aires VR

Cyberpunk Buenos Aires VR is a fast-paced VR racing game created for a university expo under a strict two-week deadline.
Players control Krammer, a reckless biker racing through a cyberpunk version of Buenos Aires.
The aesthetic draws from Akira and the explosive race dynamics of Split/Second.

You steer with your head and shoot with your hands while navigating high-speed tracks and avoiding enemies.


Technical Architecture

Modular Framework

The game is built on a custom scripting framework developed over three months, designed so every behavior is a decoupled, reusable module.

State Machines

  • The core logic runs on a reusable State Machine component.
  • Each machine manages a serialized list of states:
    • OnIdleState
    • OnRacingState
    • OnDeathState
  • Each state exists as a child GameObject and contains all its own logic.

Modular Logic Example

Inside OnRacingState, an AI racer may use:

  • RigidbodyFollowTransform — movement
  • RigidbodyRotateTowardsTransform — steering
  • AudioSourcePlaySound — sound effects

Each is an independent module activated only by the current state.


Performance & Centralized Updates

CentralUpdater

To keep VR performance high, the architecture avoids using Unity’s scattered Update() calls.

A single CentralUpdater runs the game loop.

Update Listeners

Modules needing per-frame logic use:

  • UpdateListener component
  • IECallableOnUpdate interface

They subscribe to the central loop only when their state is active.

ScriptableObject Integration

ScriptableObjects are used to manage:

  • Input
  • Object Pooling
  • Racer Data (names, positions, laps)

This keeps everything efficient and Inspector-friendly.


Summary

The project delivers a high-speed VR racing experience built on a clean, scalable, and modular architecture, optimized for performance and rapid iteration.

Built With

Share this project:

Updates