April 25th 2015
To date, Star Citizen’s Arena Commander module has put much of the focus on pure action: the thrill of deep space dogfighting. While space battles are a core element of the Star Citizen experience, they are the beginning and not the end of creating a vast, interactive world. And one of the next, most important steps is developing a cargo system that allows players to more fully interact with their environment than any previous space game.
On first consideration, making cargo sexy might seem like a difficult challenge. The excitement of combat is self-explanatory, while shipping goods from star to star is a different kind of challenge, potentially more of a slow burn. The average pilot would be forgiven for having more interest in a dogfighting module than a cargo demo… but the reality is, cargo is deeply important to expanding Star Citizen’s gameplay. Whether you’re using it to customize your environment, to build a shipping empire or to run black market goods from Advocacy patrols, a comprehensive cargo system is going to enable Star Citizen to build a real world full of varied gameplay opportunities.
How do we do it? In the past, space games have solved this problem by separating the player from what was being transported. Shipping a load of tungsten in Privateer or hydrocarbons in Freelancer meant selecting an icon in a menu and being told your ship had been loaded with that particular good. For Star Citizen, we wanted to do more than just give you a cargo manifest; it stood to reason that in our First Person Universe, you would need to be able to fully interact with whatever you happen to be shipping! With this in mind, we’ve set out to create a system that allows for maximum interaction directly with in-game objects.
The Star Citizen design team has determined that there are five essential ‘use cases’ for cargo objects in the game environment. Each of these cases must be developed in the game to give you full control over your cargo and items. Uses cases are as follows:
All of the above use cases are built atop one requirement: the ability for the player to manipulate individual component items at will. To enable this biggest technical hurdle, we have created a system called Grabby Hands. We’ve put together four demos to show you exactly how Grabby Hands works and what it lets you do!
Looking at an item and then pressing F will pick it up. The appropriate animation will play and the item will be attached to the players’ hand. The item is now held! Looking down at the item again and press F will put it down. A raycast at shoulder height will determine where the item will be put, and the appropriate animation will play to put it there. While holding an item, look down at it and press and hold F will enter precision placement mode. In this mode, an AR indicator allows the player to choose the location where the item will be put. While in precision placement mode, clicking and dragging will allow the player to rotate the object around pitch and yaw. Make no mistake, this is more than just a system for picking up and putting down objects. With this process in place, we don’t need to create a unique animation for every single object in the universe; the game adapts to interact with what you’re doing, the way you want!
Two-handed objects are reoriented automatically when picked up to simplify the attachment points needed for these animations. Beyond this exception, two-handed objects work exactly like one-handed ones do.
Here’s where Star Citizen’s physics engine really shines! By interacting with items, you can manipulate them in a realistic manner that takes into account your environment (and its respective gravity and other conditions.) What that means in this case is that you can use Grabby Hands to manually flip a coin! Moving up while releasing the coin will cause it to flip, at which point it can be caught again. Holding still or moving down while releasing will simply drop the coin. Multiple coins can be picked up and flipped simultaneously, causing it to rain coins and make a mess. Groups of coins set down together tend to be much more organized. But this isn’t just about coins: it’s about creating a system that gives players more control over their universe. It will create new ways for players to express themselves through their interactions in the ‘verse!
When holding a useable item, look down at it and double tap [F] to use the item. While an item is in use, double tap [F] to unused the item and return it to the cargo state. This means that any personal item you might use (such as a gun, or a flashlight) can also be stored as cargo.
Every container has two key statistics: Standard Cargo Units (SCU) and Number of Ports. These define everything the game needs to know about loading a container onto a pallet or attaching it to a ship. SCU defines the exterior dimensions of the container in cubic meter increments, while the number of ports defines how many discrete slots into which items can be placed are available. Ports are 0.25m spaces.
In this example, the container is a 2SCU, 63Port container (a 2.5m x 1.25m x 1.25m container with a 2.25m x 1.0m x 1.0m available interior space.) Items are also rated in the number of Ports they occupy when placed into a crate: a pistol is 1p, a rifle is 2p, a missile is 6p and so on. When an item is released inside the containment field of a crate, the item latches onto the nearest port and animates into place.
As noted above, pallets are used to move more cargo in fewer trips. Loading fifty individual containers of ore would be no fun (and ultimately wouldn’t be realistic) and so a system must be put into place to allow bulk loading of same cargo. The player will interact with very large containers and pallets, often so large that they will obscure visibility. To counter this issue, the cargo jack includes a UI interface depicting the local area to the player, much like the landing assist UI recently premiered in Arena Commander. This ultimately allows for precise and intentional manipulation of cargo.
The SCU value introduced earlier defines the exterior dimensions of containers, which is important to note because it allows the number of SCU a ship is rated for to actually correlate with the SCU value of all containers which can be placed inside that particular cargo bay. Containers are placed in a locking grid of sorts, which marks out (floor to ceiling) where cargo can be stored onboard a ship.
The technology that drives these locking plates only require power to change state, and will secure even unboxed cargo as long as it is fully within the locking area. This means that only cargo containers can stack while disallowing infinite bridges, and that turning off the power plant won’t shred the ship with instant cargo shrapnel. Active locking plates are lit gold, although the light will change to red if there is something wrong: the cargo bay is too damaged to maintain lock, any of the items atop the plate cannot be secured and so on.
Finally, as included in the final use case players must be able to interact with their cargo from the ship’s onboard manifest. Using the manifest, you can activate and deactivate locking plates (to jettison cargo), set orders for arranging cargo and see the effect that all of your items are having on your center of mass (unlike previous games, your ships’ performance will be tied to the mass and volume of what you decide to load aboard her!) We are in the process of developing the UI for this system today, and are proud to present a mockup of the current version.