Magic Engine
Overview
Features
- Input handling
- Window layers (+ input redirection)
- Easy & performant rendering (+ instancing)
- Full GLSL shader support
- Basic Lua communication
- Basic networking (including snapshots)
- Universal design, can be used for any 2D application
- Easy to use
- Very lightweight (few classes & files)
- Demo RPG Game
- Level Editor
Work
- Designing an API from the ground up
- Converting the design to code
- Tons of research
Tech
- C++ 11
- SDL 1.2 (window & input)
- OpenGL 3.3 (rendering)
- Lua 5.2.2 (scripting)
- RakNet (networking)
- IrrKlang (audio)
Description
This project originally started out to be a modding tool for (the amazing) Dungeons of Dredmor.
As the game's levels, items & scripts were all handwritten I wanted to contribute to the community by creating a level editor.
However later down the line I later decided to turn it into a multipurpose 2D engine, and start building different projects on top of it.
But most of all the engine is currently an experimental playground, a place where I try out new idea's with the goal of improving my programming abilities.
Idea's
The main focus while creating this framework was to provide only the core features to create any 2D game, no game/genre specific features would be added. While doing this I wanted to maintain transparancy & accessibility.
This means the following:
- Every class has a direct use for the programmer (avoid tons of wrapper classes)
- A more traditional design, manage objects & memory yourself. (resource & window management are the only exceptions)
- Very small & compact