Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Selknam

Selknam is a versatile 2.5D adventure game engine built with C++23 and Raylib. It features a unique blend of 3D environments with 2D-style interactions, supporting a rich narrative and exploration experience.

Features

  • 2.5D Rendering: Combines 3D perspective with billboarded entities and orthographic-style UI.
  • Advanced Shader Effects: Includes post-processing, screen transitions, and object highlighting.
  • Narrative System: Integrated dialogue management for deep storytelling.
  • Dynamic Scene Management: JSON-based level loading with support for room transitions and persistence.
  • Inventory & Item System: Flexible item management and interaction mechanics.
  • Save/Load System: Persistence layer with support for multiple slots and automated screenshots.
  • Pathfinding: Grid-based AI movement and navigation.
  • Audio Management: Centralized handling of music and sound effects.
  • Cross-Platform: Built on top of Raylib for broad compatibility.

Architecture

The project is organized into several key modules:

  • Renderer: Handles the 3D scene and post-processing pipeline.
  • EntityManager: Manages the lifecycle and drawing of game entities (Player, NPCs, Items).
  • SceneManager: Controls level loading, state transitions, and environmental properties.
  • DialogueManager: Powers the branching narrative and UI dialogues.
  • InputHandler: Bridges player input with game actions and interactions.
  • StoryManager: Tracks global game flags and narrative progress.
  • SaveManager: Handles serialization of game state to JSON.
  • AudioManager: Manages background music and sound effect playback.

Getting Started

Prerequisites

  • CMake: Version 3.25 or higher.
  • C++ Compiler: Support for C++23 (e.g., GCC 13+, Clang 16+, MSVC 19.36+).
  • Dependencies: Raylib and nlohmann_json (automatically downloaded via CMake FetchContent).

Building

  1. Clone the repository.
  2. Create a build directory:
    mkdir build
    cd build
  3. Configure and build:
    cmake ..
    make
  4. Run the executable:
    ./Selknam

Controls

  • Left Mouse: Interact with objects, NPCs, or walk to a destination.
  • Arrow Keys: Rotate the camera.
  • + / -: Zoom the camera in and out.
  • H: Toggle "Clue Mode" (highlights interactive objects).
  • S: Open the Save Menu.
  • F: Toggle Fullscreen mode.
  • F1: Show/Hide Help.
  • Space: Advance dialogue or toggle experimental shaders.
  • ESC: Return to Main Menu.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Point and click adventure game

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages