Somnium13 Make SS13 Great Again! Somnium13 is a quest to transcompile Space Station 13 to C# and build a new engine around it.

Websockets 'n More

3/6/2016

I return! The last two weeks have been crazy, and I only managed to get about a week worth of work done.

First, I managed to fix some issues with map loading and dramatically improved the devmap output. Here's an image of the center of the station. The main issues left are tables and lattices, which are displayed in an odd way. The devmap also won't show icons created or modified at runtime, and there isn't any code anywhere to deal with them yet.

I got some basic networking set up. It uses websockets. The code is kind-of ugly right now, but it's a starting point.

The client exists now. The only thing that works now is the login page. The login system clearly needs more than just a username, but I'd rather it be more elegant and secure that having to provide a password for each server you play on. Eventually I'd either like to go with OpenID (Sign in through Steam/Twitter/Google) or have some kind of master server that authenticates clients. Once a client logs in, they get a shitty mockup of game UI.

Goonstation got leaked and is getting an official release. If this had happened earlier I would have totally considered using it as a base, but after the /vg/ incident I think it's best to stick with /tg/ for good.

This next week I hope to resolve the rest of the errors with map loading and subsystem initialization, then I'll hopefully make the game able to deal with connecting clients.

Additional Progress

2/21/16

It's me again. I'm the dumb asshole trying to translate SS13 to C#. I've made a decent amount of progress this week, so I figured I'd share.

About two weeks ago I decided to ask Reddit what codebase to use as a base. We came to a general consensus that /vg/station would be a good idea. I now thoroughly regret this. A lot of terrible things happened, but the short version is that I'm going to stick with /tg/station. This isn't meant as some kind of insult to the authors of Bay or /vg/, it just really didn't work for this particular insane project.

The plan is to make the client a webclient, so the next logical step was to get DMIs rendering in the web browser. This is pretty simple on a basic level, they're just PNGs. I wrote a fun little library to deal with icon states and animations, and BLAMO:

Yeah, this is a gif. I didn't want to bother with moving all of the content and code onto this site. Deal with it.

Next I re-wrote the devmap to use these icons! The devmap is a thing I made to spit out the map into the browser, to see just how fucking broken it is. It originally represented each object with a different colored box. Now it's a bit nicer!

The colored squares represent errors:

Green are still loading (This is really odd and really shouldn't be happening here!).

Orange represent icons with missing states. This is either a failure on my part to deal with default states (SS13 DEVS: Is this a thing???) or is the result of these objects failing to initialize correctly.

Red represents icons that totally failed to load, as in "the file doesn't exist". I didn't find any of these, which is a good sign.

For a larger sample of butchered Space Station, see here!

The plan for this next week is to cut down on the huge slew of exceptions and warnings that get spat out when the game initializes. The map badly needs to load faster. 1:30 is ridiculous. I'll hopefully finally start working on the client as well.

I'll hopefully start doing more regular devblogs here. Maybe next week I'll have a less fucked map and some kind of login screen.

Hello, world!

1/25/16

I've made this website to serve as a better hub for information about the project. This will serve as a sort of development blog. I'm not so good at the web design. I'm too busy getting shit done to care that I'm using the default Bootstrap style.