Skip to content

Farzoo/Marble-run-extreme-DTE-3613-1-25H

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DTE-3613-1 25H VR, Graphics, and Animation

Master's coursework - UiT The Arctic University of Norway, Fall 2025 (Grade: A)

Overview

Marble Run Extreme is a 3D physics-based marble racing game with procedural track generation. The project comprises two main components: the game runtime and a track piece calibration editor.

Stack: C++20, OpenGL 4.1, ReactPhysics3D, Dear ImGui, Assimp

Architecture: GameObject-Component pattern with modular separation (Game / Scene / Renderer / Physics / Core). Shaders in res/shaders/, track specifications in assets/*.json.

Game

Gameplay

Multiple marbles race on procedurally generated tracks. Physics simulation runs at fixed timestep using ReactPhysics3D with sphere-mesh collision detection. The track system operates at two levels: individual pieces with entry/exit transforms chained via matrix composition, and higher-level sections assembled by the procedural generator based on elevation, difficulty, and compatibility constraints.

Key features: Blinn-Phong shading, cubemap skybox, particle effects, split/merge track paths, boost triggers, finish detection.

Calibrator

Calibrator

Dedicated editor for defining track piece connection points. The interface provides mesh browsing, transform property editing, and interactive 3D gizmos (translate/rotate/scale with snap). Specifications export to JSON, enabling iteration without recompilation. Auto-mirroring generates left/right variants.

Build

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/MarbleRunExtreme

Documentation

Full implementation details in the technical article.


Diogo Caldeira Ribeiro
DTE-3613-1 25H VR, Graphics, and Animation
UiT The Arctic University of Norway

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published