Simple Engine Library (SEL) is a 2D open source (Zlib license) game engine written in cross-platform C++ and Lua. SEL is a professional and modern engine that utilizes the component based model to facilitate very efficient development cycles.
Look ma' I madeth logo
SEL is ideal for two specific uses:
- Creation of any 2D game
- Study as reference for all interested in computer science, especially game engines (actually not a great reference now. I haven't written any articles on its implementation yet, or commented much of the code, lol)
Engine Design Overview
+ Show Spoiler [Overview] +
The engine is designed with a component based model. Game objects are merely aggregates of components. A component encapsulates specific data and functionality. The components a given game object define its behavior and appearance. The engine is designed to take advantage of how simple a component based model can be data driven. Data oriented design is taken advantage of where necessary (in this regard SEL's design is similar to the ever popular Entity Component model).
SEL takes advantage of a custom introspection implementation. This leads to automation of many tasks such as serialization and script binding. You might think that the source code of SEL is small in comparison to the feature list; utilization of introspection is the biggest reason for this.
In general simplicity of implementation leads to readable and efficient code; advanced C++ features are only used where necessary. C-like code is often striven for.
SEL takes advantage of a custom introspection implementation. This leads to automation of many tasks such as serialization and script binding. You might think that the source code of SEL is small in comparison to the feature list; utilization of introspection is the biggest reason for this.
In general simplicity of implementation leads to readable and efficient code; advanced C++ features are only used where necessary. C-like code is often striven for.
Engine or Library?
+ Show Spoiler [???] +
Originally the scope of the project aimed to provide a small library for utilizing a proper component based C++ core. After time the scope changed to something larger and cooler -a fully featured engine.
A Little About Myself
+ Show Spoiler [hi] +
I'm a computer science student currently studying for my Bachelor's in CS. I spend most of my freetime playing Starcraft Brood War, working on this project, and hanging out with my lovely girlfriend. I also like to frequent websites like reddit and stackexchange to answer people's CS questions.
I have sort of a thing for trying to help out individuals learn CS and game programming, for free. There was a time when I wanted to attend uni and couldn't due to lack of funds. This experience drives a lot of the effort I put into trying to make free resources for others.
I have sort of a thing for trying to help out individuals learn CS and game programming, for free. There was a time when I wanted to attend uni and couldn't due to lack of funds. This experience drives a lot of the effort I put into trying to make free resources for others.
DEV LOG - I post random stuff about what I've been working on in the project here
Link to Source Repository
Completed Features List
Dev Schedule
A GAME AMONGST GAMES
I'll actually be making a game with this engine. The engine isn't just here for fancy doodle just because! So can you imagine a cross between Kirby and Zelda??? BECAUSE I CAN.
Some inspiration: Hyper Light Drifter.
That is all.