1.9 KiB
1.9 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Build Commands
- Build the game:
make - Clean build artifacts:
make clean - Run the game:
./ghostland
Architecture Overview
This is a C++ OpenGL 3D game called "ghostland-game" - a continuation of a previous Go-based project. The player navigates a maze-like environment while being pursued by ghosts.
Core Components
- ghostland.cpp: Main game loop, OpenGL setup, window management, and input handling
- Player: First-person camera system with mouse look, movement physics (including jumping), and flashlight mechanics
- Ghost: Enemy entities that move autonomously within defined boundaries and face the player
- Shader system: OpenGL shader loading and uniform management for different rendering passes
- Text rendering: FreeType-based text rendering system for UI elements like FPS display
- Collision detection: Ray-triangle intersection testing for wall collisions
Key Systems
- Maze loading: The
maze.txtfile contains vertex data for walls parsed at runtime - Lighting: Dynamic lighting system with player-controlled flashlight that responds to mouse movement
- Rendering pipeline: Separate shaders for different object types (walls, ghosts, text, trails)
- Physics: Simple gravity-based jumping with collision detection against maze geometry
Dependencies
- OpenGL 3.3+ with GLAD loader
- GLFW for window management and input
- GLM for math operations
- FreeType for text rendering
- stb_image for texture loading
File Structure
- Header files (.h) define class interfaces
- Implementation files (.cpp) contain the logic
- Shader files (.glsl) define rendering programs
- Object files (.o) are generated during build
maze.txtcontains level geometry datafonts/contains TrueType fonts for text rendering