VR Isn’t Ready

Recently I’ve heard a lot of hubabaloo about VR, especially with regards to games. This wave of hype has been going on for while, but it has personally intensified for me because one of my professors this semester is running a VR startup. I’m also working on a VR-compatible game, so VR talk has become more relevant to me.

Array of current VR headsets

Array of current VR headsets

First off, I believe VR is still 10 years away from its prime-time. The tech is just not advanced to a viable level right now, and some fundamental issues of user experience have yet to be solved.

For example, my professor gave an example of why VR is such an immersive mode of interaction: the first time people put on the headset and jump into a virtual world, they reach out and try to touch objects. He trumpeted this as being evidence of a kinetic experience (i.e. it pushed them to “feel” things beyond what they immediately see). While is this kind of true, I see it far more as evidence of a fundamental shortcoming. The moment a user tries to interact with the world and fails, they are jerked out of the fantasy and immersion is broken. This is true in all games; if a user believes they can interact with the world in a certain way but the world doesn’t respond correctly, the user is made painfully and immediately aware that they are in a game, a simulation.

Control VR isn't enough.

Control VR isn’t enough.

This brings me to the first huge issue: the input problem. VR output is relatively advanced, what with Oculus and Gear VR and Morpheus. But we’ve seen little to no development effort targeted at ways for the user to interact with the world. Sure we have Control VR and such projects, but I think these haven’t caught on because they are so complicated to setup. Oculus made huge strides by turning the HMD into a relatively streamlined plug-and-play experience with a minimal mess of cables. We have yet to see how Oculus’s custom controllers affect the space, but I have a feeling they aren’t doing enough to bridge the haptic gap. We won’t see VR takeoff until users are no longer frustrated by the effort to give input to the game by these unintuitive means. As long as users are constantly reminded they are in a simulation, VR is no better than a big TV and a comfy couch.

Speaking of big TVs: the output tech isn’t good enough. The 1080p of the DK2 is nowhere near high enough to be immersive. Trust me: I’ve gotten to try out a DK2 extensively in the past few months at zero personal cost. My opinion is informed and unbiased. Trying to pick out details in the world is like peering through a blurry screen door. As long as I’m tempted to pop off the headset and peek at the monitor to figure out what I’m looking at, VR isn’t going to take off. Even the 2160×1200 of the consumer Oculus won’t be enough. When we get 3K or 4K resolutions in our HMDs, VR will be a viable alternative to monitor gaming. Of course, this tech is likely 5-10 years away for our average consumer.

These never caught on.

These never caught on.

This all isn’t to say that current VR efforts are for naught. These early adopter experiments are definitely useful for figuring out design paradigms and refining the tech, However, it would be foolish to operate under the assumption that VR is posed to take the gaming world by storm. VR is not the new mobile. VR is the new Kinect. And like the Wii and Kinect, VR is not a catch-all interaction mode; most gaming will always favor a static, laid-back experience. You can’t force people to give up lazy couch-potato gaming.

Of course, outside of gaming it may not be a niche interaction mode. In applications where immersion is not the goal and users expect to have to train in the operation of unnatural, intuitive controls, VR may very well thrive. Medicine, industrial operation, design, and engineering are obvious applications. It might even be useful for education purposes. But temper your expectations for gaming.

Execution vs Conception

I love having ideas. Ideas are fun, manipulable, infinitely complex or simple. They don’t take any work to think about, expand in breadth and depth. It doesn’t take effort to plan execution. Much like calculus, the manipulation of abstract possibilities is fun and easy. Once it gets to the actual computation and execution, though, the process becomes less fun.

This is why I experiment with so many engines and SDKs, and why I draw and write much more than I model and map. It is enough to know that I have the skills to do (or figure out how to do) what I want to do. If carrying through and actual doing the boring grunt work isn’t fun, why should I do it? That said, having a final product is the most satisfying thing in the world. When an external motivator hits the project, like money or responsibility or grades, I am motivated to work through the grunt work. Then I get to stand on the other side and beam at my beautiful realization of an idea.

