An Open Source Multi-Player Starship Bridge Simulator for Linux
smcameron.github.io
smcameron.github.io
I think it would be massively helpful if the devs would upload a DEB/Flatpak file somewhere instead of having compilation instructions as the primary install method. Sure, if you run a funky Linux like OpenSUSE you need to follow and convert installation instructions, but for Ubuntu (which the guide is targeting) you really don't anymore.
That being said, on Arch (and Arch-derived) systems you can find this in the standard software store under the name snis-git if you've enabled the AUR.
git clone <git-repository>; make; make update-assets
It's literally three commands, assuming you have all the dependencies like I did, all of which is written clearly on the project page. Even if you don't have the dependencies, it's trivial to install them. I don't understand what's so terrible about it.No guarantees on when it might appear as a package, of course, but it doesn't take long to ask (and hopefully not too long to implement, either).
Providing AppImage[0] would be enough for mostly all Linux users.
[0] https://en.wikipedia.org/wiki/AppImage
[1] https://github.com/AppImage/AppImageKit/wiki/Similar-project...
My goal is to build a linux iso image with snis preinstalled.
1. Why do I have to compile the thing myself?
Because packaging on linux is a nightmare. For a long time, Linus Torvalds did not offer linux binaries for his "subsurface" diving program, but did offer them for Windows and Mac. Now there are linux subsurface packages, but Linus doesn't do them himself. If Linus can't be bothered to make linux binaries, you know the situation is messed up. I figure, if the game is good enough, then someone (besides me) will make packages. If that doesn't happen, well, I guess the game isn't good enough. And I'm ok with that.
2. Why don't the devs do this or that?
"The devs" is mostly just me. I do what I feel like, this is my hobby project that I do for fun.
3. How does this compare to Artemis/Empty Epsilon etc.?
It's more properly 3D than Artemis or Empty Epsilon. It has a much nicer Lua API for making mission scripts than Artemis's XML based system. It doesn't have as many mission scripts as Artemis or EE. It feels a little more "millenium falcon" than "Enterprise", mainly due to the turret gun, I suppose. I think the planets, especially the gas giants[1] in SNIS look cooler than anything in Artemis or EE.
4. Why does the game design suck?
It's hard to make a cooperative bridge simulator that's fun at every station all the time. Back in 2012, I heard about Artemis, and thought it was a cool idea, and it seemed like a neat project, so I started working on my own interpretation of the genre. It's hard to know how things will turn out without just trying it. It came out the way it came out (so far). A lot of the fun in this type of game has to come from the participants. With the right participants with the right attitude, it can be pretty fun. Some parties are fun, some are dull. Alcohol sometimes helps.
5. Why doesn't it run on Windows or Mac?
It used to run on Macs, but then support for OpenGL on Macs became problematic. Maybe someone could get it to run on Macs again, but not me. It will run on Windows using the Windows subsystem for linux, however, the graphics will be software emulated, which is generally not good enough. Trying to compile natively on Windows would be a big job. It uses pthreads extensively, and some other various linux-isms here and there. Windows and Mac were not a priority for me because I don't have either of those machines, and I was mainly interested in playing the thing with my friends. Besides, Windows and Mac already have enough games.
6. Can you run the game remotely, or does it have to be on a LAN?
Maybe. I've never seriously tried to run it remotely. I have tried it once or twice, with the server running on a digital ocean server in New York, with my clients running in Virginia, and it worked better than I expected it to. It does have a voice chat feature built in (added after COVID appeared), and that seemed to work. But my test was limited to about 5 minutes of messing around, and only a couple of clients. Each client will require about 100k/s of bandwidth. This can be greatly reduced by reducing the number of objects (asteroids and NPC ships) floating around in the simulation, but I haven't really experimented much with running this thing other than on a LAN.
7. Will it work on a Raspberry Pi 4?
Yes and no. Some stations will work. SCIENCE, COMMS, and ENGINEERING seem to work alright. More graphics intense stations don't work so well (MAIN SCREEN, NAVIGATION, WEAPONS, GAMEMASTER).
I messed around for an hour or so, and managed to get it to compile fully on my older macOS 10.12 system. It seems to mostly work, but snis_client just throws up a black screen. Clicking on certain regions on the bottom left/right corners does emit a sound effect, so it is running. Further investigation is in order! I'll submit patches if I figure out some nice fixes, of course.
I don't like to be contrarian, but, for Debian-based distros specifically: it's not!
Use `dpkg-deb` to create a `deb` file from your executable and upload for distribution. Generate different executables for different target architectures from your compiler toolchain, package them separately as different deb files, and share. It's a one-liner to do this.
I was wondering, is there any interest in implementing a kind of single/two player mode? Something where, for example, you can operate the weapons systems while being able to do simple navigation durring a battle (essentially evasive maneuvers). I can see something like this being handy with limited players. Maybe this is already feature that I haven't discovered yet.
Either way, it's really cool and I've been having fun with it!
It's not the first time such an idea has been floated. If you go onto the "demon" screen (gamemaster screen) and type in "set MAIN_NAV_HYBRID=1", you'll then see both the "main view" and the usual navigation stuff on the navigation screen. That's about as far as I've gone down that road though. The thing is, what makes this game a little bit unusual is the multiplayer cooperative aspect of it. You get a bunch of linux nerds in a room with a projector and a bunch of computers and it's like you're captain of a star ship (hence the name "space nerds in space".) Obviously, it could conceivably be possible to run the whole ship from a single screen by a single person, as demonstrated by countless other space games in which ships are piloted by a single person. But then, it's just another space game just like all the other space games, as you've removed the one thing that makes it kind of different. So, I've kind of resisted that path. If I were to pursue such a path, I'd probably fork the project and make a different game out of it.
BTW, there's a hell of a lot more to package up than just a few executables.
But I'm not really too interested in distributing packages that will just get out of date.
"git pull; make" is easier anyway.
The dev team is pretty small, but from the perspective of having that "Star-trek like experience" they have actually done a pretty good job of really capturing it and making it engaging and fun. Up to 5 people can play cooperatively, but myself and two friends have sunk probably 30-50 hours into the game exploring and progressing (the AI controls the roles that you aren't able to fill). It's also got a pretty active community with games to jump into but it's kind of hard to find other people with equal skill level as you when you are just starting out.
The gameplay is there, but it feels pretty unpolished in terms of bugs and graphical assets and it would really be something special if a AAA studio bought the game and added in some professional-grade assets because it's otherwise a really well-made experience.
Desperate for more in this genre we ended up playing a bunch of Pulsar: Lost Colony. It has a lot more depth (but can be a bit rough around the edges).
You and your friends in charge of a spaceship would probably feel like commanding a PBR in Vietnam, but I don't think a game can capture that Vibe (it's a cheap term but I genuinely think it fits).
Pulsar looks cool though, will check it out.
I don't think so. Game design is a whole art form in itself. Some games suck at it and some games succeed. I haven't played with the linked game, but played with Artemis. That one sucked. The good part of it was being nerdy and role-playing out a fantasy with friends. The bad part was that after the first "battle" engagement we quickly learned that the enemy is very predictable and the game won't provide any challenges to us. Basically yelling "Aye captain, proton torpedo loaded" was fun, rolling up to the next sprite and demolishing it within seconds no matter what "tactic" we employ was not fun. Basically our mistakes didn't matter, and we just had to shoot down everyone who was moving about. There were no commercial traders, everyone comms contacted immediately opened fire on us. Furthermore there was nothing we were protecting other than our own skin. The game forced us to be amnesic murderhobos going nowhere, doing nothing of value.
> You and your friends in charge of a spaceship would probably feel like commanding a PBR in Vietnam
I never commanded a PBR in Vietnam, but I don't think you did either. Probably you have a feeling of what you think it means, maybe action? Daring charges? High speed chases? Maybe inspired by the plot of Apocalypse Now?
In reality it was probably 95% boredom, batting mosquitos and flies away, trying to stay hydrated, and maintaining the bilge pump while doing routine boring work. Punctuated with 5% "damn, we are dead because we just got ambushed" or "damn they are dead because we got the jump on them".
A realistic PBR simulator would suck. One written to follow the feeling or vibe you were thinking when you wrote that sentence? Now that would rock!
Making a bridge simulator is really hard. You are not just balancing one experience but a different one for each crew member. In a real ship if engineering is bored out of their mind 99% of the time that's not a bad thing, in a game that means you just ruined the experience to one of the players. You have to keep all of your players busy, and occupied with meaningful choices, while not pushing them accidentally into task saturation. If you want to make it fun you have to treat each station as a separate game interacting with the others. Which is naturally harder than just making a single game.
Sea of Thieves solves that pretty cleverly, by having fewer players than roles but letting people switch roles as required. There's no point having anyone man the cannons while you're not in combat.
Well, until you find yourself in combat and the cannons won't fire.
Maybe it can if you have a different brain to mine, that's entirely possible, but I just don't think it can work. I hit a point where the only thing I want is more detail, so you need a holodeck in effect.
Basically every battle sequence in the original Star Trek. It's why they had to invent Tribbles.
Yeah. This is why I can spend hundreds of hours with a game like FTL: Faster Than Light. Its 2D and very simple pixel art give way to fantastic gameplay rife with difficult decisions and lasting consequences! It would be really cool to have the gameplay of FTL with immersive, high-end VR but I think such a game would never be made due to the risks of alienating the audience.
1. apt-get install some deps 2. get the source 3. call make a few different ways 4. run the binary
Really not that complicated. If you wanted to, you could make a flatpak, docker container, appimage, snap, deb, rpm, or whatever for your OS in a few minutes and save everyone else the install.
Is that deprecated for some reason these days?
>for Linux
Is there a reason that it cannot run on other Unix/Unix-like systems or even Windows?
Windows should be able to run it with WSL2 with some extra setup. If you can get all the other dependencies in place, macOS might also be able to run it, I don't know how compatible the macOS windowing system is with the Linux ones. Same goes for the *BSDs.
Also, Subnautica. Also also, barotrauma. And piles of submarine combat games.
I don't think people want to play human body repair games, typically. Putting existential woes on hold is usually a nice side effect of games.