Out With the Old, In With the New

The Launch

On Feb. 26, we launched our Kickstarter campaign in the hopes of funding the rest of Spycursion’s development. Our spirits were high (even if our energy levels weren’t), we hit 2% funding within a few hours, but most of all, we were just excited for our studio to move into a new phase of its life. We had lined up PR contacts and were running a really clever — perhaps too clever — marketing campaign. At that point, all we had to do is wait for the inevitable surge in backers.

Early Bird

Admittedly, we should have seen the signs. By Day 3 I was beginning to, but to be completely honest, I spent most of the first three days of our campaign so exhausted from the preparation of it that I could do little else but refresh social media feeds and ask Mauricio why more backers weren’t coming in. The press weren’t responding to us in nearly enough volume, our ad campaign was a total flop, and our mailing list on its own wasn’t large enough to drive the early traffic we needed. We had focused all of our energy on that 72-hour period, and it netted us a whopping 4% funding. I was about to call a pow-wow with Mauricio and Dan to figure out how we could save this floundering campaign. Until…

CRACK!

Did you hear that? That was the sound of my wife breaking her wrist (in a very complicated and interesting fashion, she says). So, yes, I spent much of the next week focusing on her rather than our Kickstarter campaign.

The Doldrums

By the time I got back into things, our campaign hadn’t advanced much further and we all agreed that it was more or less doomed. That’s when we made the decision to move to Patreon and shared this update on the Kickstarter page. Since that update, Mauricio and I have been working on said Patreon page, discussing our new development plans… and looking for jobs. C’est la vie.

The Future!

As you may have already gathered, development on Spycursion will continue! It will be at a slower pace, no doubt. We almost certainly won’t be able to hit the Q4 2020 goal that were aiming for with the Kickstarter campaign. On the upside, if we can get our sustainable funding situation worked out, then you’ll have happier, less stressed-out devs working on the game — which means greater productivity and fewer bugs!

For now, we’ve launched a Patreon page to serve as both a funding boost and a barometer of how our fans are feeling about the game. Right now, our membership tiers are very simple: For every month that you back us, for an amount of your choice (more on that in a minute), you get one month of Spycursion gameplay after it’s released. We will certainly add more tiers, and possibly raise the minimum price tier, as time goes on. For now, we’d just like to know what our supporters want in terms of rewards. Let us know if you have reward ideas or other thoughts on our Patreon page!

In diagnosing the non-success of our Kickstarter campaign, one of the conclusions we reached is that the pricing and value we offered didn’t line up. Our pricing was based on a fuller, more polished version of Spycursion that we had in our heads — rather than reflecting the presentation that we were able to showcase at this stage of development. People don’t see what’s in our heads, they only see what we can show them, and what we could show them didn’t justify the price points. (And yet, it clearly did, for those who backed us. A friend pointed out that some backers were willing to pledge over $200 for a game that’s 18+ months away! That’s certainly not nothing!)

This is why the “pay what you want” model we’ve adopted on Patreon is key. We’d like our supporters to think carefully about what they see, what we’ve shared, and our own capabilities, to decide what a month of Spycursion is worth to them… and then tell us! At this point, we’re expecting a lot of $1/month backers, and that’s perfectly fine. Over time, we hope to earn more supporters and more trust. The nice thing about Patreon is that we don’t have to get everything right at the beginning; our fans can help us over a longer time period in molding Spycursion into what they’d like it to be. We hope you will join us on this journey!



The Spirit of Kickstarter

Kickstarter has changed a lot over the years. Observe this video game project from 2012… and then observe this one from 2018.

Go on. I’ll wait.

In 2012, a tiny independent game studio could launch a campaign without so much as a video trailer and net $150,000 in funding. Meanwhile, in 2018, established studios learned they could repackage their old releases, toss them onto Kickstarter with some collectors’ items, and fund a successful campaign literally overnight.

Don’t get me wrong, I loved the Myst games. But I can’t help but feel that’s not really what Kickstarter is for, ya know?

Some people have told me that we shouldn’t be launching a Kickstarter campaign. “You aren’t a big studio with an established audience.” “Your graphics aren’t very good yet.” “You don’t have gobs of marketing dollars.” All of those things are true. I certainly wish inspiration had struck back in 2012, when those weren’t necessities — we might have surged past our funding goal a long time ago.