Carrying this through to its logical extreme, I feel like the best way to force myself to produce a final product in the real world is to throw myself headfirst into the deep waters. If I make game creation my livelihood (and preferably a few other persons’s too), a final product will emerge in due time. If I keep it as my hobby, my ideas will never get off the ground floor — at most I will get some proof of concepts, or a half-completed level.

A Solution for Difficulty Curves and Power Creep

Most games portray you as a hero of some sort. A common trope is for the hero to be either inexperienced at the beginning of the game, or lack his equipment. This gives a reason for why the hero does not just plow right up to the main baddie and kill him at the beginning. In any case, a lot of games suffer from a strangely shaped difficulty curve. The game starts out fairly easy as the player learns the ropes, then the enemies get harder. Finally, you max out your stats and the game begins to get easier again.

Granted, the best games suffer from this less, but a lot of games have trouble with this type of power creep. Spore is a prime example of a ridiculously easy endgame (the space stage was essentially a sandbox). Some developers solve this by making enemies more powerful as the player progresses. This can work in games where, for instance, the enemy starts to realize just how much of a threat you are. In open-world games like Skyrim, though, this makes little sense.

Yahtzee, of Zero Punctuation, mentioned in one of his Extra Punctuation an inkling of an idea for a game that is designed with this problem in mind. I have taken the liberty of gripping the nebulous concept by the horns and fleshing it out.

The game is based around the power suit you wear. It is a magnificent piece of High Technology. Unfortunately, this means that nobody is quite sure how it works. The machining of the piece is much too fine to replicate, in any case, which means any replacement parts have to come from other pieces of High Technology, which are few and far between.

At the start of the game you escape from the main fortress of the Bad Guys with some sort of Valuable Item (perhaps information). You raid the armory and steal the suit before plunging yourself deep into the wilderness around the citadel. You spend the game running from a cadre of pursuers, trying to make your way to the border. At every encounter with an enemy, it is up to you to protect your suit as much. Each blow is physically simulated and, depending on where you place armor, where the hit was, how hard it was, etc. a component on your suit has the potential of breaking. Parts also wear down over time.

The most critical part of the game is deciding how to keep your suit in working order. Some systems are critical, like the pneumatics that let you move (damage to arm parts may impair aiming speed, damage to legs may reduce speed or jump height, etc), and some are dispensable, like weapons. If a critical system receives a hit and becomes in critical danger of breaking down, you have to stop and either fix it with any spare parts you find, or scrap a non-critical system on your suit to get the essential parts.

This meta-game with the suit solves the problem of power creep. You are at maximum power at the beginning, but enemies are also at the greatest density. Slogging through the wilderness and fighting enemies wears your suit down, so by the end you are barely limping along. As time goes on, you have to choose which weapon or system to scrap for parts. This means that you get a sample of all abilities at the beginning, and can keep the ones that best suit your play style. One of Bioshock’s biggest problems was that there was no incentive to try new plasmids. I’m sure the majority of players just improved the starting set, because buying new powers was too much of a liability.

I like the idea of having the game being mostly free-world. You can choose the best path through the different types of terrain to avoid encounters. Cold environments, wet environments, and sandy environments all have different types of wear and tear on the suit. Roads are easy to traverse (meaning less food consumption and lower likelihood of suit failure) but are more likely to find troops on them. Towns and other population centers are more likely to hold supplies (food and maintenance items are critical for survival) and spare parts, but the citizens will raise the alarm if they see you, and there are likely to be troops in towns.

The catch is that any alarms you raise will alert the search parties to your general presence and means a higher chance of encountering troops. Same goes for any military engagements in which an enemy scout or survivor escapes. The game is part stealth (avoiding conflict), part tactics(managing the suit, choosing your world route), part combat (winning conflicts you get into). At the end, instead of a boss fight, you have a final battle at the border of the kingdom as the search parties converge on your position and a friendly militia comes down from the other side of the border to help you across.

Failure of Fantasy

Here’s the question: what is fantasy?

1. imagination, especially when extravagant and unrestrained.
2. the forming of mental images, especially wondrous or strange fancies; imaginative conceptualizing.

That definition sounds pretty good.

“Fantasy is a genre of fiction that commonly uses magic and other supernatural phenomena as a primary element of plot, theme, or setting.”

