Article image

Deus Vult

My first attempt at an ECS and implementing Lua and Spine.

This project was more of an exploration than anything else. I wanted to make an engine which could have its data serialised and manipulated with scripts rather than hard code.
Ashley Smith
Repository - Deus Vult

A link to the GitHub repository can be found here. Please also note that I was still learning git with this project and so it’s a bit of a mess!

What is Deus Vult?

I have a keen interest in making games without using mainstream game engines, so I have been exploring SDL and SFML recently. This project was my first attempt to implement scripting into a game — I wanted to make an engine which could have its data serialised and manipulated with scripts rather than hard code.

This project uses SFML for the main game using the window and graphics modules. I then use Sol2 for some bindings in lua. The result is that I have is the start of a game where scripts influence a lot of the game. I wanted to implement hotloading so that I could be editing a script and reloading it without recompiling or possibly even within the game itself.

The Core folder is where I placed resources that I felt could be shared between multiple projects, whereas the Game folder was for stuff I felt was pretty specific to the current game. the Data folder is where you’ll find the scripts. The most interesting scripts are located in the NPCs folder — I called him ‘bruh’. There are two definitions for him, one which uses a spritesheet and one that uses the Spine Animation Runtimes, both which point to a script which is also in the same folder. The script details how the NPC will interact with the player when interacted with, or simply walked up to.

Learning Lua for this project was pretty fun and it was interesting to learn how to bind languages together. I will certainly be remembering this trick when I try harder challenges in the future.

Previous Project

Redux For Games

A remake of my Alacrity in a homemade engine.
Next Project

Vect

A simple puzzle game made in Unity.