But instead of looking at the cards we weren’t dealt, let’s look at the ones we were:

  • An innovative concept in an underserved niche. I truly believe that enough people exist who would be excited enough about Spycursion to back it, as long as we are able to find that audience. (Not always an easy task!) When and where we have found that audience, we’ve received a lot of praise. (And a handful of naysayers, usually related to one of the “cards we weren’t dealt” above.)
  • Secret alien technology. We haven’t played up Lisp too much as an advantage, partly because it’s still largely uncharted territory for game development. But both Mauricio and I have often been surprised by how easy it makes certain things. If When Spycursion happens, I won’t say it was only because of our choice of programming language… but I will say that that choice probably helped.
  • A small, but enthusiastic, fan base. That’s you! And, it turns out, you may be the most important part of this whole equation…

It’s important to realize that indie studios like us are no longer competing against the likes of Starlight Inception for visibility on Kickstarter. We’re competing against Myst, and if we try to compete on traditional grounds, we’ll get creamed every time. We’ve done our best so far to put those first two advantages above to good use, but the third one is mostly out of our hands. That’s where you come in.

And yes, this is the part of the blog post where we shamelessly ask you to share Spycursion with all of your family, friends, enemies, acquaintances, ex-lovers, and every random person with whom you make eye contact but don’t click the Back button yet because there are good reasons why you should do so!

If you’ve spent any amount of time browsing Kickstarter, you’ve probably seen those projects from very non-startup companies with high-budget videos and suspiciously low funding goals. You know, the ones using spammy crowdfunding agencies, the ones that make you think to yourself: “This entire campaign is solely for publicity, isn’t it?”

Well, we’re the antithesis of that. We’re just a couple of people with some ideas and skills who came together to bring a game to life. As a brand new, zero-budget studio, we’re using Kickstarter for its original intended purpose — to “kickstart” a creative project! Kickstarter is, and always has been, our Plan A. (There are contingency plans — all of which have significant downsides — but those are better off in another post.) Sadly, that also means we’re facing some headwinds that we arguably shouldn’t have to face. That’s why your support (financial and/or social) is crucial to our success.

Do you love the concept of Spycursion and the long-term vision we have for it? Splendid! Share. This. Game.

Do you love the concept of Spycursion but hate how the graphics look right now? Excellent! Share. This. Game. With the support of you and all your family/friends/enemies/etc., we can afford some better art and all of the graphical bling-bling you can handle.

Do you love the concept of Spycursion but are skeptical that we can actually pull it off? Glad to hear it! Share. This. Game. With the enough support, we will pull it off, and if for some reason we don’t, we’ll be open-sourcing the whole shebang for you to try pulling it off yourself. (See the “Risks and Challenges” section of our Kickstarter page.)

Do you hate the concept of Spycursion altogether? Cool beans! Share. This. Game. You never know who else might enjoy it in your stead.

Did you come from /r/lisp or Hacker News and you just want a Lisp game to point to when people trash your favorite language? Superb! Share. This. Game.

Share our Kickstarter page. Share our trailer. Share this blog post. Share it on Facebook. Share it on Twitter. Share it on Reddit, or Mastodon, or Pinterest, or whatever your favorite social networks are. Share it on 4chan just kidding please don’t do that. Share it on your blog. Share it on a postcard. Share it at parties. Share it especially with people you know who happen to be in media and/or very rich. Share. This. Game.

With enough sharing (and broken records), we can bring Spycursion to life. That, in my opinion, is what the spirit of Kickstarter is all about. Thank you for your support!





Creating a (Non-Trivial) Lisp Game in 2018

Lisp programmers are a small group. According to the TIOBE index, Lisp currently sits at #32 on their ranking of programming language popularity. (Common Lisp specifically is somewhere between 51 and 100.) You can certainly imagine that Lisp game programmers are an even smaller group. And then when you consider non-trivial games, the games made by teams, the ones that are significant enough in scope to potentially fund the studio building them… well, I don’t think it’s much of a leap to say that you can probably count the number of those games on one hand.