That one doesn’t. Fantasy is not about “magic” or “the supernatural” in and of themselves, although they certainly must be central to the story. Fantasy is about taking participants in the story to a universe that contradicts the participants inherent expectations about the way things work. The story told hinges on this new and unpredictable world. Participants get to explore an unfamiliar world as they follow the characters on their journey.

Using this definition, a lot of self-proclaimed “fantasy” isn’t really fantasy at all. Whenever a “fantasy” story casts its story in a world of dwarves, elves, harpies, vampires, werewolves, goblins, orcs, wizards, etc. it is doing so because most fantasy readers will be familiar with such a setting and it allows the storyteller to cut straight to the storytelling. Yet, inherently, this is not fantasy.

These stories are still speculative fiction, but they are no longer true fantasy. I would call them speculative fiction with fantasy elements, but I certainly wouldn’t label them as real fantasy. Of course, the term fantasy can be used to refer to these works of speculative fiction, but it is an insult to the real works of fantasy that take the time to explore a completely new and unpredictable world (e.g. Discworld).

Some of these faux-fantasy universes include roleplaying games, both on the table and in games like Minecraft, and amateur “fantasy” stories. Obviously, world creation is hard and it is time consuming to think up convincing worlds that have interesting aspects.

Ultimately, this was the downfall of my Minecraft roleplaying server. The setting was not engaging, and players had difficulty getting immersed in the lore. But why is a “fantasy” setting necessary in the first place? People seem to associate roleplay with fantasy, probably because of the prevalence of roleplaying fantasy games. In addition, both RP and fantasy aim to satisfy the same itch: they are methods for an escape from reality.

But at the end of the day, you can have a fantasy Minecraft server without roleplaying, and you sure as hell don’t need a fantasy setting to have a roleplaying server. When I founded my Minecraft server, I wanted to see how much of a functional economy would emerge if I only set in place the loosest guidelines and money functionalities. Predictably, people found little need for money, since resources are, necessarily, abundant within (almost) any Minecraft world.

I am still interested in seeing how a Minecraftian universe can be reduced to a level where economic transactions become more feasible than collecting the resources yourself. On some level, this requires restraint from the players. However, people will not restrain themselves if it restricts their fun. So the parameters for my new server are slowly taking shape.

For one, people need an incentive to play, beyond just entertainment. There are a lot of competing venues of entertainment overall, and Minecraft is a particularly niche form of entertainment. But even within the realm of Minecraft, the pool of available servers is huge. And without a critical mass of players, a server cannot succeed. So, logically, the server needs to market itself in a way that pulls enough people in while still maintaining all the other parameters.

The server will be limited edition; it will only run for 50 days (7 weeks). This means that the story has a beginning and an end, and players are driven to accomplish a tangible goal within a time frame provided by an external force.

The setting of the server will be colonial. A group of colonists must set up a lucrative colony on a newly discovered land. The trading company that is sponsoring the colony will only fund it for ten years, during which it must start making money and pay back the initial investment. This means that players must collaborate both to survive and to generate revenue.

When the server first begins, players start on the ship that brought them to the uncharted land. It has a supply of food and tools. However, players will become hungry at a much faster rate than in the regular game. Any action, from crafting to using a tool to placing a block, will significantly reduce a player’s food bar. This will result in either a high death rate (because players will not be able to sustain their health and die from trivial falls, etc.) or a high food consumption rate.

Since the colony needs a much greater amount of food, a significant amount of energy needs to go into gathering supplies, which means that until farming and breeding infrastructure is established, not much effort will be put towards gathering valuables. Food scarcity will be boosted on the server, by making crops grow slower and increasing the cooldown time for animal breeding. Food is important because characters get only one life, raising the stakes considerably. Also, once a player dies he must wait until the next ship arrives from the motherland. These arrive once every six months ingame, which translates to roughly every 2.5 days real time. However, shipment arrivals are important for other reasons as well.

The colony can purchase things from its sponsor company. Of course, the prices are higher than reasonable. Some of the things the colony can trade away include gold, redstone, diamonds, magical items, sugar, and melon. In exchange for such raw materials, the colony is allotted some number of “trading points” with which it can buy guns (maybe), food, and other normal things like pistons, dispensers, lumber, stone, iron, saddles, etc. The exact trade ratios will be determined at a later time. They may also be adjusted as the game progresses.

