Giter Club home page Giter Club logo

mobagen's Introduction

MoBaGEn

MoBaGEn - Module Based Game Engine - Educational tool to teach game programming concepts.

Join us: say thanks Discord

Metrics: Codacy Badge GitHub language count GitHub search hit counter Lines of code GitHub all releases GitHub contributors

CI: Windows Web Linux OSX pages

Try online

Before checking it online, some demos are intended to be implemented by you. So most of the demos would looks like empty;

Want to showcase your work here? Create a pull request.

Do you like it?

Motivation

  • Act as functional game engine to teach and use as base for presentations;
  • Don't want to recreate all game engine stuff, glue them all. "Life es too short to build a game engine from scratch";
  • Have full control of all the processes from code to the delivery;

Follow me!

Did you like this project? Follow me on social medias

Why C++

  • Has many solid, well maintained, efficient and stable libs;
  • It speaks straight to hardware, you can do whatever you want;
  • It is portable.

Why CMAKE

It is the best all-around solution to:

  • Create projects cross-platform
  • Configure variables and flags
  • Build complex projects in easy way
  • Most relevant libs supports it

Why CPM

  • Best package manager to import and use third party libs from source code with low maintenance code.

Architecture

Please refer to this doc.

Restrictions

  • If a library do not easily compile on all supported platforms, we won't use it.
  • Use consolidated libs and do not reinvent the wheel (only if is strictly needed)
  • Start small and make small steps towards the goal.
  • Always make everything lib interaction swappable as good as we can.
  • Never use any lib on the core code. The core should interact with the libs through a glue code. Ex.: core lib -> physics module -> bullet physics engine
  • Target the latest C++ version that is portable to our targets(iOS, Android, Windows, Linux, OSX, WEB). compiler support table.
  • CI should be able to build to all targets at once.

Essential Modules

  • Core
  • Job/Task Module
  • Resources Manager

Optional modules

  • Graphics
    • 2D - Needs to not rely on SDL_Renderer anymore
    • 3D
  • Physics
  • Sound
  • Networking
  • Scripting
  • GUI
    • ImGUI via 2D renderer - needs to become agnostic
  • Input
  • Game Components
  • Scene
  • Logger

Todo List

  • Image Editor Application
    • Design Editor similar to Slicer3D
    • DICOM loader
    • 3 viewports synced with exam data
  • Game Editor Applications
    • Compilation of scripts
    • Execution of scripts within their respective contexts
    • Manipulation of variables within script contexts
    • Support importing and exporting compiled scripts

mobagen's People

Contributors

tolstenko avatar dillondrum70 avatar dnekos avatar omurex avatar winterequinoxalpha avatar

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.