I’ve been turning this game concept idea over in my head for maybe year and a half, and now that SCP-CB v1.0 is out, I’ve started putting more focus on it. Some how the fans of SCP-CB might be disappointed to hear that it won’t be a horror game (although I’m confident it’ll still provide some tense moments to get your heart pounding), and even more disappointed over the fact that it will be a 2D game. I hope you will be able to enjoy it nevertheless, even if though it will be something very different from SCP-CB.
Anyway, the working title for the game is Subsurface. It takes place a few hundred years in the future, where a bunch of human colonies have been established deep inside the icy crust of Jupiter’s moon Europa (due to the deadly amounts of radiation on the surface). The vast subsurface ocean under the crust is used as a transport route between the colonies and a source of natural resources. There are also a number of underwater research facilities / defence outposts established near some “transportation shafts” leading from the colonies down into the ocean, and the game will be taking place in one of these.
In a nutshell, the player’s job is to keep the facility operational, while carrying out various tasks to earn funds for buying supplies and hiring new crew members. The enormous pressure outside the facility is not the only threat, since (not so surprisingly) the ocean is full of different kinds of life forms, from harmless little creatures to colossal Lovecraftian monstrosities. Replacement parts and other supplies are also extremely hard to come by in Europa, so the facility is filled to the brim with makeshift equipment and future equivalents of duct tape repairs, and things are guaranteed to break every now and then (powering down the lights in some part of the facility if the player is lucky, or blowing up a 10-foot gap in the pressure hull of the reactor room if not).
The player can control one of the crew members at a time and switch between them at will. The characters not controlled by the player will be controlled by the game’s AI.
The gameplay is split into days or “shifts” which last about 10 to 20 minutes, during which a random event (or several) will take place. It can be a distress signal coming from nearby the facility, a gigantic sea monster appearing, a crustacean swimming into and breaking the cooling pumps of the nuclear reactor powering the facility, something breaking through a window in the medical bay and disappearing into the ventilation system or a swarm of strange, leech-like creatures attaching themselves to a window in the control room, somehow starting to gnaw their way through the glass. In addition to the scripted events, there’s a number of other things that could go wrong: if the player tries to weld a leak using a weapons expert who doesn’t have the skills to operate a high-pressure welding kit (because all the qualified personnel died during the last round for example), it might cause further deaths and damage to the facility, or if the player is putting too much stress on the nuclear reactor, it might lead to a meltdown.
When the shift ends (after the set time period or when the player has taken care of the random event or other problems that arose), the player will receive an amount of money depending on his success during the shift, which can be used to buy new equipment, supplies and hire new crew members for the next round. If the player is unfortunate enough to lose the entire crew, it’s game over.
TL;DR: sort of like Space Station 13 with a hint of Dwarf Fortress, in the setting of Pressure.
No Blitz3D anymore! Now I’m using C# and Monogame. The physics of the game are handled by Farseer, and the possible multiplayer features by Lidgren. The game won’t be a Windows exclusive like SCP-CB, since Monogame also supports Mac and Linux.
This is still a bit of a question mark, but it’s possible that there will be an online multiplayer mode. I haven’t got much experience in network programming, so I’ll definitely need help further down the line to make it happen, but I’ve actually already written a functional server/client-system for the game using Lidgren, which is capable of syncing the characters between clients. I’ll focus on making the single player mode playable before delving deeper into the multiplayer mode, but I’m also trying to design the code in a way that would make multiplayer integration as easy as possible in the future.
Even though I’m not planning on releasing the entire source code like I did with SCP-CB, I will be putting a lot of effort into making this as moddable as possible. All the graphics and sounds will be unpacked, so they can easily be edited by anyone. I’m also trying to avoid hard-coding any content as much as possible: a large part of the game logic and content will be in easily editable Lua scripts and XML files.
Will it be free?
This won’t be a freeware game, but I will keep releasing alpha- and beta-versions along the road for free just like I did with my previous games. I can’t give any accurate estimates to the possible price tag of the finished game, but if everything goes as planned and I don’t have to cut down on the admittedly ambitious feature list, I think something around 5 dollars might be a reasonable price.
As to what state the game is in now: So far I’ve mostly just been thinking through the design details of the game and how I’ll go about implementing them; Couple of years of struggling with the code of SCP-CB, a house of cards built on ad-hoc-spaghetti, has shown me the importance of planning beforehand, which is why this time I’ve put some serious effort into thinking through the details and scope of the project before starting to actually make it.
The design and planning part is starting to be in a pretty good shape now though and I’ve gradually started putting those plans into action. Here are some of the things that I’ve implemented so far:
- the “backbone code” for handling things like different screens, player input and in-game entities (physics and rendering)
- a (still unfinished) procedural animation system which takes care of animating the characters (which are ragdolls run by Farseer)
- simple water physics, which simulate pressure, waves, water flowing from room to another and drag+buoyancy exerted on the game objects (like characters and items)
- breakable walls
- the base classes for “dynamic map elements” which can be interacted with, such as ladders, doors, control panels and levers (although the only actual elements that I’ve implemented so far are ladders and doors)
- a simple map editor
- a really basic server/client system which I mentioned earlier
And here’s what it looks like now with some placeholder graphics (the second picture is a quick mockup of how it might look like with some lighting effects):