Right now I think the difficulty will be set to peaceful, both because monsters would detract from the experience IMO, and because it means that the use of gunpowder, bonemeal, string, and slimeballs can be restricted.

To add back in some of the conflict lost from monsters, I hope to have two factions in the world. An existing faction, the natives, will already have infrastructure when the settlers arrive. The natives have farms, granaries, domesticated pets, mines, and supplies of string and bones. However, the natives don’t have guns (if they are put in) and can’t use any sort of redstone. To balance this, natives will be able to use magic freely, while settlers cannot. This means both sides have items from the regular game that the other side cannot access. Having such a dichotomy opens the door to different kinds of diplomatic relationships, depending on what the players decide to do ingame. I have no idea whether raids or trades will be more popular.

Unfortunately, I am also wary about creating two factions in the first place. Disparate groups on a server cause two problems. They isolate players from one another, essentially requiring double the players for two-faction play to feel the same as single-faction play. Groups also cause more frequent arguments, since communication is severely throttled.

I hope that with the right amount of advertising, I can attract around 6 people to start. They will all be colonists; only after the number rises to 12 can a native town be “discovered”. I am hesitant to go ahead with guns, because that would require a modded client to play, which significantly reduces the pool of available players. The server should be as accessible as possible. That being said, there is a lot of riffraff that, frankly, I didn’t keep out on the last server. Players NEED to be able to write full, coherent sentences both quickly and consistently. Even one person who cannot communicate well can ruin the experience for everyone.

If I ever get around to fixing connectivity issues and finishing the website, I am definitely going to go ahead with this server.

Programming Paradigms

Computer science is a relatively young field, and it has rapidly evolved ever since its inception. This becomes increasingly evident when you look at computer science being taught versus computer science being used. This is extremely apparent in the misnomer: computer science. CS is more technical art than science.

For a long time, computers had finite computational resources and memory. Today, our average consumer-grade computer is comparable to a super computer from 1985. Thusly, the twenty first century requires programming paradigms far different from those taught in the twentieth century. It no longer pays off to optimize the number of calculations or amount of memory your program uses, unless you are specifically performing mathematically intensive operations. This blog voices that sentiment much better than I can.

So programming now is about implementing an idea. Its easy to rise above the technical nitty gritty details and focus on the concept at hand. Then programming becomes a form of poetry, in which you express your ideas in a structured and rhythmic way. Programming, at a consumer level, is no longer about getting a machine to do what you want; its about empowering people.

Just like a poet spends many hours revising their verses and getting the words to say exactly what is meant, a programmer spends hours rearranging and improving code to fulfill their idea effectively. And like poetry, there are many genres and styles of programming. Unfortunately, programming is also like poetry in the way that many students get turned off to it by the experiences they have with it in school.

Programming should be taught with the main objective in mind: we are here to accomplish a mission. Writing mechanics are practiced and improved, but without an idea behind a poem or story, it is pointless. Algorithms are important, and so is project design and planning. But these are merely implements with which to express the programmer’s idea.

This is why the most successful software is easy to use, is powerful, or grants people an ability they didn’t have before. When you use a program, it doesn’t matter whether all the variables are global, whether the project was built top-down or bottom-up. The functional differences of some of the most disputed methods are miniscule. Optimization is a trivial concern when compared with the user interface. Is the parse speed of one file format more important than the support of a larger number of formats?

Kids want to be programmers because of coding heroes like Notch, the creator of Minecraft. But Minecraft isn’t well-designed. In fact, the program is a piece of crap that can barely run on a laptop from 5 years ago despite its simplicity. But the idea is gold, and that is what people notice. This is why Minecraft and Bioshock, and not COD, inspire people to be game developers.

However, functional programming is the CS taught in schools. Schools need to teach the art of computer science, not only the science. Imagine if writing was only taught, even up through college, in the scope of writing paragraphs. Essays and papers would just be a string of non sequiturs (kind of like this blog). Fiction would have no comprehensible story, only a series of finely crafted paragraphs. Only those who figured out the basic structures of plot, perhaps by reading books by others who had done the same, would learn to write meaningful stories.

