Segs / SegsEngine

The engine that will become the basis for client/editor/server components.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RFC: Engine architectural layout.

nemerle opened this issue · comments

I'm not very happy with the approach the original Godot engine took to tooling/testing/executables:
Namely that all functionality is embedded in a single file, for example:

  • unit tests are ran using a specific command-line option
  • project manager/launcher is part of the main executable

I think we can do better, the question is - what approach should we take?

Low level

  1. Separate the whole engine into DLLs, make them as re-usable as we can ( right now EDITOR build sets #defines that modify the layouts of various classes, thus preventing any form of binary re-use). The game/editor/server executables would depend on a set of DLLs.
  2. The engine as a set of static libraries, linked with executables
  3. Hybrid approach - large parts of the engine are a static library + parts of it are contained in DLL files.

Thoughts?

What about rewriting it in rust?

What about rewriting it in rust?

Just as soon as I see LumixEngine rewritten in Swift :trollface: