# Spacemap
## Brief Explanation
Spacemap is a system that overhauls space exploration by making use of a grid map for spaceships to fly around, allowing exploration in a much more immersive way. Some of you might know of the feature under the "Overmap" name, but it's being renamed here just to showcase its difference, as it will be mainly coded from scratch (with some possible exceptions).
## Why do we need this feature?
Spacemap comes to overhaul the currently very bare-bones space exploration content that exists in the game. By tying it all together under a grid-based map, it makes space exploration much easier to keep track of, as z-levels won't be connected on random sides anymore.
Not only that, but space exploration will now be much more immersive and cooperative, by encouraging players to join forces in order to explore the cosmos together as the crew of their very own spaceship.
As such, the long-term goal is to offer more off-station content to the game, so that players can involve themselves in some different gameplay with different roleplay opportunities than on station. By getting people to man those ships together, we will hopefully see more people get together and roleplay as impromptu groups, allowing newer players to hopefully have an easier time trying to find people to roleplay with.
## Detailed Explanation
### Space Map
The space map will be divided in a grid of dimensions to be determined (currently thinking of something like 20x20 or 32x32), the exact dimensions will be configurable in the code so they'll be rather easy to change on the fly based on what seems to feel good for the game. It will be the main way for spacemap-compatible shuttles/spaceships to move around in space, the more basic types of shuttles (such as the interlink, escape and lavaland shuttles) will keep their current functionality of going between docking ports.
The map will contain a certain amount of points of interests (detailed in the section below). The map will have its points of interest randomly-generated every round, to keep it from getting repetitive.
### Points of Interest
---
The Space map will feature several points of interest, each featuring their unique icon to separate them for the others.
#### Asteroid Fields
Asteroid Fields will be moderately common and will tend to clump up together. Entering an asteroid field at lower speeds can be relatively safe, at the downside of being *significantly* slower, but going in there at normal speeds will expose pilots to the risks of seeing their crafts hit by several asteroids, the damage scaling with the speed the craft is going at. Shields would be **extremely** important for anyone daring to go through these without slowing down.
*Possible addition:* It might also be possible to "land" in an asteroid field, allowing players to go and try to harvest some minerals from the asteroids, though frequent stops might be necessary if they wish to harvest many ores, as generally only one asteroid will generate per stop in an asteroid field (simply for performance reasons).
#### Ruins
Your common run-of-the-mill space ruins, accessible individually in space as undiscovered scanner anomalies. Most of the existing space ruins will end up added as those ruins PoIs, but the specific dimensions which they have to fit in might restrict some of them from being added. More on that in the Virtual Space Levels section.
#### Planets
Each map will spawn with one planetary node, which will be drawn from a list of possible planets at the start of the round and thus be loading in a full z-level of that planet, randomly-generated much like lavaland and the ice moon would be. Some ruins will hopefully be scattered around those planets, but nothing inhabited, allowing players to build outposts or even colonies on these remote planets, which could hopefully lead to some really interesting roleplay situations.
Examples of possible planets: A jungle-covered planet, a mushroom-covered planet, a forest-covered planet, a desert-covered planet, a snow-covered planet, etc. The specifics of which planets will end up implemented are still up in the air, and will largely depend on the existence of fitting sprites and motivation to add content for them.
#### Rifts
The idea behind Rifts is to allow players to explore runtime-instantiated ruins, so that they never truly run out of ruins to explore throughout the round. These would end up being uniquely generated for each spaceship going through them, though there might be some options for other ships to join in later, in the event that something catastrophic happens at that ruin (stranded ship, all the crew is dead, etc.). Likely to be Distress Beacons, some of them automated based on whether all the crew is dead or not, but more on that later in this document.
#### Distress Signals
Distress signals will come from other ships stopping somewhere and activating their distress signal, broadcasting their position to anyone else that might be listening in, allowing them to come over in the same sector of space as them.
#### Stations
That's where you're from, silly.
There may be more unique points of interest in the future, based on interest and desirability of such unique points of interest.
### Spaceships
---
#### Ship Control Computer
Unless specified otherwise in the following subsections, every system will be controlled from the Ship Control Computer, either in their own tab or from the main screen, depending on how it turns out. The Ship Control Computer will always be online, even if power is running low on the ship, to allow players to still keep a modicum of control over what's happening. Certain functions might become unavailable at low power, however.
#### Engine and Thrusters
Each spaceship will have its own set of thrusters, alongside an engine, directly responsible for powering the thrusters using fuel, alongside powering the rest of the ship's systems. The engine will take certain gasses as fuel, with the default being Plasma. A complete list of gasses and their effects on the engine will be written up in the future, it's still very much up for discussion at the moment.
Engines and thrusters will be upgradable using stock parts, most of which will go towards fuel efficiency, available power output and acceleration/decceleration efficiency, allowing the ship to move around with increased maneuverability based on the tier of parts used. The different fuels may also affect these stats, on top of affecting top speeds and power generation.
Fuels will be provided via a canister and a connection port next to the engine (alternatively, a pipe leading into the engine, if people feel particularly creative).
#### Power
Spaceships will use power distributed from the engine and from equipped batteries. The power system will likely work on a unit-based system. Each power unit will correspond to a certain amount of kilowatts of power, and it will be up to the spaceship's pilot to decide how they allocate power. The main systems using unit-based power will be Thrusters, Shields, Scanners, Bluespace Drives and Life Support, as these will require constant power supplies to keep the ship running. The goal is to make engine upgrades and fuel choices impactful in running the ship, and to give a bigger impact to running out of fuel.
Batteries will serve to power actual APCs on the ship to provide basic power capabilities, and will be powerable from the engine's power output much like every other systems described above. In a pinch, they will be able to be redirected partially (or entirely) to power some systems, though their output will be very small compared to a running engine, so they will definitely not be enough to run your ship entirely off of batteries (unless you somehow have a LOT of them).
Certain systems will have a required amount of power units before they start working, while others might be able to start working right away, albeit at lower efficiency, with just one power unit.
*Possible addition:* Solar panels might be added in order to offer a way for ships to passively generate small amounts of power, so that they may reduce their fuel consumption and can sustain the crew with life supports and the likes should the ship run out of fuel. They would also be quite fragile and require a lot of exposed surface in order to be functional, meaning that they may take a lot of the limited space available for spaceships.
#### Scanners
Scanners will allow ships to first get information about points of interest around themselves, as not having any scanners will prevent ships from being able to use the space map and will cause them to become stranded out in space. Upgraded and fully-powered scanners will allow for a bigger range of detection of points of interests, alongside giving a smaller radius that allows ships to identify the type of point of interest they're looking at (as points of interests that aren't planets or asteroids will remain unidentified until scanned or explored, showing up as white question marks (or other sprite) until discovery). Scanning to identify anomalies will require active scanning, which requires a bigger amount of power than the base required power to just run the basic scanning functions.
Based on how the implementation of scanners feels, some side-grades might be made available, such as longer-range scanners (or upgrades that allow for much longer range), with the trade-off of having a much smaller radius for active scanning, or a higher active scanning radius but with a lower passive scanning radius. This will be explored based on how interesting scanners end up being.
#### Bluespace Drives
Bluespace Drives are additional engines that are not necessarily present on every single ship, and require a **large** amount of power units in order to power, but they allow you to teleport to points of interests that you've already mapped before. That is to say, only locations you've previously physically been to with your ship, alongside destinations with navigation gigabeacons and possibly certain destinations when scanned with a specialized and expensive scanner, will be available to jump to using a Bluespace Drive.
For the moment, Bluespace Drives will only cost a lot of power, and that power drain may be proportional to the size of the ship, but this isn't discarding the idea that there may be an additional resource consumed for bluespace jumps.
#### Life Support
Life Support supports life, as the name implies. As such, Life Support is responsible for maintaining a breathable interior at a reasonable temperature for the ship, and without it online, air will quickly become unbreathable for the crew of the ship. It serves to simplify the handling of atmos on ships, so that a dedicated atmospherics portion of the ship is not necessary for it to remain operational for an entire shift.
Life Support is designed to be a very cheap system to run, and as such will only realistically cost one or two power units (possibly dependent on the size of the ship) to run, and if turned off, the temperature on the ship will rapidly drop and air will become unbreathable.
The possibility of having different life support units for different types of breathing (oxygen, nitrogen or plasma) may be explored in the future, and life support will likely run with an attached canister to provide the air supply.
#### Shields
Shields will be general bubble shield covering for the entire ship. Additional shield generators will allow for higher maximum shield integrity and regeneration, but also higher energy cost. Many shield generator options will be available, with varying energy costs and efficiencies.
Shield generators, unless specified otherwise on the generator used, will start working with just one power unit, but that will reduce their maximum integrity, and regeneration rate.
Maximum shield integrity will depend on the size of your ship, meaning that bigger ships may need more shield generators to obtain the same level of shield coverage as smaller ships. However, shield regeneration rate shouldn't scale with ship size, meaning that bigger ships will have the upside to regenerate their shields faster.
All ships are recommended to sport at least one shield generator, as they're essential to avoid a death by a thousand cuts from various hits into asteroids or otherwise.
#### Piloting
Piloting a spaceship is done from the Ship Control Console, and ships need to speed up and slow down in order to reach targets. Ships will provide dynamic estimated travel durations from the main screen, and will adapt their speed, acceleration and decceleration based on the power provided to the engines. **Caution:** *Lowering the engine power after they started deccelerating may cause you to overshoot your target if there's not enough time for the current power of the engines to slow down for the target. Plan accordingly.*
#### Hailing / Holopads
Each ship will be loaded with a holopad right behind/next to the pilot's seat. It will be a special type of holopad, allowing to hail another ship in order to communicate with them. Said holopad will display an hologram facing the pilot's seat, rather than just always being aimed North, so that it looks more normal for the sake of a conversation. The hologram will not allow the other ship to see inside of yours, each ship only sees the hologram of the speaker on the other side, on their own holopad.
#### Distress Beacon
Each ship will be outfitted with a distress beacon. By default, the distress beacon of a ship will not activate automatically, unless all of the crew from the ship is unconscious or dead, whether that be inside or outside of the ship. That tracking will only be in the same region of space, meaning that it will only trigger if the crew in that region of space is dead, even if you have some crew that didn't come over in the trip. The exact implementation is not fully set in stone yet, as it might be an automated system that simply gets updated during flight, recording the human lifesigns aboard of the ship and keeping track of them independantly while stationary, or through an active method of registering for the players (such as a computer to register, or a certain gate to go through), though the initial implementation might be of the former.
Distress beacons will also be able to be triggered by the pilot at any time, though it will be automatically suggested on the Ship Control Computer when the ship is out of fuel or out of engines (as the ship will not be able to move anymore).
Distress signals sent from distress beacons will allow other ships to come and join the ship at its current location in space (likely up to 1-2 ships joining at most), in order to provide assistance/rescue.
Distress beacons will not require any power, as that would otherwise defeat the purpose of a distress beacon.
#### Buying Ships
The main way to acquire a ship will be through purchasing it from a Ship Dock, which will be a separate little space satellite able to accomodate at least four ships at once, to take into account the fact that more that one person or group of people will want to go on ship missions at once. It will be accessible from every station's Arrivals area, via either a quick transit shuttle or some form of teleporter (to be determined based on which is preferred). It's separated from the station in order to ensure that we don't need to make massive modifications to every station in order to account for this new system.
Ships will be quite pricey, in order to motivate players to pool their funds together in order to purchase a ship as a group, to once again encourage cooperation instead of people doing it all on their own. The smallest ships will probably cost between 5,000-10,000 credits, for the very bare minimum, whereas much bigger ships may cost up to 50,000 credits, if not more (balance to be determined).
#### Ship Building
*Future plan:* Ship building will eventually be possible, likely via the arrangement of existing preset pieces and potentially even the addition of fully custom ship parts (last thing to be added). The goal would be to make it as simple and understandable as possible, while minimizing the amount of possible overhead necessary in order to make all the components of a ship work well together.
That being said, extensions within the ship will be possible from the start, so that the crew may install, upgrade replace system modules inside of the ship in order to properly fit their needs.
#### Space Pods
*Future plan:* Space pods are meant to be the new standard for short-range space exploration, essentially being more nimble mechs in space. Whether it be for ship repairs/modifications or for some asteroid mining, or to go assist another spaceship from a distance, these pods will prove to be very helpful to players going outside of their ships, without having to rely on just some flimsy MODsuit to keep them safe.
There would be the possibility to even have some very specialized pods capable of very limited flight into the space map, for instance for things such as short-range rescue missions or to mine an asteroid field without risking damage to the main ship.
With space pods would come a nerf to jetpacks as we know them, mainly because they feel far too overpowered for what they are, allowing players some far-too-fast movement across space with no downside whatsoever (outside of the temporary loss of a backpack slot). They would be slowed down, and likely given some acceleration and decceleration mechanics, just to make them not feel like the absolute best option for space travel, rendering every other choice completely pointless.
## Addressing Concerns
Q: What will this do for existing ghost roles?
A: They will be turned into points of interest, with the same metaprotections against looting as they currently do, likely with some indications that it's not just a run-of-the-mill point of interest, and that there's possibly some sentient lifeforms there.
Q: Will this include antags?
A: Spacemap will not feature any antagonism, as it's inherently intended to be a PvE experience, first and foremost. While I can't say as an absolute that there will never be any, there's currently no plans for it, as we want to generally shift the focus away from traditional antagonism running the show. There's *definitely* still going to be combat in this, it just won't be against other players.
Q: How long will this take?
A: Honestly, I can't give you an estimate, it's a big project, but depending on how things go, it could take only a few weeks, or it could take a few months. It will definitely go through some public tests when getting closer from a playable state (one that's not utterly lacking in content so as to not discourage people from interacting with it), but no estimates as to when that will happen can be given in this document.