Suffice it to say that not a whole lot has been written on the art of developing games in Lisp, relative to other languages. As a leader of one of the aforementioned five-or-fewer teams building a sizeable Lisp game (Common Lisp, in our case), I want to contribute to that collective knowledge base. But first, a caveat: It would be premature to consider either (defun games ()), as a studio, or myself, personally, as any kind of “authoritative voice” in the Lisp game community. Spycursion is the first game that we as a studio are producing, and it hasn’t even been funded yet. (Hint hint, Kickstarter, Feb. 26, hint hint!) And although I was a hobbyist Common Lisp developer for about seven years before starting work on Spycursion last year, there’s still a lot about this language I don’t know, and there are certainly people who could write better/faster Lisp game code than me… I’m just the only one who was insane enough to start this project. 😉 We also recently picked up another developer (he hasn’t introduced himself yet, but he will) whose opinions may differ from mine. Taken altogether, what I’m trying to say is: I’m not a guru. I’m just one guy trying to find his way on this bizarre-yet-beautiful landscape, just like everyone else!

Aaaanyway, Lisp games. The first thing you should know, before you go tell all your friends “Hey, they wrote Spycursion in Lisp, let’s create our Overwatch/Pokemon/Dark Souls cross-over in Lisp, too!” is that Spycursion is weird. The game itself is weird, its architecture is weird, its developers are weird… Point is, we’re working with some parameters that make Lisp not only suitable for Spycursion, but perhaps even the ideal language for it. Your Overwatch/Pokemon/Dark Souls cross-over may not fit the bill. (Or it may. I’ll let you know after we release Game #2.) It’s also important to remember that Spycursion has a client and a server component, both of which are written in CL. This was not always the case for the client; I’ll share that story in a minute. But let’s talk about the server first.

As we’ve mentioned before, Spycursion has its own programming language. You may have read about how domain-specific languages (DSL’s) in Lisp are grand, how they’ll make your coffee for you, blah blah blah. In my experience, a lot of the conversation about this can get pretty academic, but here’s a summary of what happens when you compile and run a Slang program in the world of Spycursion:

1. Compilation: The server parses your program (assuming it is syntactically correct) and creates a tree of Lisp forms from it.
2. Runtime: Some contextualization happens with that tree of Lisp forms, and then it is evaluated within the context of an in-game device.
3. (Optional): If the program needs to communicate with another program on another in-game device, via in-game network, then some magic happens to determine where that program is, and runs it, too.

This is of course a lot more complicated than I’m making it sound, but it’s still far less complicated than in probably most, if not all, other mainstream languages. Lisp allows you, as a player, to run your own code within someone else’s online game. (And yes, we do run security checks on your code before we parse it. We’re not n00bs, thankyouverymuch.) This is not merely simulated. There are plenty of places within Spycursion where we “cheat” to make things easier on ourselves — hey, we’re an indie, cut us some slack — but Slang is not one of those places. Just thinking about trying to do all of this in C++ gives me an icky feeling. (I eagerly await the e-mail from someone telling me how you can do it in C++, if you just jump through these 27 hoops…)

So, yes, Lisp is awesome as a game server, but I have a feeling that’s not what most of you are here for. You want to know why we’re using Lisp for the Spycursion client, and how you can write your own amazing thing in Lisp too, and clearly the answers are because I’m insane and you should stop listening to me because it’s fun, dadgum it, and by being a masochist early adopter and maybe having a fairly simple game, graphically. Sarcasm aside, these questions deserve longer answers:

Why Lisp (for the client)? Okay, story time. Long, long ago, when the Spycursion server was just Slang and a WebSocket interface and not much else, I set about creating a text-only testing client. I did this in Python, figuring it would be relatively quick and easy, which it was. At this point I’d not completely decided on how the client would be implemented, but I reasoned that, despite Python not being my best language, it would be easy to find developers for — so I could handle doing all the server-side Lisp as long as I had someone else dedicated to the client.

But there was a problem: Writing in Python just wasn’t fun. Some of you may not understand this, but it’s a phenomenon I’ve heard about before — once you get “spoiled” by Lisp, you have trouble getting motivated to code in any other “lesser” language. This was before we existed as a studio, when I was doing this project entirely by myself, so I didn’t have anyone else to shove the Python work off to, but I knew it was important to get something visual produced so that I could begin to show people (not simply tell them) what Spycursion was about.

So I chucked the Python client, rewrote the thing in CL, and around that time, started getting ideas of what I felt this fledgling studio could be. In my opinion, the reasons “nobody programs in Lisp” mostly boil down to, well… because “nobody programs in Lisp.” The community is small, so there are few tools available, so the community doesn’t grow because people don’t use Lisp for major projects due to a lack of tools. This is even more true for Lisp games specifically, but I believe that this chicken-and-egg problem can be helped by creating a well-known game in Lisp, if only to point to it as a success and prove that it can be done. Additionally, by open-sourcing the client code (which we’ve not done yet, mostly due to legal questions that need answering), we show new and aspiring Lispers how it can be done. Again, to avoid getting ahead of ourselves — this thing could still fail, perhaps in spectacular fashion. But at least if it does, you’ll get a front-row seat. 😉 And I guarantee you that it won’t be because of the programming language we chose.

Why do you think it will work? As I mentioned before, Spycursion is weird. There are very experienced people within the Lisp community who think that Lisp, in its current state, is not ready for serious game programming. I have no basis on which to disagree with them, but I do think it depends on the type of game you’re creating. Spycursion has several things going for it that make it different from what you might imagine as a “typical game,” especially a AAA game:

  • There’s no twitch action. An ill-timed garbage collection isn’t going to be the difference between life and death. As of yet, we’ve made no attempt to customize GC or really push for low-level performance in ways that might be challenging to do in Lisp. We might, at some point, but I’m guessing we won’t even need to.
  • Much of the tricky stuff is offloaded to the server. Don’t underestimate the advantage of having a server (read: one single platform, of your choice) running parts of your game. That means fewer shared library headaches and fewer client performance woes — assuming you do everything asynchronously — for starters. (Oh, but please don’t be that developer who forces a network connection for your single-player game. That’s just rude.)
  • We don’t need to build for consoles. Ever tried to run Lisp on the Switch? I haven’t… and I don’t want to.
  • Physics? We don’t need no stinkin’ physics. Or at least no physics that can’t be calculated based solely on what I remember from 9th grade Geometry.
  • We keep graphics simple. I don’t really know how to quantify that, but the game is meant to be played 3rd-person, from a distanced zoom level. (We let you zoom in, but I wouldn’t necessarily recommend it.) The assets will be relatively low-poly and there will be relatively few of them. Note that “simple” does not mean ugly. We’re aiming to make it all look good while still putting most of our effort into gameplay — graphics are one of the places we “cheat.” You’ll be able to judge how we’re doing once we finish the Kickstarter trailer.

Put all of the above together, and you get a picture of a fairly minimalistic game client that really gets out of the way and lets you enjoy playing. (Or at least that’s the picture I hope you get!) And to be clear, I am not saying that fancier, AAA-level games can’t be made with Lisp. I’m saying I really don’t know, but this is our attempt to get as close as we can with the resources we have.

How are you doing it? I would say “pain, sweat, and toil,” but that kind of describes all game development, so…

  • The engine. Oh, just kidding, we aren’t using one. In 2018, I know of at least three Common Lisp 3D game engines in varying stages of development: First Light, Trial, and cl-bodge. In 2017, when I was researching these engines, they were all either too early in development or otherwise just didn’t fit our needs. They might now, but I haven’t followed their progress enough to know for sure. This brings me to what is maybe the most important thing to know if you’re looking to write a non-trivial Lisp game in 2018: You have to be okay with writing a lot of things yourself. Lisp makes this fun to do, and might still even save you time overall depending on just how much you need to write. But it’s a very different mindset from being, say, a plug-and-play JavaScript developer.
  • CEPL. CEPL is an abstraction layer around OpenGL which has been a joy to work with, once I figured out how. (Tip: See the author’s video stream, it’s great.) Its goal seems to be to make OpenGL lispy and fun to work with, and I really think it has achieved that. Spycursion uses CEPL extensively, and while I’m sure we’re doing some things suboptimally, performance has been fine so far. We’re also using cepl.sdl2 which brings in cl-sdl2.
  • QTools. QTools is a lispy wrapper around Qt 4. Most games probably won’t want the heft of Qt, but our device UI actually needs something a bit more featureful, so it’s worth mentioning. We have run into some build problems with QTools, particularly on Linux. Add in that there doesn’t seem to be a Qt5 update on the horizon, and we may well end up switching away from it (to what, I can’t say yet). But it’s currently working well, for what we need it for.
  • Other libraries

And that’s it! Lisp game development isn’t for everyone, but I stand by my assertion that it can be done, and done well, given the right game — and perhaps the right amount of patience.

TL;DR:

  • Use CEPL. Or one of the engines, if they fit. Or maybe both.
  • Yes, you should do it, even if you fail. That’s how the community grows.
  • Be prepared to write a lot of stuff yourself. This is not necessarily a bad thing. It’s fun!
    • Except skeletal animation. Don’t write that yourself.
  • Support our Kickstarter starting on February 26th!



Suspicious Activity

Over the last several days, you may have noticed a handful of cryptic messages being posted to our website and various social media presences. We don’t know who (or what) is behind these strange postings, but rest assured we are working as quickly as possible to solve the mystery.

Additionally, we noticed some kind of analysis tool posted on this website. As of now, its purpose is unknown, but it seems to be looking for a 32-character string of hex characters (0-9 and A-F). For example, a string like this: 46b6726a8a327e007d41d9f603bae95d.

At the time of this writing, we’ve discovered eight of these strange messages and ciphers, but will let you know if we learn of more.



What Spycursion Can Become

Can I speak freely for a minute? Marketing your own game sucks. It especially sucks when you’re an indie studio, and it sucks even more when your game is shaping up to be as ambitious as Spycursion. The last thing we want to do is promise features that end up being outside the scope of what our Kickstarter revenue will allow. And yet, I believe that for Spycursion to reach its full potential, our fans and supporters (that’s you!) have to understand what that potential is.

So, rather than the overly conservative details we’ve been putting out, in this post I’d like to give you a glimpse inside my mind (careful, it’s a scary place) at the other end of the spectrum — the level 100 version of Spycursion. Please, treat this post not as information, but as inspiration. If you just want to know what Spycursion will look like when it launches, you probably want to skip this one.


In addition to the core details we’ve already mentioned…

  • Simulated economic, business, and political systems, centered around technology and security.
    • Market fluctuations, of stocks and cryptocurrencies, based on player activity, missions, and random world events.
    • Run your own corporation, by yourself or with other players. Do business legally or illegally, but don’t get caught!
      • If you do, you’ll go to prison and have to break out, or convince someone on the outside to break you out.
    • Alternatively, you could just blackmail a politician to get the laws changed in your favor…
      • … or hack the laws themselves, which are implemented as smart contracts…
      • … or become a politician yourself, if you’re famous enough.
  • Spycraft like in the movies (and hopefully better).
    • Need to follow someone? Hack their phone and watch their GPS…
      • … or do it indirectly by hacking security cameras in the area…
      • … or do it the old-fashioned way and hire informants.
    • Got a tough corporate target to crack? Try buying a phone, filling it with malware, and mailing it to the company to attack their Wi-Fi.
    • Drones. Because of course.
  • Learn the ins and outs of software security.
    • Open-source Slang software can be audited by players for security holes…
      • … but even proprietary software can be fuzzed.
    • Security holes can be found as random world events, in which case they’ll be publicized.
      • Or they can be found by another player, in which case, they can do what they please…
    • Be careful with software you find out in the game world. You never know what kind of backdoors it might contain.

As we’ve mentioned before, our ability to level Spycursion up to 100 depends entirely on you. If you’d like to help with that, please start by joining our mailing list! You should see a subscription form at the bottom of this post.



Traveling the (Game) World

Take a look at the following screenshot:

An aerial view of a city in Spycursion

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:

  • Bank
  • Internet cafe
  • Library
  • Electronics store
  • Corporate office
  • Datacenter
  • 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!



Speaking Slang

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!



Inventing the Internet

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…



A Story of (defun games ())

Hi, I’m Scott.

Scott Helvick, grinning like he just got married
This is my “I’m about to Google-bomb myself” grin.

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:

Two Spycursion characters engaged in conversationSpycursion's computer UI Aerial view of a city in Spycursion

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:

    1. 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.
    2. 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.
    3. 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.