Engine Overview?

Engine Overview?

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

Post Reply
grom358
Posts: 1
Joined: 05 Nov 2013, 05:02

Engine Overview?

Post by grom358 »

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.
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: Engine Overview?

Post by Silentwings »

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
User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6242
Joined: 29 Apr 2005, 01:14

Re: Engine Overview?

Post by FLOZi »

i'm not an engine dev, so, grain of salt here;
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.
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.
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.
Pathing is in general done in C++, though there is a lua interface. Generally, 'intense' work is done engine side in C++.

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;
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.
I would quite like such a page also, however, I clearly don't feel qualified to write it ^
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: Engine Overview?

Post by knorke »

Maybe this is interessting thread:
How the GameServer works: http://springrts.com/phpbb/viewtopic.php?f=12&t=30652
User avatar
The Yak
Posts: 351
Joined: 20 May 2012, 05:36

Re: Engine Overview?

Post by The Yak »

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.
Post Reply

Return to “Engine”