Cannon Fodder

As someone that invests in the idea of simulation-theory and the virtuality of existence, I’ve been busy doing research by playing a MMOFPS (Massively multiplayer online first-person shooter game). It took me a few weeks, but I recently reached my goal of getting into the top level. The top level is highly competitive in its own right and contains higher leagues, but I don’t care about that, I just wanted to get into the highest numbered level.

There were times when I wanted to quit because I was fed-up with being cannon-fodder for higher-powered players. I eked out an existence by capturing points for my team while they did the bulk of the fighting, and other times I hid behind stronger teammates. But as my capabilities grew, there were times when I stood out front crushing those that dared stand before me.

Overall I had a pretty quick rise through the ranks. But this resulted in me being matched against tougher and tougher opponents, usually in a league or two above me. Although I know what it feels like to be the top guy in a match, I’ve been squashed like a bug many more times.

Was it hard-work and grinding through the lower levels that allowed me to reach my lofty goal? Somewhat. But like a lot of these games, there’s a lottery system. I won things that helped me progress at an accelerated rate. I don’t know if the lottery was rigged in my favor to entice me to keep playing, I simply accepted those wins as my very own good luck.

Another factor beyond my control is the matchmaking. Why am I teamed up with certain people while pitted against others? An algorithm controls my fate. No matter how good I think I am, I get crushed when placed amongst the higher league players. But other times I do the demolishing, it simply depends on the matchmaking. Of course when I win, I chalk it up to pure skill but when I lose it’s due to terrible matchmaking (which it is).

Regular life appears as though it has lottery-like resource dispersement. It has a matchmaking system that introduces certain people into our life while fading others out. We’re pitted against opponents in regularly occuring contests. There are preset goals we’re expected to achieve. Our character even comes with a particular set of attributes.

There are times in regular life when we feel like cannon fodder — and sometimes we want to quit because of it. In games, oftentimes our character is battered and tattered and limping through the virtual-world, yet we persist. So in life we must also persist. We must find the fun amidst the turbulence and keep progressing until we collapse.

There have been times when it was obvious my team was going to lose, we were smashed from the start, yet we stuck it out — fighting relentlessly until the buzzer — and we won. What a feeling that is, to be so close to defeat yet pull out a victory at the end of a hard-fought battle. It’s intense, minutes feel like hours and the prize is so much sweeter.

Of course, sometimes my team did lose badly, but it was that context that became the foundation for the elation that would occur with subsequent wins. Every narrative must have its ebb and flow, that’s simply how it works. We can plainly observe narratives taking place all around us, which proves life’s fictional nature.

It’s silly to yell at the screen when things don’t go as expected. We watch shows and ride rides specifically because of the rollercoaster inducing effects they provide. Essentially, I wanted to lose again and again just to increase the tension so that I could maximize the feeling of triumph.

So when life feels at a low, it’s the same thing — tension is building for the purpose of an eventual payoff. But realize that the outcome only comes when we stick around to see it. If we quit, it’s over — the tension and its reward dissolve back into the aether of potentiality.

Yet why doesn’t the gameplay always align with our preferences? Why are we taking part in contests that we can’t sync with? Why are we riding rides that turn out to be too fast? Why are we involved with stories that are too intense? That’s because there’s an exploration and discovery period where we’re supposed to figure out our perfect fit. Basically we’re shopping and experimenting — and that in itself can be fun.

For instance, when I started playing the MMOFPS game, I clicked with certain combinations of weapons yet couldn’t effectively use others. Even though some weapons were clearly effective at defeating me, I just couldn’t use them myself. So to determine which weapons I was best with, I had to try them all out. It was a turbulent time when I lost a lot, obviously — yet overall, the experimenting was entertaining.

We come into this game not quite comfortable with our role, so we spend time testing things out. And we must remember that every contest seems silly when overanalyzed. We mustn’t judge a mechanism of triumph. For instance, I feel triumphant playing an MMOFPS game. Someone else might feel triumphant overcoming a disease. Every life is full of triumphant episodes, even though outside observers might not appreciate them as such.

Advertisements

Intro To Magic

An excerpt from the fictional tales of Way of the Wizard: Modern Magic

So the question becomes, how do we program our world? There are those among us that claim such alteration is possible and we have no cause to doubt them. Skepticism is certainly not reason enough, as that’s merely a form of stodgy conservatism. To make any change, great or small, we must believe in its possibility.

