Giter VIP home page Giter VIP logo

space-nerds-in-space's Introduction

This is a multiplayer networked spaceship bridge simulator game
inspired by another game called "Artemis Spaceship Bridge Simulator"
It's not really close to finished, but it's more or less playable
at this point.

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

space-nerds-in-space's People

Contributors

smcameron avatar jv4779 avatar her001 avatar sbenesh avatar teflonsquirrel avatar kapcom01 avatar akien-mga avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.