In the future, everyone will be a programmer to some degree. At some point data will become so complex that to even manipulate information people will need to be able to interface with data processors through some sort of technical language in order to describe what they want. To survive in a digital world you either need software to help you interface with it, or learn the language of the realm.

Yet children are being driven off in droves because computers are being approached in education from completely the wrong angle. Computers are tool we use to accomplish tasks; the use of computers should not be taught just because “people need to be able to use computers in order to survive in the modern world”, but because children will be able to implement their ideas and carry out tasks much easier if they do have an expanded skillset on the computer. Computer skills should be taught in the form of “how would you go about doing X? Ok, what if I told you there was a much easier way?”

Snow Crash

Oh. Yes. I am going to start off this post by talking about the absolutely brilliant book by Neal Stephenson (see Cryptonomicon), Snow Crash. The book that popularized the use of the word “avatar” as it applies to the Web and gaming. The book that inspired Google Earth. And despite being 20 years old, it is more relevant than ever and uses the cyberpunk theme to hilarious and thought-provoking extents. It paints the picture of an Internet/MMO mashup, sort of like Second Life, based in a franchised world. Governments have split up and been replaced in function by companies; competing highway companies set up snipers where their road systems cross, military companies bid for retired aircraft carriers, and inflation has caused trillion dollar bills to become nigh worthless.

In the book, a katana-wielding freelance hacker named Hiro Protagonist follows a trail of mysterious clues and eventually discovers a plot to infect people with an ancient Sumerian linguistic virus. The entire book is bizarre, but it has some great concepts and is absolutely entertaining. Stephenson never fails to tell a great story; his only problem is wrapping them up. Anyways, I highly suggest you read it.

Well, I’ve been thinking about games again. I have two great ideas in the works, and one of them is “hacking” game based roughly in the Snow Crash universe. It doesn’t really use any of the unique concepts from it besides the general post-fall world setting and things like the Central Intelligence Corporation. It probably won’t even use the Metaverse, although it depends how much I choose to expand the game from the core concept. The player does play, however, as a freelance hacker who may or may not wield swords (not that it matters, since you probably won’t be doing any running around).

I’m writing up a Project Design Document which will cover all the important points of the game:
Download the whole document

The Future of the Source Engine

Valve’s Source and GoldenSource engines and Epic’s Unreal engines have had a long, acrimonious feud. Both Golden Source and the Unreal Engine debuted in 1998 in Half Life and Unreal, respectively. Both were considered revolutionary games at the time. Unreal blew technical and graphical expectations out of the water. Half Life left a legacy as one of the most influential games in the FPS genre.

Unreal Engine screenshot Unreal Engine screenshot
i2Zan0DmFkTfy Golden Source screenshot

Fast forward 6 years. Valve, in the meantime, has released Team Fortress Classic and Counterstrike, both extremely revolutionary games. The Unreal and Unreal 2 engines (the latter was released 2 years prior) had become extremely popular platforms for game developers, mostly because of the engines’ notable modularity and room for modification.

In 2004, Valve debuts the Source engine with Half Life 2, a ground breaking game that completely demolishes competition and sets a long-lasting legacy in terms of story, gameplay, and graphics. For comparison, Unreal Tournament 2004 was published the same year.

Unreal Engine 2 screenshot Source screenshot

In another 7 years, Unreal Engine 3 has been released and games like Gears of War and Batman: Arkham City have been developed using it. Valve has just published their first widely supported game, Portal 2. The Source engine has been evolved over the years, and many graphical upgrades have been applied along with compatibility with major game consoles.

Batman: AC screenshot

However, it becomes readily apparent that the visual styles of these two engines have diverged in the years since 1998. The Unreal line of engines have supported games like Bioshock and Mass Effect, but have also bourn the brunt of AAA games. Such games are known for their muted brown-grey color pallete, uninteresting story, and factory-made gameplay. Unreal Engine games are commonly criticized for having character models that look “plastic” (a result of game developers setting specular too high on materials), awkward character animations, and overuse of lens flares and bloom.

