Data driven component systems aren't anything new, that's how Unity and the latest Unreal work. Pretty much this https://en.wikipedia.org/wiki/Entity_component_system. There was also a good description of this pattern in the book "Game Engine Architecture", which is a quite excellent read.

That said, while a quick-and-dirty implementation can be done in a day(hardcoding the component classes in C++), I am a bit of an idealist and would like to aim for maximum flexibility. Ideally I would like to write the data definition of a game entity in Lua, add triggers that apply certain behaviors (also defined in Lua), but store and operate on the data in C++.

P.S. E.g. Unity: http://docs.unity3d.com/Documentation/M … nts40.html Note that some components simply have to be hardcoded, such as the physics, graphics, audio, etc. The rest, such as stats, abilities, dialog lines, can be defined purely in script.

Thanks for the replies all.

Something I forgot to ask, what is the status of the networking features in the engine?

Nistur, what I am thinking about doing is implementing a module that allows you to use components(that hold data only) and behaviors(that operate on that data) as building blocks with which to compose your game entities. I did see your plugins and am reading through them to get more familiar with how Maratis is working.

Hi all,

I'm coming from Polycode, which is a similar engine in many ways, but at a much earlier development stage.

I have a few questions regarding the scripting system which I could not answer through searching the forums.

First of all, if multiple scripts have to be included by using the `dofile()` function in the main scripting file, is it possible to include them by using the `require` function instead? Is there anything specific in Maratis' implementation that prevents that?

Secondly, is there any entity-component system in place currently? Specifically, similar to Unity's. I am guessing that the answer is "no", since no properties can be added to an entity in the editor. I plan on implementing a plugin that remedies that, but it would be nice to know if the work would duplicate someone else's effort (in which case I can just help with that).

Third, is the Lua API generated or hand-written? There are number of tools that generate 1 to 1 C++ to Lua APIs, but I am not sure if this is the case here.

Lastly, are there any guidelines regarding contributing to the source code?

Thanks in advance!