Files
ghostland-game/CLAUDE.md
2025-08-03 11:15:54 -04:00

46 lines
1.9 KiB
Markdown

# 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.txt` file 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.txt` contains level geometry data
- `fonts/` contains TrueType fonts for text rendering