Skip to content

Airstrafing game made using a handmade game engine (openGL, C++).

License

Notifications You must be signed in to change notification settings

kevinsadi/lei3d

Repository files navigation

lei3D / SkyLei

skylei logo

About

This is a dual repo to support the game SkyLei, and bespoke game engine Lei3D that it was built on.

If you wanted to know more about our process, and/or want to learn more about the engine, please check out:

Features

lei3d logo

  • Core
    • Build System for Windows, Mac, Linux - CMake
    • Physics, Quake-like air strafing, surfing, and bunny hopping. Rigid Body Collisions - Bullet3
    • GUI and dev tools - imgui
      • Level Editor
      • Frames Per Second (FPS) counter
      • Level Switching
      • Scene Edit/Play mode & Pausing/Resetting Levels
    • Player Controller / Input System
    • Entity Component System (ECS)
      • Includes naming for entities
      • Modify transform of entities from GUI
    • Forward Lighting
      • Physically Based Material System
      • Directional Lights
      • Cascaded Shadows
      • Skybox Rendering
      • Stencil Masking
  • Post Effects
    • Desaturation
    • Screen Space Reflections (SSR)
    • Distance Based Fog

Build

lei3d has originally been created using Visual Studio 2022 on Windows. We currently have two build targets, one contains the level editor and one is the game on it's own. It has been tested on other platforms, to compile, please follow the instructions below to use CMake to create a build for whatever system you are currently running on. You can consult alternative building instructions for other IDEs on the technical docs.

Windows

  1. Download CMake. Ensure to set Cmake available on path to all users.
  2. Open CMake GUI tool. Select source code to be the root directory of this cloned repo
  3. Create a new folder called 'build'. Set this to be where we build our binaries
  4. Press generate
  5. Open the generated sln file with Visual Studio 2022
  6. Under the solution explorer, find lei3d_lib. Right click and press build. This builds the library for lei3d.
  7. Under the solution explorer, find either LeiEditor_exe for the game OR SkyLei_exe for the game. Right click and press build on the respective solution you want.
  8. Right click on the same solution you want to run again, set it as the startup project.
  9. Run the project (top left).

Mac

  1. Navigate to the project folder
  2. Make a build folder mkdir build
  3. Enter the folder cd build
  4. Compile your project cmake ..
  5. Call make
  6. cd /src/engine
  7. ./LeiEditor_exe for the editor OR ./SkyLei_exe for the game

Linux

  1. Navigate to the project folder
  2. Make a build folder mkdir build
  3. Enter the folder cd build
  4. Compile your project cmake ..
  5. Call make
  6. cd /src/engine
  7. ./LeiEditor_exe for the editor OR ./SkyLei_exe for the game

Build Types

Depending on your needs with the engine, there are multiple ways you can build the engine. If you want to build a Debug build, include cmake -DCMAKE_BUILD_TYPE=Debug when you first run CMake. You can specify the same cmake parameter for Release builds.

requirements

Graphics card that support OpenGL 4.6

SkyLei - Surf The Sky Islands

Overview

SkyLei is a game that presents a unique twist in the world of speed running games by focusing on slowing down.

In a world that is shattered to pieces and taken to islands in the sky, SkyLei follows the exhilarating plight of Leilani Leaf through a colorless, once beautiful world. Primary gameplay consists of racing around and exploring a surreal-dreamlike world with physics-based movement. The levels of the world add new features that inspire new routes and discovery of the world. This adds challenge and enjoyment to players of any skill-level. At the very end of each level, Leilani brings color back to the world when she discovers the beauty of all that surrounds her.

Controls:

Keys Action
WASD Movement
tab Open Debug GUI
q Lower Camera in Fly Mode
e Raise Camera in Fly Mode
r Reset Scene
p Toggle Between Pause and Play
space jump in play mode

Showcase

surfing.mov
add.color.with.sound.mp4
childlike_wonder.mp4

image

flower