Skip to content

Westerbay/SpellWar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

187 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔥 SpellWar - OpenGL 3D Third-Person Game

SpellWar is a third-person 3D game developed in C++ with OpenGL, featuring a custom-built game engine and real-time gameplay mechanics. This repository contains both the game logic and the engine from scratch.


🎮 Gameplay Overview

In SpellWar, players control characters across floating platforms. The game emphasizes mobility, precision jumping, and character selection.

🎮 Controls

  • ZQSD — Move (AZERTY layout)
  • Z — Up
  • Q — Left
  • D — Right
  • S — Down
  • Shift (hold) — Sprint
  • Space — Jump
  • Escape — Open the options menu

🧠 Movement Mechanic

To jump from one platform to another:

  1. Look at the platform you want to reach.
  2. Walk toward the edge.
  3. Jump while moving toward it to "launch" across.
  4. There must be no collisions between you and the platform.

🚀 How to Launch

  • Run the game in fullscreen:
    ./SpellWar
  • Run the game in windowed mode with custom resolution:
    ./SpellWar <width> <height>

🕒 Note: The loading time at the start can be long — this is due to initial map loading.


🧱 Project Structure

The codebase is split between two main components:

📁 src/wgame/ and include/wgame/

This folders contain the custom game engine, built from scratch. It handles core systems like:

  • Rendering
  • Animation
  • Input
  • Camera
  • Window management
  • Scene and entity systems
  • etc...

📁 src/spellwar/ and include/spellwar/

This folders hold the game-specific logic, such as:

  • Character behavior
  • Platform mechanics
  • Game rules and gameplay scripting

📁 shaders/

GLSL shaders used for visual rendering.


📦 Asset Credits

🪐 Background

🎨 Materials

🔤 Fonts

🪨 Rocks & Terrain

🌱 Plants

🌳 Trees

☀️ Celestial Bodies

🔥 Characters


🧊 Built With

  • C++17
  • OpenGL
  • GLFW
  • GLM
  • TinyGLTF

Authors

Wester