Faelin Engine 2

Project Status Finished
Project Type Research
Project Duration 4 months
Library SFML

About FE2

Game engines have always been fascinating to me.
Known as one of the hardest things to create on your own I decided to give it my best.
It resulted in a simple yet well constructed engine I have labeled the "Faelin Engine 2".
I also created a little game to go along with it to show off all the features.

It was quite a struggle. Debugging complex bugs, refactoring the whole system when it got messy and of course working around circular dependency's.
But I learn a lot about how game engines are constructed and how to expand upon them.
This project made me fall in love with game engine architecture, and I am certainly not done making engines yet.

Features

Dynamic Widgets

One of the first things I created where dynamic widgets.
These widgets are created by pressing the arrow keys in the direction you want them to appear.
They will be created it the right position and size.
To remove them you can hold left ctrl and press the desired arrow key.
It destroys the widget and removes it out of the vector.
All the other widgets will get recalculated accordingly.

The Engine Architecture

The engine is constructed in an agile and modular way.
All the way at the bottom is the Engine class. This class holds the other systems like the SceneManager.
The SceneManager holds all scenes. These scenes will be loaded from a folder that contains JSon files and puts them into a vector.
A singular Scene object holds some useful information. It also holds all GameObjects that are present in the scene.

Now we have gotten to the point where you see things on the screen.
The GameObjects are basically empty containers for components.
There are a lot of different components such as the Transform, SpriteRenderer, Rigidbody and way more with each of them containing their own logic and values.

All of this gets saved into a JSon file and gets loaded whenever needed.

Level Creation

Each object with the transform component has a unique gimbal that lets you change its transform while in the editor mode.
Using this and the number keys on my keyboard to spawn in set objects i have created 20 levels for the demo game.

Upgrades

I have restricted the transform gimbal to whatever stage the player is on.
It can pick up an upgrade to mutate into the next form and whilst doing so it unlocks the next ability lke rotation for example.

Tricky Puzzles

Some of the later levels have some quite thought out puzzles where the player needs to utilize all of their tools to complete it.
It was quite difficult to thing of ideas that remain fun and fresh but i would say that i have completed my job in this aspect.

Escape

To finnish the game off i created a little escape sequence.
The player goes through the pipes of the facility and escapes into your desktop wallpaper.

Check It Out!

Click here for repository page