Giter VIP home page Giter VIP logo

yanschw / suoraengine Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 0.0 162.65 MB

Suora Engine โ€“ Open Source 3D game engine written in C++ ๐Ÿ”จ

Home Page: https://yanschw.github.io/Suora/

License: Apache License 2.0

Batchfile 0.01% CMake 0.94% C 26.55% Less 0.04% HTML 0.31% Objective-C 0.67% Lua 0.08% C++ 69.66% Ada 0.38% Assembly 0.59% Pascal 0.18% Makefile 0.02% C# 0.23% M4 0.01% DIGITAL Command Language 0.01% Roff 0.01% Python 0.01% Shell 0.01% GLSL 0.30%
3d-graphics cpp cpp20 game-development game-engine game-engine-3d gamedev engine opengl

suoraengine's Introduction

Suora Engine

SuoraEngine is an open-source C++ Engine for building 3D real-time rendering Applications and interactive Content, especially Video Games.

Screenshot of the Suora Engine editor

Current Features

Gameplay Programming

Gameplay Programming Gameplay Programming using C++ and a custom C++ Reflection System using SuoraHeaderTool and SuoraBuildTool. Everything is devided into C++ Modules, which can be compiled incrementally. Full Clean Engine Build within 5 Minutes. Incremental C++ Build (Compile + Editor Startup) in <15 Seconds.

Gameplay Scripting (Experimental)

Gameplay Scripting Gameplay Scripting using C#. Extend Native C++ Classes and Functionality with C# and .Net Core 8. .Net Core 8 SDK is required! Full C# Build + HotReload in <5 Seconds.

Visual Scripting (Experimental)

Visual Scripting Create custom Gameplay Logic using Visual Scripting. Easy interoperability with C++ using SuoraHeaderTool.

Other Features Suora offers:

Feature Description
Custom SuoraBuildTool To extend the Engine using Modules as Plugins and to allow Reflection and Introspection
Custom Visual Scripting Tools Node-based Visual Scripting to enable easy implementation of custom logic
Physics 3D Physics using JoltPhysics
GameFramework Flexible Node-based GameFramework
Custom EditorUI using the RenderingAPI as a Backend (Immediate)
InGameUI using the GameFramework and UINodes (Retained)
Full Visual Editor Feature complete Level- and Asset-Editor to enable authoring game content
Deferred Rendering Deferred + Forward Rendering using scriptable Shaders
Particle Systems using Instanced Rendering

Getting Started [Windows]

  • Download the latest Engine Release on GitHub
  • Install the .Net Core 8 SDK
  • Install Visual Studio 2022 and also install Desktop Development with C++ using the Visual Studio Installer Screenshot of VS2022-Installer-Workloads
  • To create a new or open an existing Suora Project, start the Launcher in /Binaries/
  • Choose a Project Name and Location and select Create Project CreateProject
  • Visual Studio should open by default
    • If not, open the Location in your File Explorer and use the Buildscripts in {ProjectLocation}/Scripts/
    • Open the .sln manually
  • Choose Editor as your Startup Project and Release as your Configuration
  • Compile and Run

Build the Engine Yourself

  • Clone the repository: git clone --recursive https://github.com/YanSchw/SuoraEngine
  • Generate the Solution using /GenerateSolution.bat
    • Make sure, MSBuild Path is valid
    • This script compiles SuoraBuildTool.exe and copies it into /Binaries/Scripts/
    • It executes SuoraBuildTool.exe and generates a VS2022 Solution
  • Open the Solution using Visual Studio 2022
  • Build using VS2022

Build Requirements

  • C++20 Compiler
  • [Windows] Visual Studio 2022 Toolset (MSVC) (Community Edition)

Supported Platforms

  • Windows (64bit)

suoraengine's People

Contributors

yanschw avatar

Stargazers

yingnierxiao avatar meo209 avatar Justus Dietrich avatar Antti Nuortimo avatar Chukobyte avatar allo avatar Paulo Marangoni avatar  avatar

Watchers

Lucian avatar  avatar

suoraengine's Issues

Creating a Feature Complete ParticleSystemNode

With Commit 902c3cb Suora received a very basic implementation of a ParticleSystem.

ParticleDemo

There are still some missing features:

  • Emitting Particles through a ParticleEmitterNode
  • Interacting with Particles through a ParticleBehaviourNode

We want to use the Template Method Pattern to dynamically implement different Particle Behaviours

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.