TheMaverickProgrammer / SGEEngine

Free, open-source, game engine and a 3D sandbox.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Work-in-Progress! The official "early alpha" release should be available anytime soon. I want to have good samples and documentation before releasing it. Stay tuned!

SGEEngine

SGEEngine is an open source (MIT License), C++ centric game engine with an editor usable as a sandbox. Aimed at simple projects, SGEEngine is suitable for small games, game jams, learning, personal projects and can be used as a basis for your own game engine.

I've build many demos and toy projects with it. Below you can try an endless runner game that I made in a few days with the engine. It is an endless runner game in a 2.5D world. The game works on desktop, web and web on phones.

Broomin Around

I've also did a small test recording of me explaining the basics of the engine how one could make a small Ballance-like game with it: SGEEngine demo

alt textalt text alt textalt text

Roadmap to 1st release:

  • better in-game UI API (in progress)
  • Sample demo scene and games (in progress)
  • Documentation
  • Kinematic Character controller (80% done)

The main features of the engine are:

  • Cross platform working on Windows, GNU/Lunix and on the web via Emscripten.
  • Scene editor for 3D and pseudo 2D scenes. Having all common features like transform, tools, property editor, undo/redo, curve editing and more.
  • C++ hot reloading (edit you game while it is running).
  • Direct3D 11, OpenGL 3.3 and WebGL 2 rendering backends.
  • Physics.
  • Path finding.
  • Importing external assets like GLTF, FBX, DAE and OBJ.
  • Simple particle effects.
  • Rich math library.
  • Timeline animations.
  • Material System.
  • Hopefully being easy to setup and use.
anim_aanim_hello.mp4

Roadmap:

  • Responding to user feedback.
  • Documentation and samples.
  • MacOS builds and Android.
  • Terrain tools.
  • Animaton and VFX tools.
  • Metal rendering API support.
  • Shader Graph.
  • A lot more stuff.

Philosophy

SGEEngine strives to be simple to use, debug and modify. It is aimed at simpler games and application, however this does not stop you to extend it and build more complex ones. Unlike other games engines, SGEEngine does not use the popular entity-component-system (or its derivatives). Instead it takes the classic game object approach - base game actor type that can expose its functionally with interfaces (called Traits). Traits are similar to components in Unity, however they are known in compile time. This means that for each different game object type you will construct a small Actor type that will have the desired traits. The engine comes with commonly used actors pre-built, like: static/dynamic obstacles, lights, level blocking actors, cameras, lights, navmeshes and others.

Building

SGEEngine uses CMake as main, build system. Getting the engine running should be straightforward.

Minimum supported version of CMake is 3.14. Importing 3D models requires the usage of Autodesk FBX SDK 2020.0.1 or later. Compiling SGEEngine without it is possible however you would not be able to import FBX, DAE and OBJ files. Autodesk FBX SDK is not needed for your final game it is used only as tool.

Here is a screenshot describing how to configure SGEEngine: alt text

About

Free, open-source, game engine and a 3D sandbox.

License:MIT License


Languages

Language:C++ 47.1%Language:C 42.9%Language:HTML 3.0%Language:CMake 1.1%Language:Shell 1.0%Language:Python 1.0%Language:Objective-C 0.8%Language:Java 0.8%Language:M4 0.4%Language:D 0.3%Language:Makefile 0.2%Language:Raku 0.2%Language:Assembly 0.2%Language:Perl 0.1%Language:Ada 0.1%Language:Rich Text Format 0.1%Language:Lua 0.1%Language:Pascal 0.1%Language:C# 0.1%Language:JavaScript 0.1%Language:HLSL 0.1%Language:Objective-C++ 0.0%Language:Batchfile 0.0%Language:Roff 0.0%Language:PowerShell 0.0%Language:SWIG 0.0%Language:Inno Setup 0.0%Language:Rust 0.0%Language:Terra 0.0%Language:Turing 0.0%Language:Metal 0.0%Language:CSS 0.0%Language:DIGITAL Command Language 0.0%Language:Dockerfile 0.0%Language:Smarty 0.0%Language:Meson 0.0%