1. As a shared library
pro:
- more flexible (direct function calls for setting options, no need for AutohostInterface etc.)
- can be integrated into lobby / autohost / ladder server / whetever
- less work for me

- option 2 could be emulated by writing an simple executable for parsing script etc.
2. As a stand-alone executable
pro:
- behaves more like spring.exe
conn:
- more work for me

- noobs asking: "ZOMG I double-clicked server.exe and nothing happenz!!!1"
PS.: the library would simply contain a class like "GameServer". Usage draft:
Code: Select all
GameServer* myDedicatedServer = new GameServer(myGameSetup, myPort);
while (myDedicatedServer.Running())
{ sleep(1);
}
delete myDedicatedServer;
Unfortunately I don't know how Java (AFLobby) and Pascal (TASClient) support shared libraries.
Feel free to post feedback here.
PS.: I would prefer Option 1