Games on the Source engine, on the other hand, consistently revolutionize some aspect of gaming. For example, Team Fortress 2, Portal, and Left 4 Dead are widely known for innovative gameplay. Unfortunately, Valve has lagged behind in terms of pushing the graphical frontier. Half Life 2 was smashingly good for its time, much in the same way that Halo stunned the gaming world back in 2001. However, every Source game since its debut has looked more and more aged.

Even worse, developers are driven away from using the Source engine due to a set of tools that have barely evolved since they were developed in 1998. Hammer, the level creation program, and Face Poser, the character animation blender, are unwieldy and unfinished; Source SDK tools are notorious for their bugs and frequent crashes.

Conversely, the Unreal toolset is streamlined and easy to jump into. This appeal has drawn more and more amateurs and professional developers alike. The editor allows you to pop right into the game to see changes, whereas the Source engine still requires maps to be compiled (which can take minutes) in order for the most recent revision to be played. Unreal’s deformable meshes dwarf the Source engine’s awkward displacement system.

However, I have a feeling that a couple of factors are going to come together and boost both engines out of the recent stigma they have incurred. The biggest factor is that at some point the AAA game industry is going to collapse. The other critical event is Half Life 3.

Yes! Do I know something you don’t? Have I heard a rumor lurking the Internet about this mysterious game? No. But I do know history. And that is more useful than all the forum threads in the universe.

Half Life was released in 1998. Half Life 2 was released in 2004. Episode 2 was released in 2007. Half Life 2 took 6 years to develop, despite being on a side burner for some of that time. By extrapolation, Half Life 3 should be nearing release in the next 2 years. However, circumstances are different.

The Source engine was developed FOR Half Life 2. Graphics were updated. But the toolset remained the same. In the time between HL2 and now, Valve has been exploring other genres. Team Fortress 2, Portal 2, and Left 4 Dead 2 all took a portion of the company’s resources. In addition, that last few years have been spent intensively on developing Dota 2 (which, by the way, was the cause of the free release of Alien Swarm). The second Counterstrike was contracted out. So Half Life 3 has been a side project, no doubt going through constant revisions and new directions.

However, unless Valve is going to release Day of Defeat 2 or Ricochet 2 (yeah right) in 2013, production on Half Life 3 is going to kick into high gear. There is one fact that drives me to believe even more heavily in this theory.

Since 2011, and probably even earlier, Valve has been pumping a huge amount of effort into redesigning their entire suite of development tools. It had become readily apparent to everyone at the company that the outdated tools were making it impossible to develop games efficiently.

“Oh yeah, we’re spending a tremendous amount of time on tools right now. So, our current tools are… very painful, so we probably are spending more time on tools development now than anything else and when we’re ready to ship those I think everybody’s life will get a lot better. Just way too hard to develop content right now, both for ourselves and for third-parties so we’re going to make enormously easier and simplify that process a lot.”
-Gabe Newell

Because both TF2 and Portal 2 have been supported continuously since their release, they have been the first to see the effects of this new tool development. Valve seems to have used these games as testing grounds, not only for their Free to Play business model and Steam Workshop concept, but also for new kinds of development tools. First, the Portal 2 Puzzle Maker changed the way that maps were made. In the same way that Python streamlines the programming process, the Puzzle Maker cuts out the tedious technical parts of making a level.

The second tool released was the Source Filmmaker. Although it doesn’t directly influence the way maps are made, its obviously been the subject of a lot of thought and development. The new ways of thinking about animation and time introduced by the SFM are probably indicative of the morphing paradigms in the tool development section at Valve.

Don’t think that Valve is going to be trampled by any of its competitors. Despite Unreal Engine’s public edge over the Source engine, especially with the recent UE4 reveal, the AAA game industry is sick, and no other publisher has a grip on the PC game market quite like Valve does. And although 90% of PC gamers pirate games, PC game sales are hardly smarting. In fact, the PC game market is hugely profitable, racking up $19 billion in 2011. This is just a few billion shy of the collective profits of the entire console market. Yet the next best thing to Steam is, laughably, EA’s wheezing digital content delivery system Origin.

Numbers Source

Anyways, here’s hoping for Half Life 3 and a shiny new set of developer tools!

%d bloggers like this: