Take a look at the following screenshot:
This is an aerial view of a city from an early development build of Spycursion. (In other words, the details may change, but this is the general aesthetic.) It represents one city, out of several cities that will make up the urban game world of Spycursion. We plan to scale the number of these cities based on player base and story needs, but will probably start with five or six.
Each city will vary a bit in size and what it contains; we aren’t ready to show the building interiors yet, but our goal is that every building you see will be explorable — nothing that’s just “filler.” Among some of the purposes these buildings might serve in the game:
- Internet cafe
- Electronics store
- Corporate office
- Police station
- Your apartment!
- Others we’d like to keep secret… for now.
Your game character will roam this world, making mayhem, stealing secrets, avoiding the law… and remember, this is only Spycursion’s “physical” world. We’ve barely gotten started on showing you the digital one!
In this post we’re going to discuss one of Spycursion’s core features, an in-game programming language called Slang. By “core” I don’t necessarily mean a feature that players will interact with all the time (though I’m sure some will), but a feature that is literally a core part of the game. Spycursion contains thousands of different electronic devices — servers, laptops, phones, etc. — and, to some extent, all of them run on Slang. In fact, the Slang language was the very first code we wrote, which should give you an idea of how central it is to the game.
From a language design perspective, Slang has two main goals: Ease of use/learning, and the ability to obfuscate. The first goal is self-explanatory — it should be beginner-friendly. Here’s a simple program:
name = sys.args[ 0 ] sys.print( 'Hello, ' name '!' )
As you might be able to guess, this program simply takes one argument, a name, and prints out a hello message. You might run this on the command line with “./hello Scott” and the program would print “Hello, Scott!” The code could even be shortened to one line instead of two:
sys.print( 'Hello, ' sys.args[ 0 ] '!' )
We hope that Slang’s syntax is easy to pick up, even for players who have never written code before. But experienced programmers will want to do a lot more than say hello to themselves, which brings us to Slang’s second design goal…
coin_flip() = sys.rand( 1 ) fun heads_or_tails ( ) if ( coin_flip() == 0 ) sys.print( 'Heads' ) else sys.print( 'Tails' ) fi nuf i = 0 while ( i < 10 ) heads_or_tails() i = i + 1 done
You might think that the above code snippet is the equivalent of flipping a coin ten times… but you would be wrong! Its practical result is to flip a coin once and print that same result ten times. That’s because in this example
coin_flip() is a variable, not a function.
There are plenty more
nasty clever obfuscation tricks you can do with Slang. Virtually any string can be used as a symbol name, and symbols are delimited only by white space. Using the above example again, this means that
i<10 would have a very different meaning from
i < 10.
Why does this obfuscation matter? Remember that Spycursion is meant to be a game of… well, spies. Spies sometimes use Trojan horses — gifts, ostensibly well-meant, with a hidden nefarious purpose. And what better Trojan horse, in the digital age, than some piece of open-source software? “It’s safe, I promise! And you have the source, so you can even review the code yourself!”
Slang is still evolving, and will likely continue to evolve even after Spycursion is released. But for now, we’d love to have your feedback. How are we doing on our design goals of ease-of-learning and obfuscation? Beginners: Did this post make sense to you? Are you excited to learn more about Slang and/or Spycursion? Non-beginners: What would you like to see from Slang? Please get in touch!
What is the internet? It’s billions of devices, all running their own operating system and software, networked together, “speakng” to one another. This networking works because the devices all “speak” in common protocols, some of which you’ve probably heard of: IP, TCP, HTTP, etc.
Spycursion’s own version of the internet is similar. It contains thousands of different electronic devices — servers, laptops, phones, etc. All of these devices are connected, and most of them can be located and/or hacked (with varying levels of difficulty) by players.
Notice the word “located” above. Just like in the real world, Spycursion’s internet is a big place. If you’re on a mission to steal data from someone’s laptop, you could go about that in two ways: You could access it physically, or you could hack it remotely. The latter method is obviously safer, but you would need to know its IP address (its “home” on the internet), which you wouldn’t necessarily have at first. That’s where tagging comes in — identifying the device, out in the game world, and getting its IP address, so that you can hack it remotely from the safety of your own apartment. Very spy-like indeed.
We’ll explain more about the hacking and security mechanics in a future post, but in a nutshell, what you’ll need to do to hack a target over the internet is scan it for vulnerabilities — gather information on what software is running on it — and then deploy exploits against the vulnerable software. You can create these exploits yourself, using the in-game programming language called Slang (another future blog post), or you can purchase them, find them in a secret location, or steal them from an unsuspecting victim.
The miniature internet in Spycursion has a lot of similarities with that of the real world — and being a video game, of course, you are free to wreak mayhem all over it without consequence. Your game character, however, may end up making a lot of enemies…
Hi, I’m Scott.
I’m the founder of (defun games ()), lead developer on Spycursion, and an all-around nice guy (sometimes). I’m also the guy who wrote those last two blog posts… and then seemingly disappeared for more than six months. I’d like to apologize to our loyal fans — all three of them — for that long absence; a lot has happened since our last update! But before I get to that, let’s start at the beginning.
It’s early in the morning on some idle Tuesday in June of 2017, and I can’t sleep. Haven’t slept all night, in fact, not for lack of trying — because my brain has ideas, dadgum it, and this time it is steadfastly refusing to let them go. The ideas swirling around concern a video game, the likes of which I’ve never seen, but would love to play. This imaginary game centers around hacking, but it’s the real kind, not the Hollywood kind. And it’s multiplayer, so players can learn from and play with and betray each other. And there are corporations, and an economic system, and a programming language, and blackmailing of politicians, and, and, and…
And the ideas just keep coming, until my then-girlfriend/now-wife wakes up so I can blather to her about all of this. She, in her fresh-eyed wisdom, tells me to take notes. Those notes, the child of sleep deprivation and a night full of eureka moments, would later morph into the game design document for Spycursion.
Having been an IT guy in a past life, I started Spycursion’s development with the pieces that came most naturally to me, meaning the backend… or, in other words, the logical parts that nobody outside of other game developers will see and are completely useless for proving that a game actually exists. (So if you were ever confused about the lack of screenshots, you now have an explanation.) In hindsight, this was a mistake, but we’ve been trying to fix it. Here are a few recent screenshots, for the curious:
Truth be told, the journey to this point hasn’t been easy. Since November, teammates have come and gone, we made multiple significant code rewrites, we redesigned our website, and, oh yeah, I got married. (It turns out that planning a wedding is just a little bit of a distraction from writing code.) And yet, in the judgment of this possibly slightly insane author, it’s all going remarkably well. We recently recruited a community manager, whose name is Dan. I’ll let Dan introduce himself later, but he’s going to help put more content out there so our three loyal fans don’t get upset.
I’ve never been one for thinking small; it’s a blessing and a curse. Spycursion isn’t small, either. (Obviously, or it would be done by now and we would’ve sold about eight copies on Steam.) But what it is, I believe, is unique — the best combination of indie creativity with AAA quality… or at least B+ quality. And because we’re a small team making a big game, we need your help to make it real. The time will come when we launch a Kickstarter campaign and ask for your support. For now, though, we ask for your support in three other ways:
- Subscribe to our mailing list. You see those little forms in the sidebar and footer? They’re nice, aren’t they? They’re also our metric for when to start crowdfunding. The more subscribers we get, the sooner we can launch.
- Spread the word. Want Spycursion to succeed? Great, so do we! Tell all your friends that you want to play it with them. We’ve got some social media links in the footer, if that’s your thing.
- Join our team! Our most pressing need (as of July 2018) is for another developer or two, but if you think you can contribute in other ways, drop us a line.
Thank you, sincerely, for being a (prospective?) fan, and my apologies again for the radio silence. We at (defun games ()) are dedicated to making sure that your patience pays off.
It’s now the year 2032. In the recent past, a major cyberwar decimated much of the global internet infrastructure. What remains of it has largely been seized by pre-existing power players. Many countries have shunned the global internet and attempted to close their electronic borders (with varying degrees of success), while governments in general have lost much of their power in favor of corporations, loosely-tied criminal and vigilante groups, and even skilled individuals. In a world where information is more valuable than gold (but maybe not Bitcoin), “Spy” may now be the world’s top-paying job title.
Disclaimer: Spycursion is an ambitious game in early development. We present to you this information as a vision for how it will unfold. That said, some features may not be in the game when it launches. We will add these missing features — or completely new features — in later updates, depending on what players ask for!
As a Spycursion player, your objectives will be… whatever you want! It will be a sandbox game, where you can play several roles, which may influence your abilities and bonuses/penalties:
- Federal Agent: De-anonymize and track down criminals, contribute to the global order.
- Developer: Create/sell software for other players… perhaps with backdoors.
- Tycoon: Make money by any means necessary (typically business/politics) — but you’d better keep your hands clean!
- Hacktivist: Hack for a cause; expose corruption and create an open internet.
- Braggart: Hack for reputation; it’s all about fame!
- Mercenary: Take jobs for money, from whoever pays the most.
At the core of the game is basically a mini-Internet — simulated devices of all sorts, running software written in an in-game programming language called Slang (short for “Spy Lang”). Some of said software is open-source, some of it is proprietary… nearly all of it has security holes just waiting for you to exploit and/or patch! You’ll start off with access to a handful of basic public services (search engine, news, webmail, etc.), and as you explore, you’ll discover other public and private services run by other players or NPC’s.
Over time, various events will occur which will encourage (or force!) you to take some action. Bounties will be placed on well-known criminals, making them a target of other players and feds alike. Cryptocurrencies will rise and fall in value, influencing and influenced by the in-game economy. Software security holes will be publicized, encouraging hackers and putting corporations on the defensive.
Unlike most other hacking games, there’s a very “out in the world” element to Spycursion. Wi-fi hacking, phone hacking, and even shoulder-surfing and eavesdropping are all fair game. Missions will vary in design from the simple (“Trace the sender of an e-mail”) to the complex (“Steal a file from an air-gapped computer in a high-security facility”). Some can be performed from the relative safety of your character’s home, while others will require you to travel to another location, possibly risking the wrath of airport security.
Spycursion will also contain a single-player campaign, in which you will explore the history behind the cyberwar and discover just how the world came to be this way.
Yes, the Spycursion client will be open source! Don’t like that UI screenshot you see up there? No problem; just break out your favorite editor and sculpt it to your whims. Or build your own client from the ground up using our API! The choice is yours, and in Spycursion, many more choices will be, too. We greatly look forward to sharing more about this game. Stay tuned!
Waiting in the security line at the Atlanta airport gives a person plenty of time to think about their life choices. As you shuffle forward at a glacial pace, you wonder if it’s really a good idea to become even more entangled with the enigmatic information brokers known only as Big Data. The first two missions for them were relatively painless, not to mention lucrative. But something about this one feels… off. In theory, it’s a simple real-world mission:
- Fly to Chicago.
- Hang out at Starbucks.
- Wait for the target to show up.
- Hack her phone.
- Don’t get caught.
Well, as simple as real-world missions can ever be. It’s always risky doing an op out in the open, in full view of any cameras or shoulder-surfers. Traveling for an op is even riskier, but hey, whatever pays for that new rig you’ve been eyeing.
“Photo ID, please.” The TSA agent is staring at you impatiently.
“Oh, right, sorry. Here you go.”
A sudden chill runs up your spine. This is your first time flying with a fake ID. Such measures became necessary after a rival spy de-anonymized and “leaked” you (read: framed you) to the feds, officially making you a wanted criminal. The shop that sold you the ID claims to be good, and they are well-reviewed, but still…
“Thanks, enjoy your flight.”
Whew, that’s a relief. You shamble through the rest of the line, and the ever-present privacy violations that are the TSA’s body scanners, without incident. Past security and relatively safe for the moment, your thoughts return to the mission at hand. Though they keep their cards close to their chest, Big Data has never been known for recklessness. If they ask for information, it’s because someone else is willing to pay well more than the costs of obtaining it. Still, to your knowledge, they don’t have much of a presence in Chicago, and no one gave you any information at all about who your target actually is, other than a basic physical description (redhead, 5’6″, mid-40’s) and the location of her favorite coffee shop.
And then there was the mission listing itself: High-paying, at the top of the list. Normally those missions are snagged within a few minutes by the swarms of risk-tolerant idiots who want to make a name for themselves, but this one sat for multiple days before you conjured up the courage to click “Accept.” It’s almost as if — a lump forms in your throat as the pieces come together — someone intended you to take this mission.
“Hello, 22.214.171.124,” a chilling voice spouts your home IP address from behind you. You whirl around to spot the perpetrator, a redhead, about 5’6″, in her mid-40’s…
“We need to talk.”
Spycursion, our first game in early development, is what we’re referring to as a “subterfuge MMO.” It combines in-depth realistic hacking with an overworld map allowing you to move from place to place (think wardriving), in a massively multiplayer sandbox which will let you team up with other players, attack them… or do both simultaneously! Watch this space for more on Spycursion. It’s got a number of very innovative features that we think you’re going to love.