UPLINK, updated for modern systems and set in an expandable deadnauts style interface native to head mounted displays and basic virtual reality. Here's a recent example from Technolust: Thought Crimes in a more dystopian setting than I imagine.
Introduction, Setting & Feel
The game starts simply at a scratched wooden desk, with the screens in front and to the sides of you. Looking around the room you can make out the shadowy boundaries, but nothing really stands out besides the desk. If you look all the way behind you, about 20ft away you can see the silhouette of a closed door with a light shining behind it. The light coming through the cracks in the door are one of the few light sources in the room, and you can actually see them when look normally ahead at the monitors.
Starting off, one screen is illuminated - the middle one. It’s a pretty nice monitor, plain but high quality 25” or so OLED display with decent colors. The hands on the keyboard and mouse track your real life keyboard and mouse. The player starts exploring the computer, and suddenly the system is compromised by a virus that takes control and looks really scary for a moment but then it turns out its just a joke from your friend - He found custom virus package software and created a simple virus that totally messed up your unprotected computer. He says if you want him to let you go, you have to break into another system and plant the virus yourself, like he did to you. He tells you he’s just upgraded his whole system with the bitcoin he made from selling access to his starter botnet and he wants you to partner with him. Although he’s teaching you, this is a test. He is your partner through the early part of the game as you both compromise systems to build his botnet but at some point (semi-random) the virus is traced back to him and he goes to jail for in-game years.
You wind up with control of whats left of the botnet (it’s now being propagated to anti-virus schemas so it’s only a shadow of what it once was) and also get his access token that gives you access to the virus, jobs and software tools markets where you can now start your independent career.
With your computer monitor locked to the registration page and his chat window in the corner, he walks you through setting up an account with the decentralized proxy network that was the cheapest, safest way to anonymize his last mile connection and sends you an email with a couple of pieces of software. Upon installing those packages, two other screens that had been previously dark light up on either side (continued in “Basic Interface”)
Although the Operators system and the interface he uses to interact with it are highly upgradable with both specialization and customization in mind, the basic three screen layout is necessary to perform any job. Users who don’t have a HMD use the Tab or \ buttons to move the player viewpoint left or right, changing which screen is being focused on.
You’d have a screen to your left that is your routing grid. The routing grid is a zoomable map or upgradable data granularity and quality able to go from regional to international, it shows your connection routes (they can also be direct for legal business), your botnet as it grows, call traces, network anomalies, and generally anything that should be represented spatially in the game. This basic interface is the connection to the world outside the room.
The window to your right is the local system where you control resource allocation, hardware configuration, processor thread management, storage management, virus crafting and other elements.
The window in front is a text-based command line or GUI interface depending on system and upgrade level but during skill based events it shows the active mini-game.
Some similar interfaces
Technolust: Thought Crime
Things Always Go Wrong, Eventually
You lose the game when they track you down, you’ll still be trying to save yourself when they are at the door. You see the familiar strips of light suddenly blotted out or get more advanced warning thanks to operator installed upgrades. You hear movement from behind you. There’s a moment of silence, then the authorities are banging on the door. It takes them less than 60 seconds to break it down, and the operator can only scramble to activate any countermeasures they have installed that would wipe the evidence of their guilt from their computer. If they succeed, they go in for questioning but if they’ve been through they might wind up with just a fine, or being let go without even being charged. If you get off, you can pick up where you left off but you’ll have lost all your data (unless you’d bought a secondary location and had a backup system there).
Your identity and account with the system will be compromised and all the accounts positively associated with that identity would be unsafe to touch without connecting your new identity to your old one. They would have your location, so unless you move locations it’s more likely you’re going to have your door bashed down again the next time they go looking for an operator fitting your description in your area.
This can happen multiple times and it impacts an overall reputation score the operator has, which can be influenced by doing white-hat operations
A high level operator can be located by non-authority entities if they upset the faction enough (the mob, for instance) and in that event being located can be lethal. Operators who are killed cannot be revived or played as.
An operator who is caught red-handed is briefly tried (the evidence is shown), sentenced and held in prison. Jailed characters have their sentences tick by at a rate of 1 day of real life per year whether or not the game is on or the operator is being played. If you attempt to play a jailed character you find yourself sitting in front of one of several places at prison either reading (player has the ability to select one of several books on the table and flip through the pages), playing solitaire or accessing the internet from a intentionally hobbled computer.
The concept of parole exists, and pops up at the appropriate day for that particular character. If the player chooses to play that day, they can go through a rehabilitation questionnaire and get back a yes/no response. In some cases, characters can be sentenced to house arrest or a number of years without access to a computer, these operate basically the same way and have similar options to jail just in a nicer room (possibly a player owned room, re-purposed and lacking the computer)
After compromising a system, a program can be left behind turning the system into a zombie, able to perform tasks for the operator such as routing and masking connections to other systems, as well as passive activities like mining bitcoin or sending mass spam. Operators who need access to a larger network than they currently have can rent such access from the commodified market, but that leaves another trace that potentially needs to be sterilized.
As the operator progresses, their viruses and trojans improve. Operators can create custom viruses to suit their individual needs. Larger viruses are more likely to be detected, smaller ones have more limited scope. Systems can have anti-virus, which periodically sweeps, detects and cleans any malicious programs basic enough to be detected. More advanced systems have more frequent sweeps and can eventually detect even the most advanced compromise.
Virality can be developed so that compromised systems can compromise other systems they interact with that the operator has not necessarily compromised. Over time, an operator should develop a substantial distributed network of low-medium level systems that form the backbone of his operation. It should be possible to offload the entire routing from system to system decision-making process to the botnet at a certain point.
In this world, viruses are modularized, packaged and available on the dark market. Operators can create multiple custom packages to suit their specific needs, but modularized virus data cannot be copied freely. Each custom instance of a virus requires a corresponding block be moved from the inventory equivilent to the virus assembly suite. Once it is assembled, it is compressed into a packaged and replicable format. That virus can now be started on as many threads as the operator has available to dedicate to the task.
Once the operator no longer needs to use it, it can be broken down into its constituent feature blocks.
The minimum viable virus is
an infection package + a payload package
Other types of modules include
- Delivery Method
- Data Ransom
- Strong Encryption
- Signal Routing
Infection Packages can take many forms, and can be used with or without a delivery method. Without a delivery method, the program must be manually planted on a compromised system. Use of more advanced delivery method modules can automate the infection process but not without risk both of failure and detection.
The Property Ladder
Although the player starts in a dark and non-descript room, once they’ve acquired some capital one of the upgrade paths that can be followed is the international property market, and locations around the world can be found for various prices on the legal market. Occasional deals and special purpose locations can be found through information discovered from systems compromised by operator viruses sniffing for private data.
The player has the ability to move the operator to different locations as they choose (and budget for airfare allowing) and to maintain backups, safes and other redundant features in each of these locations. One location being compromised does not necessarily mean all are, taking both identity and jurisdiction into account.
Certain locations can have specific characteristics, a particularly remote and scenic location might have slow or periodically unreliable internet connectivity for example which, corresponding with the weather visible through the window behind the desk might lead to a problem at the wrong moment. Locations can be upgraded in various ways to fix problems or improve facilities.
An operator might enjoy plotting their next job and crafting the viruses at the cabin, but to pull the actual job from the secure, hardwired rented bunker in north korea.
Equipment can be upgraded in many ways, the operators machine can be made faster and able to perform more tasks at the same time, or fewer tasks more powerfully depending on the upgrade path. Storage can be upgraded both in terms of capacity and read/write speed. Connectivity can be upgraded, power can improve in capacity, quality (less chance of a random crash) and various sizes of uninterruptable power supply to deal with periodic power outages (frequency varies by contextual location)
Achieving the Objective
The easiest way to get into a system is to have the right credentials to do it. These can be acquired through legitimate means. Doing work for a company gets you legitimate access for whatever the identity is at whatever level you need access too, so sometimes you don’t need to break down the front door so much as pick the lock of the bosses office once everyone has left for the day.
To compromise a system, an operator must first connect to it, usually through an obfuscated net of connections via their botnet. They enter a known and correct password that achieves the level of access desired by the operator, or use a tool such as a password cracker to derive it. A tool such as a password cracker being used against a target system can set off alarms and countermeasures depending on the complexity of the system being attacked and the operator attacking it.
When under attack, systems attempt to track back the attack to its location. This can be detected by the operators system and they are aware in an upgradable form that would start with a seldom updated, quasi-accurate countdown and advance to visual tracking on the map and an accurate countdown. Advanced systems should be able to detect the tracking some brief amount of time BEFORE it begins and provide warning.
Using upgradeable network analysis tools, these alarms and countermeasures can be detected and de-activated or bypassed given the right software tools by the operator. This is the equivalent of a prepared and experienced thief silently jimmying a roof-top access hatch to gain access after scouting the target for weaknesses, while a less experienced thief might just break the front doors window with a crow-bar to let himself in, setting off the alarms but still potentially getting what they came for if they can quickly locate it, grab it and flee the area. Once an alarm sounds, the clock is ticking.
If the system can be infiltrated without detection, there is no ticking clock so the operator can take their time and look around. Some systems have multiple levels of secure entry each potentially with its own alarms and countermeasures, each presenting an opportunity to start that ticking clock. It is also possible for a player to be attempting an infiltration during a period of time when the system is actively scanning itself, or being reset by its operator on its normal schedule. Through player action both on the virus side or HUMINT side these schedules can be learned so engaging with the system during that time can be avoided.
Operators have access to specific, hard-action tools that let them run programs, located on their own storage system, powered by their own computer system and managed on that systems threads. These tools are generally single-purpose in nature, although more expensive combination tools exist. When used to conduct operations on your own system, even when currently accessing a networked system, tools do not trigger alarms or countermeasures.
When a tool is working on an operators system, but the tools action involves networked operations with the target system (like a password cracker which attempts to derive the password by attempting every combination of words in the dictionary and so makes millions of attempts), it can trigger alarms and countermeasures which starts the signal route trace.
So tools live entirely on one of the operators systems and uses the operators resources to power it. Although it lives on the operators hardware, tools can be used on remote systems in a variety of capacities and if they are used on remote systems they can be detected. If they’re used only on local systems, remote systems cannot detect them.
A virus by contrast exists on the operators system as a deliverable package that can be placed (or directed to attack/infiltrate) on a compromised system. Once placed, it can deploy and start its particular mission immediately, or it can have a dormancy period. Viruses can be detected the same as infiltration; via their actions, but they have an easier time getting around most common alarm systems since they do not need to compromise front-end access, being actually located on and executing with the resources of the unaware target.
If through the course of normal anti-virus or administration activities, the virus is discovered it will be destroyed. Viruses can be upgraded to make this process more difficult, but it’s an arms race that can’t be won against the most vigilant or paranoid systems.
The operator can find their own systems the target of malicious viruses, either by having their own system covertly compromised or through normal game communication channels. Viruses found can be analyzed with the same tools as the operator uses to create them. If the package is found before it deploys (during its incubation period) the constituent components can be recovered from it. If it has already deployed, it can still be examined to discover the various parts but it cannot be turned into components.
Through the course of the players journeys as an operator, they will have the ability to leave their virtual screens behind and operate in a virtual environment, within their virtual environment for certain types of minigames and actions.
Notably, adding a HMD (head mounted display and hand/arm tracking via LEAP motion or other equivilent technology to their system means that they no longer neccesarily need to use the mouse, instead just looking, gesturing or grabbing with their hands. They no longer need to worry about spatial organization of screens, and in fact can have as many screens open as they can fit in the circle of their vision. Once in VR, the player can arrange and customize the operators interface with a new set of tools and many fewer limitations.
Within the VR environment, all available sense can come into play with ambient environmental color or spatial sound indicating information like system awareness, trace status, alert status, etc.
For example, a pulse that becomes distant footsteps (indicating the tracker) might flash or beep at a varying rate indicating proximity.
Crafting Purpose-Specific Virii
Different features, effects and functions within the FPH system can be combined by operators to craft custom nearly anything. A standard cracker tool might be just the “Cracker” function with a specific power attribute, which acts as a multiple of the power assigned to its operation by the users system. More powerful crackers apply greater multipliers to the users systems.
That same cracker function, with whatever its level is might be packaged with a “report back” module. With those two elements combined, an operator could connect to a server via his botnet, or a rented botnet and direct it to execute this file which would crack the password if able before the system locks down, AND send it back to the specified identity.
If the system completes the trace, they only find the botnet although it’s possible if the botnets computer is compromised, its location raided and the system siezed than if the cracker directs the password to your real identity, or one that can be directly associated with you it’s trouble.
This tool could then be used to mass-farm passwords from less secure systems.
But how do you clean up the trail? Another module could be added to the piece of software before deployment, which uses a different identity each time, or that self-destructs after it’s delivered the information.
This could be built into a standard package propagated through your botnet, all of these individual functions are available as modules that are descriptive of the will of the operator rather than how specifically it is being accomplished. Gameplay and balance are the goals here, not realism.
In addition to features and functions, both visual and audible effects can added to the custom VR interface.
No Free Lunch
The larger an individual program, the more likely it is to be detected, the more expensive it is in terms of modules used in its creation and the more resources it takes to operate. Using larger programs high degrees of serial automation can be achieved with the most advanced designs allowing for branching autonomous decision-making based on how the system they’re interacting with responds.
Tokenized Virii and the Free Market
Individual programs are unique, and while recipes can be followed to create an identical sequence once a user is done with a program but feel it would be valuable to someone else, they could sell it to the market and lose access to its constituent componants.
Using a low cost tokenization solution like Dogeparty and a third party token-controlled-access service it is possible to create a unique token for each basic feature, execution method, computer hardware upgrade, etc. And issue/sell/redeem them via a fleet of automated vending machines.
This would allow our economy in the game to trade against all cryptocurrencies on the open market, and to be valuable as a commodity tradable and highly useful inside our game.
If we make the standard unit of payment within the game a compatible cryptocurrency, we can have people using the same market and interface to buy their componants, features, programs and viruses from other players whether in in-game money or using some other form of value, we can even have them making real transactions on the network.
This would also allow our in-game money to float against all other cryptocurrencies as well. Operators (and the players controlling them) would recieve valuable cryptocurrency as payment for their work and would share a common job market with the whole world.
A World of Independent Agents
Although players wouldn’t be able to compromise other operator systems (this version is not multiplayer) the live element of supply and demand, the meritocratic distribution of the in-game token based on mission completion and other participatory factors will make the world very alive. Giving players the ability to create their own jobs to farm out the more mundane work they don’t want to do to lower level players and pay them some of their in-game (but real-world) tokens solves the problem of needing to balance the amount of jobs available, player boredom and largesse will balance it for us.
Individual programs once assembled are unique, and while recipes can be followed to create an identical sequence or features and custom logic, they could sell it to the market and when someone buys it, they lose access to its constituent components as well as the program itself in exchange for whatever it was listed for. To do this, the program must be tokenized - An operator can have this service performed for them for an in-game cost, and a unique token is created and given to them, which can then be listed on the market. If anyone else ever creates that exact same program and wants to sell it, they repeat the process, pay the fee and a second token of that same kind is issued and given to this new person, who can then continue to use it or sell it on the market.
It might be viable for an advanced player to spend several hours buying up bulk materials and then creating several unique copies of the same program they had created for the purpose of selling them on the market to less sophisticated players with money to burn. Instead of being a worthless DLC, those players who buy the program from the creator can use it until it’s not valuable to them, and then choose to sell it onto the market.
In theory a mature market would have many many options in circulation and in fact the basic, popular ones would become very cheap quite quickly until the market commodity price is found.
Creating Within ScriptKitty
The core of anything created in this language is an execution method, there are two basic classes describing the involvement of the operator in initiation although each has multiple levels of complexity available based on the desired features, and modules available to the operator
Initiated by the operator who is actively connected
Initiated by a set or range of pre-determined variables
When creating software in FPH, individual features and modules fit together like jigsaw puzzle pieces to form viable shapes. Individual pieces of the puzzle have optional logic that can or must be associated with them in order to function. The chain of logic is represented by a line which connects linearly (following the logic) from module to module. Specific lines connecting individual modules in the chain are colored differently to reflect the type of logic at work.
You might have
- Green - Analysis
- Blue - Communications
- Red - Countermeasures
- Orange - Alerts
- Yellow - Active Tool
- Purple - Passive Tool
More advanced modules can have several types of logic slots, so a decision-making module might have three - Green, Red and Orange. This module would be connected to a module providing analysis earlier in the process, then connecting to both an alert module and a countermeasure module. A simple, self aware program might detect an anti-virus sweep, fire an alarm to the rest of the program and activate countermeasures if an applicable one is connected.
The minimum viable shape for a program is an execution method and payload. The concept of payload is totally generic, it is the literal contents of the either invoked or self-executing program.
There will be an infinite combination of programs and logic. It is possible to create programs which do not function as you wish them to, or that have bugs in them as well as infrequent random malfunctions which are present in all simulations throughout the game. The only non-viable shapes for a program lacks an initial payload.
The complexity of a tool can be determined by its rating, which is determined by the amount of features and pathways within a system.
No automation, just one action or multiple actions which can be invoked individually at the direction of the operator.
Macro level automation, triggering the tool causes a pre-determined cascade of events which execute one after another either simultaneously or following the completion of the prior tools action, depending on operator imbued logic
Programs which contain modules that can detect the systems response to their activities and understand, report or respond their situation as a result.
These tools are able to have branching paths of operation logic they can follow based on the reaction and state of the system they are operating within. An autonomous program might have an anti-virus countermeasure module that shuts off all processes when a sweep is in progress or anticipated, with the executable programmed to re-activate in one game-day, at which point it continues its work. Autonomous programs can be very large and expensive to create because of the redundancy built into them.
This Doesn't Exist, But it Could
If you've just read the entire walkthrough of the Script Kitty concept and have any thoughts, please comment.
If you're a developer or investor interested in helping bring Script Kitty to life as described, please contact me at [email protected]
Notes on other related titles
Looks interesting for its gameplay approach, very basic and requires no knowledge yet uses a very cmd-line interface
A very in-depth and yet not unplayable, amateur, multiplayer enabled hacker game. It was designed in flash and is sadly no longer operational as it required central servers.
It does not have a concept of viruses, botnets, but has a very developed hacking/security model and many tools with unique mini games which speed up the process.
Fun stuff real hackers do