I been looking on the wiki for an overview of the engine. I just looking for some brief overview of the features of the engine and how it works at high level.
In particular wondering how the networking works? And if the simulation supports multi-core CPUs. One problem with FAForever is the engine simulation is limited to a single thread and therefore the game is very capped to a single CPU core speed.
Also wanting to know if parts like intense parts like pathing etc are done in C++ or Lua. And if spring engine can take advantage of LuaJIT for the lua parts.
Engine Overview?
Moderator: Moderators
- Silentwings
- Posts: 3720
- Joined: 25 Oct 2008, 00:23
Re: Engine Overview?
I don't know enough to give you a proper one myself, but some of the dia files in here may help you: https://github.com/spring/spring/tree/develop/doc
Re: Engine Overview?
i'm not an engine dev, so, grain of salt here;
IIRC LuaJIT was tried for lua and found to have negligible impact on performance.
See here for discussion of luaJit - that thread also details why MTSim was split off into a fork.
As for;
My understanding would be along the lines that; Spring supports multi-threading in certain aspects of the engine for example loading, but the simulation, including synced lua code, runs on a single core. Zerver was working on asynchronous sim but that has now been split off into a separate and non-official fork. Again, huge warning sound I am not an engine dev and may well be either out of date or talking complete nonsense.In particular wondering how the networking works? And if the simulation supports multi-core CPUs. One problem with FAForever is the engine simulation is limited to a single thread and therefore the game is very capped to a single CPU core speed.
Pathing is in general done in C++, though there is a lua interface. Generally, 'intense' work is done engine side in C++.Also wanting to know if parts like intense parts like pathing etc are done in C++ or Lua. And if spring engine can take advantage of LuaJIT for the lua parts.
IIRC LuaJIT was tried for lua and found to have negligible impact on performance.
See here for discussion of luaJit - that thread also details why MTSim was split off into a fork.
As for;
I would quite like such a page also, however, I clearly don't feel qualified to write it ^grom358 wrote:I been looking on the wiki for an overview of the engine. I just looking for some brief overview of the features of the engine and how it works at high level.
Re: Engine Overview?
Maybe this is interessting thread:
How the GameServer works: http://springrts.com/phpbb/viewtopic.php?f=12&t=30652
How the GameServer works: http://springrts.com/phpbb/viewtopic.php?f=12&t=30652
Re: Engine Overview?
MT-SIM had many issues that resulted in it being removed. Good news is that the latest dev build of spring has threadpool, this is a working implementation of multithreading.