• Stars
    star
    724
  • Rank 62,593 (Top 2 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created about 12 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Multi-player spaceship bridge simulator game. Captain your starship through adventures with your friends. See https://smcameron.github.io/space-nerds-in-space

Space Nerds In Space is an open source multiplayer networked spaceship bridge simulator game inspired by another game called "Artemis Spaceship Bridge Simulator" It is still a work in progress, but it is substantially far along, and reasonably free of bugs as far as I know (the game should not crash, in other words.)

Here is some video from February 2019, at HackRVA in Richmond, Virginia:

Watch the video

Features:

  • Terminals for Navigation, Weapons, Engineering, Damage Control, Comms, Science, and Game Master.
  • Multi-crew (multiple bridges) supported
  • Terminals may join/leave/re-join games at any time.
  • Asteroid mining
  • Bounty hunting
  • Travel between instances of the game via warp gates in an arbitrarily large universe of solar systems.
  • Dock at starbases to repair your ship, buy/sell various commodities, sell mined ore, obtain warp gate tickets, etc.
  • Lua scripting API for mission scenarios.
  • Voice chat
  • And of course, fly around and shoot stuff.

Note: This game is meant to be played on a LAN with all players in the same room. Bandwidth requirements are on the order of 100k/s per client.

  1. How to build the game from source (or see below):

    https://smcameron.github.io/space-nerds-in-space/#buildinstructions

  2. How to run the game on a single machine (single player):

    https://smcameron.github.io/space-nerds-in-space/#singlemachineinstructions

  3. How to run with a multi-player LAN setup:

    https://smcameron.github.io/space-nerds-in-space/#multiplayerinstructions

If you would like to help work on this project, see CONTRIBUTING.md. There is also a guide to the code here: Hacking Space Nerds In Space. Here is documentation for the Lua scripting API intended to be used for creating "mission scripts".

BUILD INSTRUCTIONS

Here is a long, boring video demonstrating how to install

These instructions are a duplicate of what is found here: https://smcameron.github.io/space-nerds-in-space/#buildinstructions

Step 0: Acquire Hardware and OS

This is a linux game. You will need a computer running linux. A raspberry pi doesn't count, it's not powerful enough. The game is currently developed using Mint 17.3 It is within the realm of possibility that the game could be made to build and work on Mac OSX (it has been done before, but not within the last couple years.) You're on your own if you want to try to run it on Mac.

Step 1: Install Dependencies

Build dependencies

Perform these steps as root:

    apt-get install build-essential;
    apt-get install portaudio19-dev;
    apt-get install libpng-dev;
    apt-get install libvorbis-dev;
    apt-get install libsdl2-dev;
    apt-get install libsdl2-2.0-0;
    apt-get install liblua5.2-dev;
    apt-get install libglew1.5-dev;
    apt-get install libssl-dev;
    apt-get install libttspico-utils; # for text to speech
    apt-get install sox; # for "play" command, used by text to speech

    # (The following are optional)

    apt-get install espeak; # optional alternative to libttspico-utils
    apt-get install alsa-utils; # optional alternative to sox, for "aplay" command
    apt-get install openscad; # optional, only needed if you intend to work on 3D models.
                    # Also, it is recommended to get it from http://www.openscad.org/downloads.html
                    # as the version in the repos tends to be out of date.
    apt-get install git; # Version control, useful if you're hacking on the game
    apt-get install stgit; # Useful for making patches if you're hacking on the game. It's like "quilt" but on top of git.

If you want to try the optional pocketsphinx based local speech recognition, you will want the following packages:

    apt-get install pocketsphinx-utils;
    apt-get install pocketsphinx-lm-en-hub4;
    apt-get install pocketsphinx-lm-en-hub4;
    apt-get install libpocketsphinx1;

The above list may be incomplete, and these are the package names on mint 17.3 / ubuntu, so may be different on RPM based systems.

NOTE: problems building on SuSE Leap 15.1. The following problems/solutions have been conveyed to me regarding SuSE Leap 15.1. This information is not very complete or accurate, but it is the best I have for now. Please feel free to send me improvements to these instructions. See Bug 222.

  • Need to install pkg-config and pkg-config_files.
  • Need to set pkg-config-path environment variable
  • All references to lua 5.2 in the Makefile need to be changed to lua 5.3. Note, we only compiled snis_client (via "make bin/snis_client") which shouldn't need lua at all. I don't know if the differences between lua 5.3 and lua 5.2 are significant enough to break things. I normally use lua 5.2 on my systems. Changes to Lua 5.3 -- at a quick glance I didn't see anything that I think will be problematic.

Step 2: Download the Source Code

The source code is here: https://github.com/smcameron/space-nerds-in-space

NOTE: Do NOT perform these steps as root!

To get the source code, there are three methods:

If you are a registered github user, type (as a non-root user):

        git clone [email protected]:smcameron/space-nerds-in-space.git

If not a registered github user, you can still use git with https. Type (as a non-root user):

        git clone https://github.com/smcameron/space-nerds-in-space.git

Finally, you can just download a snapshot zipfile without using git at all: https://github.com/smcameron/space-nerds-in-space/archive/master.zip

After downloading the zip file, you must unpack the zip file. Type (as a non-root user):

        unzip space-nerds-in-space-master.zip
        cd space-nerds-in-space-master

Step 3: Build the Code

To build the code, make sure you are in the top level directory for the game ("space-nerds-in-space" if you got the source using git, or "space-nerds-in-space-master" if you downloaded the zip file), and type (as a non-root user):

    make

You should see quite a lot of output, like this:

      COMPILE mathutils.c
      COMPILE snis_alloc.c
      COMPILE snis_socket_io.c

    ... many steps omitted here ...

      LINK bin/snis_server
      LINK bin/snis_client
      LINK bin/snis_limited_client
      LINK bin/snis_multiverse

If you have problems building the code, it likely means there is some missing dependency. Double check that you have all the required dependencies installed.

You can also file a bug report if you think you have discovered a problem with the build process, or the instructions here. I believe you will need a github account to file a bug report.

Click here to file a bug report.

Step 4: build openscad models (optional)

Or you can skip to step 5 and download them (recommended). This step will take a long time and requires that you installed OpenSCAD. In general, unless you are working on the models, you can skip this step. (Again, as a non-root user):

      make models

Step 5: Download additional assets

If you skipped step 4 and didn't build the openscad models, they will be downloaded in this step, along with some other things. This step requires an internet connection. If you performed step 4, you may skip this step though it is not recommended, as you will be missing some additional solarsystem assets. As a non-root user:

      make update-assets

Step 6. Run the Game on a single system

(Try this before trying multiplayer)

Type (as a non-root user):

        $ ./snis_launcher

             Welcome to Space Nerds In Space

        ------------------------------------------------------------
        No SNIS processes are currently running.
        ------------------------------------------------------------

           1. Launch SNIS lobby server
              The lobby server allows clients to find servers
              There should be one lobby server total.
           2. Launch SNIS multiverse server
              The multiverse server stores player ship data
              There should be one multiverse server total
           3. Launch SNIS server
              There should be one snis server per solarsystem.
              There should be at least one instance of snis_server.
           4. Launch SNIS client process
              There should be one snis client process per player
              plus one more per ship for the main screen.
           5. Launch limited SNIS client process (no Open GL required).
           6. Stop all SNIS processes
           7. Stop all SNIS clients
           8. Stop all SNIS servers
           9. Check for asset updates
           10. Enter Lobby Host IP addr (currently localhost)
           0. Quit
           Choose [0-10]: _

Choose option 1, then option 2, then option 3, then option 4 (taking defaults for any questions you might be asked.)

More Repositories

1

open-simplex-noise-in-c

Port of Kurt Spencer's java implementation of open simplex noise to C -- Note: This is NOT Ken Perlin's Simplex noise algorithm.
C
139
star
2

gaseous-giganticus

This program procedurally generates gas giant cubemap textures for the game Space Nerds In Space. https://www.patreon.com/smcameron
C
109
star
3

wordwarvi

Word War vi is a retro-styled old school side scrolling shooter reminiscent of Defender or Scramble, with an "Emacs vs. vi" theme. See: http://smcameron.github.io/wordwarvi/
C
104
star
4

opencscad

Little C library to do OpenSCAD metaprogramming. Note, this was written a long time ago when OpenSCAD was less capable than it is now. Many things can be done directly in OpenSCAD now.
C
33
star
5

curly-vortex

Faking computational fluid dynamics a la Bridson-Hourihan-Nordenstam's paper "Curl-Noise for Procedural Fluid Flow" See also: gaseous-giganticus: https://smcameron.github.io/space-nerds-in-space/gaseous-giganticus-slides/slideshow.html#1
Processing
33
star
6

explodomatica

An attempt to automatically generate explosion sounds (for use in video games, for example) by filtering white noise or other sounds in a particularly explosion-ey way.
C
19
star
7

space-nerds-in-space-assets

Obsolete repository for supplemental assets for Space Nerds In Space
8
star
8

cosmic-space-boxinator

Little space skybox generator written in Processing. Not very sophisticated.
Processing
7
star
9

gneutronica

A MIDI drum machine for linux
C
7
star
10

treegrower

Python program that (sort of) simulates a tree growing
Python
6
star
11

dueling-masters-of-space-time

OpenSCAD files and images for producing materials for a board game my family and I invented called Dueling Masters of Space Time
C
6
star
12

stipplebomb

Stipplebomb renders a grayscale image in a stippling technique via an interesting method.
Python
5
star
13

guitar_string_winder

OpenSCAD file for a 3D printable guitar string winder (see also: http://www.thingiverse.com/thing:9211 )
4
star
14

snis-consoles

Code and design for arduino based physical consoles for Space Nerds in Space
OpenSCAD
4
star
15

crosshatcher

Little python program to make cross-hatched effect based on input jpeg image.
Python
4
star
16

reactiondiffusion

Implementation in processing of reaction/diffusion simulation using the Gray-Scott model as described by Karl Sims here: http://www.karlsims.com/rd.html
Processing
4
star
17

be-the-wumpus

You are a wumpus, a blind cave dwelling creature who subsists on a diet of unlucky cave wanderers located by sound alone. Audio only, no visuals. Headphones mandatory.
C
4
star
18

laser-lander

Lunar lander game for openlase based laser projectors
C
4
star
19

liang-barsky-in-c

Just a simple Liang-Barsky line clipping algorithm implemented in C
C
3
star
20

note-driller

Drill musical note names and locations and CAGED chords on guitar fretboard
C
3
star
21

smcamerons-python-adventure

This is just me screwing around learning python
Python
3
star
22

battallica

Old school top-down view 2D real time strategy game for linux/GTK with scalable vector graphics (I abandoned this project early on, so this is only the beginnings of a game, not really even playabe.)
C
3
star
23

mister-nouveau-artboto

Little python program to make pseudo art-nouveau designs
Python
2
star
24

ssgl

Super Simple Game Lobby (note: there is newer version of this code in https://github.com/smcameron/space-nerds-in-space )
C
2
star
25

guilloche-experiments

Experiments with guilloche patterns in the Processing language.
Processing
2
star
26

groovygreebler

groovygreebler is a program to procedurally generate greebles in the form of a greebly normal map texture image
C
2
star
27

mazers-n-lasers

Simple openlase maze game that looks sort of like the old DOS game Wizardry (requires openlase driven laser projector, or at least the openlase laser projector simulator.) Looks like this: https://www.youtube.com/watch?v=cs8PmbhIu2s
C
2
star
28

smcamerons-opengl-learning

Just me messing around with opengl trying to learn
1
star
29

hackrva-badge-boost

Starting point for apps for the HackRVA badge
C
1
star
30

ggvf_to_flowmap

Creates flowmap png files from velocity fields exported from gaseous-giganticus (does not work yet).
C
1
star
31

subharmonic-traumaphone

Just messing around with some audio insanity https://www.youtube.com/watch?v=mdi7SWRfmx8
C
1
star
32

spent-time

What I've been doing with my time.
Makefile
1
star
33

my-diy-synth-stuff

Information I've collected for purposes of building my own diy modular synth
1
star
34

buzzbomb-keyfob

OpenSCAD files for a 3d-printable replacement keyfob for Lotus Elise/Exige
1
star
35

pseudo-erosion

pseudo-erosion generates heightmaps of mountainous terrain (still needs to be debugged though.)
C
1
star
36

startrek-badge

Openscad file for star trek badge
OpenSCAD
1
star
37

cyclekart_steering_wheel

OpenSCAD program for CNC plasma cutting a metal core for a steering wheel for a cyclekart
1
star
38

hpsa-lockless-patches-work-in-progress

Work in progress snapshots of patchsets for lockless hpsa linux kernel driver
1
star
39

maze-game-prototype

Prototype for a little maze game for an embedded system. This project is superseded by https://github.com/smcameron/hackrva-badge-boost
C
1
star