Typically, when we start using computers, we’re not even aware that computer-programming is a thing. The operating system, and the applications running on top, just exist. And when we learn that actual people wrote said software, we believe it to be a feat apart from ourselves, a task undertaken by geniuses tucked away in a laboratory. We could never do that, it’s simply not possible.

We wouldn’t even know where to begin. What do we write, where do we write it? And if we dare look it up, we’re deluged by complexity. What if we look for a book? Which book do we pick? And once we start, how do we keep our head above the sea of uncertainty? Plus, a simplistic step-by-step guide is one thing, an unguided project is a far different beast.

It turns out that software development is more art than math. It is not so much completing equations, but a constant treadmill of trial-and-error. We should therefore expect world-level programming to be quite the same. For instance, let’s examine a realistic scene from the desk of a software developer:

“Will it work? Let’s see. Nope. Okay try something else. Nope. Wait, why’s it doing that now!? Okay how about this. Hmm. Okay let me look something up. Ah, okay, I’ll try this. Ooh better. Ahh, nope, now the other part doesn’t work. Okay let me take a break and see if inspiration strikes. [Later that day…] Aha, that’s it! [Fervent typing ensues…] It works! Now onto the next problem….”

This common scenario plays itself out again and again. The solution so often comes from outside the programmer. Either it comes from an actual archive of answers (a forum for programmers), or from some mystical source of inspiration that’s accessed by the programmer’s subconscious once he engages in another task.

Let’s not gloss over this point, that the key to a programmer’s code comes from external sources. One source is a repository of discussion compiled by programmers over the years. And another source is some other-worldly well-of-knowledge that provides solutions for problems posed to it while the mind is no longer actively searching.

So a wizard should expect much of the same. First, he needs to grasp that magic exists. Second, he must believe it’s a process he can proficiently navigate. Third, he must dive into some introductory materials that provide a cryptic set of rules and steps for completing basic but essentially useless projects. Then as aspirations expand, on comes a contentious time of attempting to self-solve a particular problem. This is accompanied by research into the ways of others who solved similar issues, alongside bouts of inspiration from one’s own imagination. Voila! A wizard is born.

In programming, there is no set canon of introductory materials. Programmers learn their craft by various means. There are a myriad of languages and techniques and styles of programming. There’s countless sources of introductions. The common theme though, is the intent and determination of the practitioner. And there is one other commonality: every programmer begins by writing a small program that prints a simple phrase, a very telling phrase: hello, world

Ancient Bindings

An excerpt from the fictional tales of Way of the Wizard: Modern Magic

Okay Rich, blah blah blah computer-programming, but what about magic?

But don’t you see, if the world is a computer simulation, then programming IS magic:
World.place(object)

But here’s the thing, the easiest programming to understand is typically the most restrictive. In the high-level environments you’re granted access to a few preset commands that aren’t very customizable. In order to tap into the low-level stuff that alters individual pixels of the interface, you’ll need to delve into the ancient API.

The problem with ancient APIs though, is their archaic format and overall complexity. For instance: in high-level programming, objects are managed for you, whereas in low-level, you need to account for their maintenance and dissolution. To call something with the ancient API typically takes more consideration and is much more prone to error.

And of course, if you attempt to build an entire program by invoking the ancient API, then the complexity and bugginess is going to compound. To account for this, programmers oftentimes use bindings that simplify access to the ancient API using a more modern parlance. This also allows the program’s heavy-lifting to be done in a high-level style whereas certain customizations can be made with bindings to the ancient API.

This is what we wizards seek, the bindings into the ancient API. It is simply not worth trying to create a program from the ancient API, the time and complexity are too much. We’d be decades working on a teetering foundation — we need instead to stand on the shoulders of giants. But this takes great discernment of course — because how can we recognize what we don’t know?

Yet that is the wizard’s gift — the ability to recognize a source of power. It’s no different than how a chef recognizes a source of flavor — it’s a built-in attribute of the character. And like a programmer, a wizard conjures whatever needs programming. Either he sees a hole that needs filling or he’s the middleman between clients and their vision.

Through observation we can witness that this world is not merely a pre-compiled binary, there’s also some scripting on the fly. As in a scripting language, code can write code. But of course we must know the correct keywords and syntax as well as the appropriate method of code execution. Programmers for instance don’t simply open up a text document and write random words and symbols.

No, wizards must learn their interface, they must study syntax and keywords. They must seek out repositories of source-code, deciphering the instruction-sets within. They must understand where and when to apply such commands and obtain the tools by which to evoke their spells. This is the way of the wizard, programmer of worlds.