RayneEngine is a small custom 2D game engine built with SFML.
It’s a portfolio project created as part of my training as a Game Engineer — focused on learning, experimenting, and exploring engine architecture in C++.
This engine is not meant to become a large-scale framework, but rather a compact, understandable system that demonstrates how core engine components work together.
RayneEngine is still in early development.
Most systems are experimental and will change frequently as I refine the structure and design.
The following Code...
local speed = 100
local amplitude = 100
local timer = 0
local startY = nil
function OnCreate()
print("Lua: Started Player Script")
end
function OnUpdate(dt)
local pos = GetTransform(self)
timer = timer + dt
if startY == nil then
startY = pos.y
end
local newX = pos.x + speed * dt
local newY = startY + MathR.Sin(timer * 1) * amplitude
SetPosition(self, newX, newY)
print("Player is now on Position: " .. pos.x .. ", " .. pos.y)
endresults in the following pictures...
NOTE: This is experimental and needs further development to be completely functional.
-
Core Engine Structure
- Main loop with delta time
- Modular design (rendering, input, scene management)
- Basic ECS (Entity Component System)
-
Rendering
- SFML-based 2D renderer
- Sprite and texture handling
- Basic camera system
-
Input
- Keyboard and mouse input via SFML events, but planned to be in Lua events
-
Scene Management
- Early prototype of an entity and scene system
- Simple resource loader - PLANNED
-
Utility Layer
- Logging system - PLANNED
- Math helpers (vectors, transforms, etc.) with Lua integration
-
Future Goals
- Physics prototype
- Simple in-engine debugging tools
- Language: C++
- Framework: SFML 2.6+
- Build System: CMake
git clone https://github.com/prayyOnIntelliJ/RayneEngine.git
cd RayneEngine
mkdir build && cd build
cmake ..
make