Skip to content

gtk/linux open source multi-player spaceship bridge simulator inspired by "Artemis Spaceship Bridge Simulator"

License

Notifications You must be signed in to change notification settings

confucious/space-nerds-in-space

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is some preliminary code for a multiplayer networked spaceship bridge
simulator game inspired by "Artemis Spaceship Bridge Simulator"

If you would like to help work on this project, see CONTRIBUTING.md

There are three parts.

The first part, ssgl (super simple game lobby) is licensed under the MIT
"expat" license (see ssgl/LICENSE).  Ssgl is a generic lobby library which
contains nothing that is specific to Space Nerds In Space (except that, as far
as I know, Space Nerds In Space is the sole user of ssgl -- probably because I
wrote it to enable Space Nerds In Space.) 

The 2nd and 3rd parts are the client and server portions of Space Nerds In
Space.  They are licensed together under the GNU GPL v. 2 or (at your option)
later versions.

1. ssgl/ssgl_server is the game lobby.  "ssgl" stands for "super simple game
lobby".  (There is a github project, "ssgl", but the code in here is more up to
date than that.)  This does matchmaking between snis_client and snis_server
processes.  It does not do NAT punchthrough, so it's a LAN only thing.  It can
use, but does not require the following lines in /etc/services:

gamelobby	2419/tcp
gamelobby	2419/udp

If those lines are missing from /etc/services, port 2419 will be assumed.

2.  snis_server:  This is the Space Nerds In Space game server.  This runs the
simulation of the space-nerds-in-space universe.  There are two threads per
client, one to read, and one to write.  The simulation, runs, and periodically
changed state is dumped out to all the client writer threads, and by this means
the clients are updated.   The reader threads gather inputs from the clients
and these inputs are fed into the simulation.

3. snis_client:  There can be many instances of this.  The plan is there should
be one instance per "station" on each "starship".  These process receive input
from the snis_server process and display this data in whatever form is suitable
for whichever starship station is being provided (e.g. navigation, weapons,
communication, engineering, science, etc.)  (Currently any instance of
snis_client can do any of the available functions to whatever degree they are
implemented (As of Nov 2012, mostly not implemented.))

The snis_client programs need not run on the same server as the snis_server nor
on the same server as each other, and the ssgl_server may run on yet another
system.

The sequence to run this thing is:

a) start snis_client (several instances, one per bridge station per team)
b) From *one* of the clients, start the lobby server, and a game server.
c) For each client, select the role.  Selecting no roles is the same as
   selecting all roles.
d) Connect the clients to the lobby, and then from there connect to the
   game server.  Each client should use the ship name and password for
   the team they are on (this is just something the players make up and
   agree upon.  There should be one shipname/password combo for each
   "team", or starship, in the simulation.

2) press function keys f1,f2,f3,f4,f5,f6, etc. on each client to switch between
   the roles that station fulfills.

That's about all the instructions I have for now.

------

Logfiles:  by default, /dev/null is used as a log file.

Some environment variables can cause some network related logging:

	export SNIS_SERVER_LOGFILE=snis-log.txt
	export SSGL_LOGFILE=my-ssgl-log.txt

Some other environment variables influence the level of logging:

	export SSGL_LOG_LEVEL=0
	export SNIS_LOG_LEVEL=0

lower values means more logging (yes, that's backwards and I should fix it.)

-- steve

About

gtk/linux open source multi-player spaceship bridge simulator inspired by "Artemis Spaceship Bridge Simulator"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published