Skip to content

Repository files navigation

Storm Engine

A multithreaded, multiplayer-focused game engine

This is a mirror of the codebase stored on my private git server. It does not include the assets required for the engine to actually run. It is uploaded here to be a showcase of the code for the engine, not a complete product.

Codebase Guide

Languages

Features

Core Engine

  • Runtime scripting in Typescript
  • Eventually-synchronized networking
  • Service-and-signals system

Renderer

  • Forward+ rendering
  • Per-actor multi-pipeline support
  • Transvoxel (networked) implementation
  • Anime-inspired shading
  • Instanced grass (up to 2 million blades at 60 fps)

Native Lib

  • Complex fluid dynamics simulation
  • Explicit memory management for high-frequency objects (fluid chunks)

UI

  • Web-inspired ui framework
  • Supports loading HTML and CSS files that define ui elements
  • Scripting engine hooks typescript into ui events

Chunks

  • Advanced terrain system (transvoxel, multi-textured)
  • Blocks implementation
  • Fluid simulation

AI

  • Behavior Trees implementation

Collisions

  • Floating-origin collision engine
  • Dynamic terrain chunk collision management

Support Tooling

Dependencies

See Here

Building

Windows

  1. Install
  1. From choco install
  1. Run build.sh

The build will be in <Project Directory>/build

Alternate Build Profiles

Several build profiles are defined in maven to support different functions

  • fast - Only runs the fast unit tests
  • integration - Runs the integration tests
  • integrationDebug - Runs the integration tests with the memory-debug jar linked

Documentation

Building

The documentation uses Doxygen to build.

On windows, it's recommended to use Doxywizard to build the documentation.

To build

  • Open the file <Project Directory>/docs/Doxyfile
  • Navigate to the Run tab
  • Click Run doxygen
  • Click Show HTML output

About

Core repository for Storm game engine

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages