I

Never fool yourself into thinking that the workings of human reality are set in stone. When you are told that true love will find you only if you stop looking for it, you are not being told the truth. True love will or will not find you when it damn well pleases to. There is no ritual with which true love can be willed into existence. It’s also quite the contradiction to stop looking for true love because you are so desperate to find it. Aren’t you still looking, just in a different way?

You can find true love by trawling the city streets every chance you get, fantasizing about all the people you meet, always flirting, always doing your best to end up with someone each night. You can also find it when you least expect it. Indeed; when you aren’t looking for it. But these are just things happening. This is just the world turning. Random events leading up to other random events. Love happens. Sometimes. And that’s all there is to it.

The same can be said for many things. Some people will tell you that you can’t be a writer unless you practice writing every day for five years before you attempt to write something substantial. Before you start working on your big hit, your magnum opus. Some people will tell you that art can only be created when you’re free, or sad, or horny, or high. They are all wrong. Fuck, even I am wrong. I don’t know shit about shit. But I do know that this goes for everybody else as well.

My point isn’t that everything is pointless. No – as anyone who has lived for a while knows, the world is really quite pointy, and it will poke holes in you all too often. Things having a point and a meaning is not what I’m talking about here. That’s for you to decide, as I couldn’t possibly fathom what meaning is to other people. All I’m saying is this: don’t get fooled into thinking that the workings of human reality are set in stone. You have never lived this life before. You have never been in this moment before. Nobody else has ever been where you are now. You are free to explore the world using your own faculties, drawing your own conclusions and shaping your own future. There are no train tracks to follow unless you build them yourself.

Relative graphics, immersion and gameplay

My first post on this blog mentioned Crysis 2, no doubt one of the best-looking games to date. Shiny and realistic-looking graphics are great and can really add to the experience and immersion of a game. However, one shouldn’t assume that good graphics equals shiny and realistic-looking all the time. In fact, I would say that graphics need to be good at what they do, i.e. be designed for the task at hand, rather than optimized for looks per default.

This is Minecraft:

Minecraft

This is Wurm Online:

Wurm Online

They serve as a good reference point for my post for many reasons: they are both considered somewhat indie, and Minecraft is solely developed by Markus “Notch” Persson, who was also a founder of and long-time coder on Wurm Online. They are both written in Java, aimed at an online audience and share similarities in world-shaping abilities, construction, resource gathering etc.

There are two things they are vastly different in, however: level of success and style of graphics. Minecraft’s world is built by square blocks of bright pixels. Wurm Online has that staple “tried and failed” 3D look, even when running on the highest settings possible. Minecraft is also hugely successful, netting Markus Persson not only millions upon millions but also a chance to found a game development studio where his now quite evident talent can hopefully be put to great use. Wurm Online, on the other hand, has been out for years upon years but has never really made it past its niche crowd of sandbox gamers.

I will not argue that the success of either game is based solely on their style of graphics, but I will argue that despite Minecraft’s simplistic approach to graphics, it still looks better than Wurm Online’s attempt at decent 3D, and probably took a whole lot less time to create (not to mention run on a modern-day processor). This I like to think is based on the fact that simple graphics that get the job done are better for immersion and gameplay than advanced graphics that aren’t quite there. Lack of anti-aliasing isn’t a problem in a world of cubes, so to speak.

Using the right style of graphics for a certain job doesn’t only relate to the player experience. It’s also something a developer should be interested in for their own gain. Let’s say Markus Persson had an idea for a game that he really wanted to create, where the focus was the gathering of resources the use of these resources to construct things. While my experience with game-development is fairly limited, I know enough about games to know that creating 3D models, textures, physics and so on for a game is not something to be done over a weekend. So what if the parts of the trees that aren’t cut down will float in the air? It will only be a big issue if you attempt to give the player the experience of being in a completely realistic world to begin with. I would say that the breaking of immersion isn’t mainly constituted by the this isn’t something that could happen in real life-experience, but rather by the this isn’t something that should happen in this game-realisation. Indeed; the problem isn’t reality, but rather the failure of delivering the experience you have implicitly told the player they would have while playing.

When you read a book, the story is key. This story is crafted with words. When you play a game, the key is gameplay. The term is rather vague, and is more or less the equivalent to the term “good” in the field of ethics, i.e. that one word that rests at the base of all other values, yet is itself heavily contested territory. I think the problem with the term gameplay is that people have tried to define it as one thing; e.g. “that feeling you get when you overcome a challenge” or “the joy of playing”. However if we look at the book analogy once more, we can see that its key to success, the concept of a story, is just as vague and ever-changing. Try defining what a good story is and you quickly realise that it all depends on the writer, the reader and the experience that the book tries to deliver. A quirky epos is probably bad, while a jovial rendition of a tragic story can be hard to accept as a reader. Mere examples, of course, but the point stands: different stories want to accomplish different things, just as different games want to deliver different gameplay. Trying to find a common denominator between the action-packed and dynamic gameplay of a game like Crysis and the time-bending and heavily story-based gameplay of much deserved indie-hit Braid is pointless at best, and runs the risk of creating a heavily reductionistic view of games in general at worst.

So let’s get back to our case in point, the graphically challenged lovechild of indie gaming and Farmville; Minecraft. It doesn’t strike me as the type of game that’s aiming to deliver tightly-packed action. Nor does it want you to gape at the amazing sunrise over a field of freshly cut wheat while you practice your spellchanting in the crisp morning air (to be honest, some of the creations in Minecraft are so amazing, I’d be surprised if this very setup doesn’t actually exist… but I hope you can see my point despite this). Minecraft aims to sate the creative (and megalomanic) streak that most humans seem to harbor. It’s more akin to Populous and Theme Park than World of Warcraft. Given enough time, I’m pretty convinced some Minecraft players will raise the level of abstraction and construct advanced games within the game itself.

But this all seems to beg the question: would Minecraft be an even better game if it had all of the things above and stunning visuals without any of the impairments in regards to client computer needs? To be honest I’m really not sure, but the question is also somewhat moot: it’s a fact that you exclude people from playing your game the higher you put your lowest visual bar. Until voxel graphics are big I really can’t see Minecraft needing to change graphical directions for any good reason. Wurm Online, on the other hand, will probably truck on, in essence hampered by it’s too highly set bar in the graphics department. A sprite-based game like (classic) Ultima Online delivers infinitely more immersion in my eyes.

Binary

As I’m sure most people are aware of, computers talk in binary. That is, they only really use 1′s and 0′s to communicate, calculate and let you read the newspaper. Binary is a very primitive and silly way to count, but computers are rather stupid, and only really understand two words: yes and no, which makes binary a good way to communicate with them. Now you might think I’m over-simplifying this just to make a point, but it really is this simple. Computers only communicate with YES and NO. On and off. 1 and 0.

That’s all fine and dandy, you say, but it really doesn’t explain how I am able to play absurdly good-looking games over the Internet! No, it doesn’t. But it’s a good start. So let’s not move on too fast. Like I just mentioned 1 and 0 can be seen as yes and no. But making up big numbers, images etc of just yes and no doesn’t really seem plausible. Which it isn’t. But it also is.

This is an attempt to explain binary in a relatively simple and relaxed way. I know some of you will cringe at the simplifications, but please leave your anal tendencies at home and enjoy the ride instead.

Creating simple numbers with binary ones
So let’s start with numbers. Let’s say I tell the computer to add 9+9. How would I need to tell the computer this using just ones and zeros? Well, the binary system works in such a way that using just two low-value numbers we can create any actual value. This is done by assigning value to the position of the number, and not just the number itself. So that means that the first position in a binary number is worth 1, the second position is worth double this amount (2), the third is worth double the amount before that (4) and so on. Does this sound confusing? Let me illustrate it with a nice little picture:

Binary digits and their values

Looking at the picture, we start at the right and count ourselves to the left. The first position has a value of 1. The second position has a value of 2. The third position has a value of 4. And so on up to the eighth position with a value of 128. Now what the 1′s and 0′s do is decide whether or not the value of its position should be added to the grand total, so if we go from right to left once more and add only the values of the ones, it might be something like:

- Should I add 1 to the total value? YES (1)
- Should I add 2 to the total value? YES (1)
- Should I add 4 to the total value? NO (0)
- Should I add 8 to the total value? YES (1)
- Should I add 16 to the total value? YES (1)
- Should I add 32 to the total value? NO (0)
- Should I add 64 to the total value? NO (0)
- Should I add 128 to the total value? YES (1)

This gives us a total value of 1 + 2 + 8 + 16 + 128 = 155.

Now the key here is to understand that using the 8 yes/no switches illustrated above we can represent any number between 0 and 255. For example 3 is 00000011, which translates to:

- Should I add 1 to the total value? YES (1)
- Should I add 2 to the total value? YES (1)
- Should I add 4-128 to the total value? NO (0)
Total value: 1+2 = 3

So the 0′s and 1′s (commonly known as bits) simply represent this type of very basic instructions to our rather stupid computer, whose only real skill is adding numbers together if we tell it to. These bits are commonly grouped together in pairs of 8 like above. 8 bits is what we call a byte. So when we say that a file or program is a certain size in megabytes, we’re actually talking about how many 1′s and 0′s it requires to represent something to the computer. For example if I save an empty Microsoft Word document and look at it’s file size, it says 24 kilobytes, which roughly means that a simple, empty Word document needs 192 000 (24 * 1000 * 8) YES/NO instructions in order to be represented to our extremely stupid computer.

From numbers to words
Representing numbers with other numbers is one thing, and it should seem to be an at least slightly logical thing to do. But how do we represent letters and words using numbers? Well, it really isn’t all that different. It does however require a second conceptual step – the translation not only from binary numbers (YES/NO) to “normal” numbers (155), but also from these normal numbers to letters (A). This is essentially done using a cipher, just like the time you as a kid agreed with your friends to shift all the letters in the alphabet one step to the right in order to communicate secretly with each other over written notes (i.e. “douchebag” became “epvdifcbh”). The difference here is, of course, that you don’t use one letter to represent another letter, but you use a number, so for example A could be represented by 1, B by 2, C by 3 and so on. That would mean that the word CAB could be written as 312. This is called an encoding, and examples of real encodings used on computers are ASCII and UTF-8. Encodings bridge the gap between letters and their numerical representation:

Encoding

As you can see in my masterfully composed work of art above, the binary representation of “normal” numbers gets sent to the encoding, which then checks what letter to produce based on the number it is given. In this case it is given 321, and following the encoding I made up above, this produces the letters CAB, one letter per number. Different encodings require different numbers to produce characters. For example if you want an encoding that is able to produce any (or most) characters known to man in all the different languages that exist all over the world you will need a big amount of different numbers. If you on the other hand only want to produce A-Z plus numbers and a few punctuation characters, you need a whole lot fewer.

The principle for using binary data to represent something else on a computer is generally the same as above. If you want to represent an image, each pixel will have a numerical value representing the colour values. This numerical value will in turn have a binary value. The same general idea applies to representing sound – an encoding which interprets numbers in a certain way to represent pitch, volume and so on.

A short history (and future) lesson
Back in the day, the first computers were operated using punched cards, which look like this:

Punched card

Here the punched/unpunched hole is a binary representation as well. Like I mentioned earlier, binary doesn’t need to be represented by the numbers 1 and 0. Rather it’s simply something that is either on or off, yes or no. In the card above the punched holes are YES, the unpunched ones are NO. The layout of the card, then, is a way to transform the binary values to something else, in this case numbers by the look of it. Punched cards are now obsolete, but the fact is not much has really changed. The binary representation works exactly the same way – we’re still just telling a stupid machine to either DO or DO NOT. Today computers use electronic signals to represent DO and DO NOT, however in theory we could use anything. Fiber-optic cables use light to transmit the binary signals, and we also have radio waves and so on. The DVD player in your computer bounces laser beams on a plastic disc and detects whether or not there’s a microscopic grove in the area where the laser was shone. There’s even some people who are now using the lamps in their office to transmit wireless data through the faster-than-the-eye flickering of their light. There’s even organic computers being developed, all on the basic principle of binary communication.

And that’s that.

Page loads since 2012-02-22: 2340