Foxer Engine
Status | Ongoing |
Language | C++/Lua |
3D, data-driven, multiplayer, cross-platform engine developed during final year of University.
Data-driven
Lua integration is one of the biggest features of this engine, with it effecting everything from rendering and physics, to entity and level definitions. Entities are defined by components which are defined in Lua. Callbacks and event handlers can also be created in Lua on entities and levels allowing a high degree of flexibility and freedom.
View Entity Examplereturn {
name = "Portal",
position = engine.math.vec3.new(0.0),
renderComponent = {
mesh = 2795621949,
shader = 2946951896
},
physicsComponent = {
type = 1,
shape = 1,
isSensor = true,
halfWidth = 2,
halfHeight = 2,
centreX = -5,
centreZ = 2,
beginContact = function(self, other)
if (engine.network.isClient()) then
engine.sound.play(3989746563)
else
engine.level.getActive().portalHit(self:getEntity():id(), other:getEntity():id())
end
end
}
}
The asset database itself is also in Lua to support adding custom assets to it with their own properties without needing to know any form of SQL.
Multiplayer
Using the Enet library, multiplayer is supported in the engine however it is an optional component and you are not forced to use it.