Custom C++ / Lua Engine

3D rendering, materials, and physics built into a general-purpose engine.

Atlas is a custom game engine built with C++ and Lua. The final version focuses on an OpenGL-based 3D pipeline, script-defined materials, and Bullet-powered 3D physics.

Developer: Xingjian Liu
leoxliu@umich.edu

Final Demonstration

Recorded feature walkthrough

Demo video: https://www.youtube.com/watch?v=ED9zd44UqOg

Technologies Used

Engine stack

Core Work

What this version adds

3D Rendering

Atlas supports 3D meshes, cameras, transforms, lighting, and directional light. The engine also renders 2D UI inside 3D scenes, which is visible in the demo through the health and hunger bars.

Materials

The engine supports custom materials defined from the scripting side. Different textures can be assigned to create distinct surface appearances, such as the grass and dirt materials shown in the demo.

Physics

Atlas supports 3D physics using Bullet Physics. In the test scene, physics is used for collision handling as well as player movement and traversal.

Architecture

High-level engine structure

Engine Layer

C++ handles rendering backends, asset loading, math, physics integration, and the engine runtime.

Scripting Layer

Lua drives gameplay behavior, scene logic, materials, and interaction logic on top of the engine systems.