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.
-Dictionary.com

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.”
-Wikipedia

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?”

StackOverflow

<3 StackOverflow

This is my homage to that wondrous site. Well, it usually helps. To quote Shamus Young from his dev blog.

Right off the bat, I can see something is wrong here. These docs on GLSL are an absolute mess. The wiki is even worse. If you ever Google something and find forum posts listed above the official documentation in the search order, you know you are sailing right into the inky black void near the edge of the map, a place that would be labeled “here be dragons” if not for the fact that the link to the map itself is a 404.

Searching for example programs isn’t very helpful either. There are two kinds of example programs:

Ultra-simple test programs: Here is how to create a flat-shaded, un-textured, colorless, unlit polygon. These little three-line programs can’t teach you anything because they don’t DO anything.
Super-complex programs for a very specific purpose: Here is how to do toon shading on a bump-mapped, multi-textured, reflective surface with a specular map and fresnel shading. These programs are just pages of un-commented equations and are too advanced and specific to be used to learn how to do anything.

Which leaves us with forums. Here is how things work on programming forums:

ALLEN: Hi, I’m new to driving and I need to move my car back around 5 meters. How can I move the car backwards?

(2 days later.)

ALLEN: Hello? This is still a problem. I’m sure someone knows how to do this.

BOB: I can’t believe you didn’t figure this out yourself. Just take your foot off the gas and let the car roll backwards down the hill. Tap the bake when you get to where you want to be. Boom. Done.

ALLEN: But I’m not on a hill. I’m in my driveway and it’s completely flat.

CARL: Dude, I don’t know what you’re trying to accomplish, but you should never be driving backwards. It’s dangerous and will confuse the other drivers. See the big window in FRONT of you? That’s your first clue. Don’t drive backwards.

ALLEN: I’m not trying to drive backwards. I just need to move back a little bit so I can get out of my driveway and start driving forwards.

CARL: So just drive in circle until you’re pointed the right way.

ALLEN: I don’t have enough room to turn around like that. I only need to move back a few meters. I don’t understand why this has to be so hard.

CARL: Sounds like your “driveway” isn’t compatible with cars. It’s probably made for bikes. Call a contractor and have them convert some of your yard into driveway to be standards-compliant with the turning radius of a car. Either way, you’re doing something wrong.

DAVE: I see your problem. You can adjust your car to move backwards by using the shifter. It’s a stick located right between the passenger and driver seats. Apply the clutch and move the stick to the “R” position.

ALLEN: But.. I don’t have a clutch. And there isn’t a stick between the seats.

CARL: Sounds like you’re trying to drive in Europe or something.

ALLEN: Ah. Nevermind. I figured it out.

“Hold on, Matt,” you say. Or maybe “Hold on random Internet guy,” if you feel so inclined. “You haven’t actually written anything yet in this post!” True. You know what? I have a bunch of half-written blog posts, and they all SUCK. So this is the best you are going to get for now. Also:

Punctuation shouldn’t go inside quotes. That is STUPID.

He could say “Stop!,” or “Eat cold steel!,” or “If you move, the planet will explode.;” instead he chooses to scream incoherently and spazz out on the floor. Wait, maybe that wasn’t a choice. The other guy is holding a taser.

That sentence looks retarded. It should be:

He could say “Stop!”, or “Eat cold steel!”, or “If you move, the planet will explode.”; instead…

Doesn’t that just look so much better? Obvious solution: start an Internet petition to change English.

History is Cool

I’ve seen some talk about education pop up both on Twitter (Twitter is awesome) and in real life. It’s fairly apparent to many people that education ain’t what it used to be. Which is, to some degree, true. But the fact of the matter is that education hasn’t changed so much as the role that education needs to fulfill. I believe I’ve described in an earlier post the shift from industrial to post-industrial education, but I’ll reiterate.

After the industrial revolution, the demand for factory workers was high. Factory workers only need minimal education, about up to the elementary school level. These blue collar workers would become manual labor. Those who were smart enough went to high school, and became white collar workers. A select few of those people would go to college and become doctors, lawyers, scientists, judges, etc.

The parallax between then and now is obvious. As the demand for laborers has decreased and the demand for engineers has increased, more and more people are attending college. Unfortunately, the education system has not responded well to this influx. The collegiate system has become bloated as it tries to accommodate the new waves of people who need a college degree to get a decent job. The world has lost sight of the true reason for getting an education; although a person does get a certification as a result of attending college, their objective should be to learn.

Public education in elementary schools and high schools has also done a shoddy job of flexing its methods to prepare students for the constantly changing future. For example, children were discouraged from becoming artists 20-30 years ago, yet there is a high demand for creative people to create all sorts of digital media. As a modern example, elementary school curricula stress plate tectonics and other basic geology, drilling it into students’ heads year after year. That may have been necessary 40 years ago, when the theory was young and a majority of people still distrusted it, but now it is commonly accepted fact and there is no reason to stress it.

Not only is early education slow to change with the times, but it actively discourages children, intentionally or not, from learning some necessary skills. For example, the vast majority of people I talk to, even students at TJHSST (one of the top high schools in the country) haven’t seriously read a book (and certainly not for enjoyment) since the 3rd grade. The early grades have given them such a bad experience with reading that they dismiss all books as boring. This, quite obviously, is distressing. Disillusioned and lazy teachers teach interesting subjects like history and math in ways that turn children off, perhaps for life.

But history is cool. Yes, it’s also boring. But so is math, science, programming, reading, writing, foreign language, and sports. My point is, every subject has areas that are uninteresting to the uninitiated, and EVERY subject can be taught in a manner that makes you want to eat your own skull rather than listen to another second of it. The key to teaching a subject is show the student that it is awesome, and then start teaching the basics. Most importantly, though, make sure the student realizes that the field extends far beyond what they are learning right now.

Here are some examples of sweet historical events/times/people:
-The transition from Roman republic to empire
-The Battle of Agincourt
-The Fall of Constantinople
-The Mongols beating the crap out of everyone and being awesome
Nikola Tesla
Charles Babbage (way cooler than Tesla)

But not only are there examples of people who were incredible badasses, but even periods of history like the colonization of North America and the Middle Ages are inspiring. I find that whenever I read a textbook, my mind drifts off as I build a science fiction or fantasy universe which mirrors the status quo of that period in history.

But I digress. Essentially, learning is REALLY FUN. It can also be THE MOST BORING EXPERIENCE EV-OH MY GOD I JUST WANT TO TEAR MY FACE OFF WHY IS THIS SO UNINTERESTING.

Come on guys (yes, you). Step it up.

I’ll end with a quote from Saul Perkins: “My thesis is that 21st century parents should teach their kids three languages: English, Mandarin and coding. Software is so much a part of our lives to today that this is just a fundamental skill that people need.”

%d bloggers like this: