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

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.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