Showing posts with label rant. Show all posts
Showing posts with label rant. Show all posts

Friday, June 4, 2010

The Purpose of Games

What's the point of any game? Entertainment. We do it because it's fun and/or rewarding. I've talked about happiness as the achievement of value - that's reward. In that same point, I talked about fun.
Purpose

But what's the point? What's the purpose of games? What does it all mean?

Nothing. There is no point. Games are entertainment. You can play with friends and enjoy socializing, make new friends, that kind of stuff -- but games are an end in themselves. They're entertainment; that's what entertainment means.

Even sports are just entertainment.Will a high free-throw percentage help you avoid car accidents? Pay for your kids' college education? They can improve fitness, but a half hour in the gym with a high-intensity or Tabeta-protocol workout will have the same effect. Sports are entertainment, too.

What's the purpose of life?

Is it to knock some chick up then spend your days slaving away to feed her and the kids, make sure the kid doesn't die before you kick him out of the house and go back to what you were doing (and enjoying) before the kid came along? Is your purpose to produce more and more humans until the planet can't support them any longer? (Never mind the argument that it can't support us now.) Is your entire purpose in life to invent for yourself a purpose and then proclaim to your neighbors how totally awesome you are for inventing that purpose? Are you here merely to serve as a guardian and provider for others, a slave to their whims and desires? Does it matter that you're genetically related to them? If so, are you saying that adoption and orphanages are evil? If not, does it matter if you were the one that knocked up the chick or if it was the UPS guy?

Or are kids fun and rewarding? In which case, you knocked up that chick because it was fun not because you had a grand purpose in mind.

Is your purpose "to make the world a better place"? For whom? Your neighbors? People with the same skin color? People born in your state? What arbitrary subgroup of humans are you 'obligated' to provide for? Are you just saying that because you want to believe that you have a purpose and haven't discovered any of the arguments that suggest that you should find your own purpose?

The easy answer is "all of the above." That's a cop-out. That's saying that you don't want to choose a purpose; you'd rather just stumble into one.

Games

Oh, right. Games. I was talking about games.

Games are entertainment. We play them because they're fun and rewarding. Good games are fun and rewarding. Bad games aren't fun or rewarding.

Bad games are like work. They make you do stuff you don't want to do - like set your alarm for the middle of the night so that you can help your team defeat an enemy. If you don't buy into the goal at the end, then the whole process loses meaning.

Many games (and sports) are fun because we learn a skill; we get better at the game. Many people like that learning process. Others like it when the other guy loses; some like it when their performance gets better.

Some of the most fun I had playing first-person shooters was playing a heads-up competition against a guy that was way better than me. I was losing but I was learning. I could see myself every day getting better. That was a real rush. Some people can't stand losing; their goal is to win. They don't want to get better, they don't want to be a good player - they just want to win.

This comes from ego. How do you define yourself? Is it important to you that other people say that you are right? Or would you rather be right? Many times, people that feel that they are without power in their lives, without control over their own lives, seek an outlet where they can exert power and control over others. Some of those people become abusive cops or angry security guards; the rest cheat in online games to crush their enemies. They don't want to be good, they don't want to win - they want to crush.

Where does the desire for power and control come from? I'd posit it comes from having an imbalanced life. Many people have imbalanced lives. American high school seems to be the epitome; hence all the teenage ratfucks in online games that want nothing more than to crush their opponents.

The rest of us grow up, find balance, and look for games that are fun and rewarding. We try to get better at games, look for opportunities to learn, and judge our mastery by how often we do win.

But Maybe...

It could be that the purpose of your life is only to serve as a warning to others.

Tuesday, August 26, 2008

Difficulty Levels in Games

I enjoy a good challenge, but I don't like losing.

Most console games, e.g. platformers, have relatively low death penalities. Whether it's save points or infinite respawns, dying only sets you back a few minutes -- the time to run back to where you were before. Really challenging games might require that you re-run an especially difficult gauntlet -- the biggest setbacks might be ten or twenty minutes.

The Lego games -- Lego Star Wars and Lego Indiana Jones -- are prime examples. "Dying" means you lose some points, but you can get them right back most of the time. The biggest setback in the game is realizing you skipped a level, that you went through a one-way door and now have to replay the entire level to get back to a previous screen. Which is only relevant if you're trying to get all of the secrets/treasures/etc in a level.

I used to enjoy playing the Hardcore difficulty levels on FPS games, but the single-player portion isn't usually a skill challenge; it's more often annoying and time-consuming than challenging. I just want to see the content. After playing a few levels of Doom 3 on the highest difficulty setting, I decided to go back and play on a lower setting, just to breeze through it.

One of the side effects of that choice was that the game was much less scary. When the spooks and scares didn't suggest that I'd actually die, then I didn't need to fear them. It was actually fun, in a horror-movie sort of way, to conflate the fear of getting your progress thwarted conflated with the fear of the demons. Turn the lights on, play during the day, and crank the difficulty level down, and the game loses any emotional impact it might have had. If you like horror movies, you probably know seeing one late at night is the best time. When the house (or movie theater) is quiet, every little creak and groan can make you jump.

But the Lego games aren't about scares. They're about content. You get to play through the movies, which is fun, and you get to spend time looking for hidden secrets. Both are great fun, and neither one is the sort of challenge that can even have setbacks. I remember playing the old Sonic games, and Mario, and whatnot, and in those, death was a threat. But you only died while you learned a mechanic; after a while, death wasn't so much an ever-present threat as it was something to keep you on your toes. Ratchet and Clank, Banjo Kazooie, and Sly Cooper are similar. Dying (at least, dying several times and losing all of your Lifes) could set you back a good bit, maybe fifteen minutes, but you didn't die that true death very often.

As I mentioned in my previous post (about train tycoon games), I've been playing Railroad Tycoon 2 again lately. I bought RRT3 and Railroads! (aka RRT4) at the same time, and I'll go through them again later, but for now I'm playing through this high-rated classic game.

When you screw up in RRT2, you lose the mission. You don't have to win the mission. In fact, you could just Resign your way through the game and see what each of the levels is about. There's no content block -- the entire game is open to you as soon as you buy it. So what's the challenge? Somewhat like a toy, the challenge is up to you. You don't have to get gold medals, but it's the highest reward the game offers. So you've got a few choices -- play all the missions through, win or lose; win all of the missions; or win all of the missions with gold medals.

For me, getting the gold medals was my goal. It was a bit of a pain, because I had to learn how to make money. I played through all of the Canada mission (#6) and lost -- I had nowhere near enough money to win. I wasn't really sure why. I looked around a bit, and from the comments I saw, I realized that I needed to focus more on long-distance hauls, be less focused on getting strictly to each coast (going to Halifax early is a waste of time), and to spend more time supplying and exploiting the industries available. Another change I made in my second run-through was to be more careful where I laid tracks, exploiting terraforming and avoiding congested routes.

A lot of learning is required to do well. Unlike, say, Lego Indiana Jones, I can't just plow my way through an RRT2 mission and win. The game makes it hard to pay attention to elevations, but I can't just ignore them. The game makes it hard to mind consists and stations, but I can't ignore them either.

When I lost the Canada mission the first time, I felt like it was out of my control. I didn't know what I was doing wrong. When you lose a life in a platformer, it's usually pretty obvious what you did wrong -- there's lava there (oops, didn't see it the first time); you have to fight this boss a different way (and a few minutes of trial and error usually shows you how); or you need to time your jumps and swings and whatnot better. There are skills in some of those games, timing related skills, and usually practice is a trivial way to increase your skills.

In RRT2, I found out that it takes six years (about ninety minutes of real time) to send a train from Halifax to Vancouver. Geez! I started a year too late. Figuring out how long it'd take to send a train that far... is not really possible. The best you can do is to spend a half-hour testing and measuring, and that's a horrid waste of time. F that.

Platformers are often safe exploration games. Or, if you have good combat skills in the game, the challenge isn't too onerous. Once you defeat the foes, they stay dead, then you can go explore without hindrance. Other games force you to explore the mechanics -- how do you make money in RRT2? You have to tease the profit equation out of the game.

And here we get to what I ranted about in yesterday's post: the feedback loop for figuring out that equation is slow. Deadly slow. "F this, I quit" sort of slow. Lose the mission enough times and you go hunt down a FAQ. Why bother solving it by yourself? I kept losing the Whistestop Tour mission as my train ran out of sand, and I thought, wtf?! There's only one way to get the gold medal, and it requires (as the game often does) to ignore the help that the game offers. (That Whistlestop mission offers you an upgrade if you get to a town in time, but there's no way to get there -- none of the engines are fast enough to get close enough before you run out of sand.) These are trial-and-error lessons, but the downside is that you have to error a lot, and spend a lot of time doing so, before you move on.

Games should calibrate themselves to players. If a player doesn't have the skill or the knowledge to get a gold medal, platformers give them silver and bronze medals. They say, "thanks for playing, here's your twinkie" and tell you you did a good job and let you move on to the next game, brag to your friends that you finished, and score a few achievement points.

Telling the player "ha-ha! You lose! Now you have to do that all over again!" sucks. And it sucks in builder games where you build this big cool rail empire... then never see it again. You throw it away. As awesome and profitable and elegant as it was, it's gone. Oh, and cuz you lost? Yeah, you're throwing it away with nothing to show for it but some bruises and an admonition to try harder next time.

The skills you gain when playing sports and lose, at least, are something. Throwing away my cool rail empire and the hours I spent building it just to gain skill at beating the remaining levels -- that's not really a skill I want to be proud of. I can't say "I accomplished nothing last night but learning how to beat this game that I'm gonna play for a couple more weeks then never touch again." Who cares? Getting better at shooting baskets, or pitching, or hitting, and saying "well we lost and I sprained my ankle, but I think I learned a lot about the sport" is worthwhile.

Monday, August 25, 2008

Tycoon War : Transport vs Railroad

I've been playing Transport Tycoon and Railroad Tycoon II recently, so here's a post on the differences between them.

Obvious Stuff

Transport Tycoon covers all sorts of transport -- trains, planes, buses, trucks, ships, helicopters. Railroad Tycoon has only trains, but adds in economic 'tycoon' gameplay elements -- your "avatar" has a personal net worth, he can buy stocks and receive dividends. Some of the RRT2 missions focus on that aspect.

And that again is another major difference: TT is a toy, but RRT2 is a game. The first hour of TT gameplay is challenging, especially if you start with buses. Making money with buses and trucks is very difficult. They can pay for themselves, but expanding your empire with just road vehicles is definitely a challenge. But if you start building trains and hauling goods, it's very easy to make cash. Once you get a few coal trains running, money is no longer and object and it turns into a toy.

I like the toy aspect of TT. Once I have all the cash I care to spend, I start building giant, all-encompasing rail networks and elaborate switching and signaling systems. Elegant train networks are Art. But, since it's a toy, and because one needs to switch from diesel and steam trains to electric (rebuilding your entire network), and then later upgrade to maglev, you can't just continue making a more awesomest network. So I build up the network to a certain point then start over. Typically my 'games' last for one session, or a day. The next day I play, I start a new game.

Whereas with RRT2, after a few hours, you finish the mission and move on. You don't have to, but with the enticement of future missions and gold medals to be won, why stay with a finished mission?

Building Routes

First, to be clear, both games work with underlying square-tile engines. Track is built from tile to tile, and can go in eight directions (ie the four cardinal directions plus the 45-degree angles).

To build a route in TT, you have to lay track in straight stretches. Vertical climbs are very obvious; a given tile-to-tile segment will either be level, up one level, or down one level. The entire map might have eight or so distinct levels. Elevation changes are an important aspect of gameplay and I'll cover it in more detail later.

In RRT2, you can lay track tile by tile if you want, but the game provides an automatic track-stretching algorithm: select a start, drag to the end, and the game will figure out how to curve the track between the two points. Nearly every pair of adjacent tiles has an elevation change; elevation changes comes in .1 value increments, with slopes of up to 12.0 (or more).

A side-effect of these decisions is that track-laying is a critical gameplay element in TT, and not a concern in RRT2. You can be picky about how you lay tracks in RRT2, but why? The game generally discourages the player from being critical about the path that his trains take.

In TT, when two trains occupy the same track tile at the same time, they crash and burn. In RRT2, one train stops and the other passes. You can build two-way rails in RRT2, but that just means trains can go in both directions -- one can't overcome another. If you have a steep mountain grade or just a long stretch of track, and trains with varying engines and loads, in TT you can build extra rails. That, again, is part of the play to TT -- build efficient routes. In RRT2, since trains won't crash and building (and controlling) additional lines is difficult to do, you basically ignore the problem.

Efficiency is a big part of TT, and difficult to pay attention to in RRT2. Yet it has a very similar effect in both games, and is a critical component to successful route-building.

Elevation

One of the basic mechanics of both games is the option to choose which engine pulls a given train. Different engines have different speed characteristics -- fuel costs, maintenance costs, acceleration, reliability, and how well they deal with climbing. Even with the best, strongest engines, climbing up a steep slope (in TT, several levels; in RRT2, a slope over 2.0 or 4.0) causes a significant slowdown.

The smart track-builder avoids elevations as much as possible. When the money starts rolling in in TT, I start terraforming like crazy -- digging holes through hills, leveling mountains, in-filling valleys -- just to avoid level-changes. Fast trains means more profit. Both games reward quick delivery, and a train that's not climbing a hill can be delivering more goods, too. When you avoid hills, you win twice -- more profit from what carloads you do deliver, and the opportunity to deliver more carloads.

With TT's focus on track-building and the obvious level changes, it's easy to make efficient routes. It's a big part of the game.

RRT2, though.... It basically hides elevations from the user. Because of the fractional level changes and the isometric display, it's often hard to figure out whether a given stretch of land is level or slightly sloped. When you lay track, the UI will show you the level change from tile to tile, but it's not always obvious whether it's a climb or a descent. The game makes it hard to make efficient routes.

Implicitly, then, you're not supposed to be efficient when playing RRT2. Just build your stations and your trains and move on! This is one of the things that defines getting gold medals from missions vs silver or bronze -- if you pay extra attention to what's going on, turn on the grid, carefully lay your tracks, and even do some landscaping, you can dramatically increase the speed your trains take through some routes.

Stations

Station-placement is a minipuzzle in both games. It's surprisingly similar, because of the shared mechanic -- catchment area. TT stations are relatively cheap (tho maybe that's because I'm used to having more money than I need), and their catchment area is always four tiles from the edges of the station (you can create stations that are longer or have more tracks). RRT2 has three different station sizes, with each bigger and more expensive station having a larger catchment area.

RRT2 has missions and it's difficult to establish a cash cow, so you're always concerned about optimizing station placement. Stations are expensive. You're only going to build one in a town, and there's no options to build longer stations or multiple platforms, so you have to choose a good location. Elevation is a consideration, too, for the tracks coming in to a town's station.

Economy

Ok, so you bought your stations, laid the track, and now you need to figure out where to send trains. Both games have Industries that produce goods; some are strict producers (grain farms, cattle ranches, coal and iron mines), others are intermediates (especially steel), and others produce final goods (such as "food" and "goods"). Plus cities generate mail and passengers.

Trains make money by delivering goods that are in demand. TT cares less about 'demand' -- either a station accepts a type of good (and pays a rate depending on how far the good has travelled) or it doesn't. In RRT2, a station will have a demand rate for goods. In both games, stations pay more for goods that are delivered quickly -- especially passengers and perishable foods. Other goods, such as coal, don't "expire" and therefore the pay rate doesn't depend on how long a train takes to get to its destination. TT has a weird model, where it's very lucrative to haul coal across the entire map, which isn't realistic. It's a game, there's tons of unrealistic things going on, but this aspect of the economy model seems out of place.

Trains & Consists

Consists switch things around: in TT, a given train has the same consist throughout its entire life. You buy the engine, attack coal cars and passenger cars and mail cars, send it off, and (usually) never change what's attached. In RRT2, you can change consist at every station. It's easy to set up a route, with one train, that brings grain from station A to station B, and then carries baked bread (ie, "food" manufactured at a bakery from the grain you delivered) back. Unlike the other mechanics I've mentioned above, it's easier to tweak consists in RRT2.

Yet this fits many of the other gameplay elements in RRT2: you can be picky, but who's picky? Specifically, you can change the consist of a train right before it gets to a station (or even when it's unloading), so that it loads exactly what that station has available at the moment. If you spend a lot of extra time micro-managing the game, exploiting the finer points of the UI, you can dramatically improve your return.

I generally stop doing that micromanagement after a while, because it's a repetetive, mechanical task. It's not even a puzzle. It's almost the sort of thing I'd like to assign an algorithm to. More on that later!

Speed

TT's trains move much faster. Both games have map sizes that are roughly equivalent, and both have game-speed controls (letting game-time move faster or slower), so you'd think it wouldn't matter. But one of the side effects of this is that inefficient routes matter much more in RRT2. Since the missions are time-based ("achieve goal X by 1896"), you can't afford to waste time, and one inefficient route can kill you. It takes as much as six game years to cross a map in RRT2, whereas my slowest routes in TT take about four months, and that's for slow trains going up and down hills from corner to corner. Most of my "long-distance" trains take about three months to get to their destination; the vast majority hit a new station once a month. Since journeys take so freaking long in RRT2, several of the missions are to just make one trip -- say, send two trains from one side of the map to the other.

This effectively adds randomness to RRT2. Did this train make money this year? Did your company stock go up or down? Was the route so long the train ran out of sand and water right before it got to the destination? Did you not build the expensive sand, water, and maintenance sheds at the last station it was at? Doing well means either getting lucky, or building your lines to minimize dependence on all this randomness. You're not managing trains and delivering goods; you're figuring out how to build lines that are short, and get a bunch of trains to hit the stations where you built roundhouses.

The slowness of RRT2 also means that it takes years to see if a given plan works out. Was trying to branch out to enough remote locations to get that steel plant running a good move? Years later, you find out: no. Too late, the deadline for the mission is too close, start over. Or, just skip the mission. Play around a little bit, wait til it tells you you failed, and move on to the next mission. If you do that, RRT2 becomes a toy, too -- if you don't care about the goal, then the goal might as well not exist.

I want to succeed, though. I want to figure out how to build profitable train runs, to turn a small bit of starting capital into a big empire. Which means failing missions, and then playing them over and over until I get the gold medal. Bleh.

The Designer Told Me Not to Worry

I'm moving into meta-issues here; consideration of gameplay elements from a game-design standpoint.

It's easy to focus on the factors that a game makes obvious. When games make stuff obvious, the designer is saying "pay attention to this factor." When factors aren't obvious, when they're hidden, it's difficult to assume that you are supposed to pay attention to it. It's like the game designer is telling you not to worry about it.

TT makes elevation obvious. You see specific elevation changes, and work around them. You deal with whole units. RRT2 works with fractional units, and hides them, too, and on top of that gives you a tool for building rail lines that effectively avoids tweaking elevation changes. You can't see what the elevations are, so how are you supposed to take it into consideration? It tells you how steep the route will be, but so what? Can you really work around that? It's the sort of thing that I wind up just ignoring -- until I realized that I needed to pay attention to it, turned on the grid, and started getting obsessive.

Train Management

I'm just going to consider these two models as train-building games. They both provide more, but I want to look at them as lessons for building a similar train-buliding game. What lessons do they teach?

In both games, you spend money buying stations, laying track, and acquiring engines. Then you
make revenue by sending the trains around. Your score depends on how well you manage your engines, and how efficiently you played the station-placement and track-laying minipuzzles.

So, really, let's start there: your SCORE depends on how well you play those minipuzzles, and then how well you manage the resources you have available -- goods waiting at stations, and the trains you have to transport the goods around. Theoretically, the games should make that easy to do. Yet neither really does.

In TT, it's possible to open up a miniwindow for each train; a small version of the game window proper, showing where the train is in the world. If you open a bunch of these, you can see how your trains are doing. This is really only effective for seeing if the train is lost, or stuck in traffic. Checking out what it is carrying -- a full load or not -- requires opening up a sub-window. There is an All Trains window, and you can even put trains into groups to limit what you're looking at. The window shows profit and loss, and (for some car types) whether the car is full. But so what? This only tells you that a route is unprofitable. To change consist, you need to send the train into a depot -- which means taking the train out of service for a while. And also distracting yourself from doing anything else until the train gets to a station. You could leave the window open, and go build more tracks or something, but when I do that usually the train gets to the depot and I don't notice for a while -- and then I have to remember what I was going to do anyway. RRT2 lets you change consist immediately, tho it will only take effect the next time the train arrives at the station -- ie, cars won't magically appear or disappear while the train is en route.

(Speaking of which, RRT2 does let you replace an engine at any time, magically, wherever and whenever, while TT again requires that you send that train into a station. OpenTTD does have an option to auto-replace engines and road vehicles, though, which is nice. It's annoying to require sending the train to a depot, especially if the depot isn't on the line, so this is a bandaid over a bad feature. A better solution would be allowing the player to replace engines anywhere, anytime.)

In TT, you can also pop up miniwindows for each station, which lists the goods waiting for pickup. But since you can't actively manage consists, your primary option for changing what gets carried is to add more trains. Lots of passengers waiting at that inner-city station? Buy more trains!

RRT2 likewise has a trains-list view, which takes the entire screen and shows six whole trains! Omg! Six! The normal UI (ie not this trains-list window) has a listbox down at the bottom that shows all your trains, and it's a great tool. It shows the consist, whether each one of those cars is full (recall, in RRT2 a car is either empty or fully loaded; no in-between), how far it is to its next stop, the name of that next stop, current speed, status (needs water/sand/repairs), and the value of the cargo that it's carrying. This is great stuff -- this is everything you need to assess whether you've got a good route or not.

Except that it only shows four trains. When you've got a dozen trains running and a bunch of stations to manage, seeing only four trains is a kick in the teeth. And you can only look at trains OR stations, not both. The station info panel is also nice; it shows what goods a given station is supplying (and it what quantity), tho not what the demand level is. Again, the view is limited -- only two stations at a time.

Conclusions

Let's go back to my summary of what these games are about:
Your SCORE depends on how well you play those minipuzzles, and then how well you manage the resources you have available -- goods waiting at stations, and the trains you have to transport the goods around.
There are three minipuzzles in both games: station placement, track layout, and engine/consist choice. For the most part, in both games, once you've done any of these (say, placed one station), you don't go back and change the choice. You might tweak a train route, or change a consist, but you can't spend the entire game doing that. Maybe that's how you consistently win the gold medals, but it seems awfully obsessive to me. Tweaking consists at every train arrival is just dull. Plus, I don't want to drag each mission out into a 12-hour marathon session, because (like I said above) if something doesn't work out, you have to replay the whole mission all over again. Bleh bleh bleh.

The strategic element to both games is similar -- what industries to you chase down? Do you branch out to Northern cities, or stay focussed on reaching the west coast? This is great; it's a big part of transportation-empire building. Good stuff.

I just want better tools.

I want TT to tell me, on, say, hover-over, what's waiting at a station. Missions would be fun, too. Some players put out quiz-like puzzles, saying stuff like: "fix this juncture" or "extend this network to include Town X without interrupting the existing traffic." More of that, plzkthx. Get rid of depots. Make train building easier. Since, for the most part, you build a train once, set its route, then leave it alone forever -- flexible tools for managing that route make no sense. The tools should be optimized for the tasks that you perform often. Don't give me the chance of sending a train into the middle of the lake -- if you want me to choose a station, give me a list of the fucking stations. Srsly. Fix the long-distance gravy train and it could be a fun challenge to build a network encompassing the entire map.

RRT2 should start by getting rid of the tycoon aspect. Other than the missions where it's the specific goal, it's completely ignorable. In fact, you should ignore it, because milking money from the company via dividends makes it much harder to grow the company. I haven't even gotten into how labyrinthine the stock-market aspect is. There's a lot of statistics there, but wtf? Who cares? And graphs beat pages of text any day -- TT and other Chris Sawyer games have all had great charts. Give me those. Give me good train and station overview tools. Give me explicit terraforming tools. Let me see more than four trains or two stations at a time, without hiding everything else.

Sometimes when I'm playing TT I think, "I wish there was more variety in the buildings." That's a great thing for a designer to have players complain about, because it means they're not bitching about everything else. And I have been bitching this whole post, but I still do enjoy the game.

Tuesday, August 12, 2008

Mental Economy - Communicating with Programmers Part I

Good programming style is more a matter of communicating well with other programmers than capturing an algorithm elegantly. Sometimes that other programmer is you, in six hours or six years. Being a good programmer starts with good problem-solving skills and a broad knowledge of both algorithms and APIs. Good employees are disciplined and self-starting. Beyond that, on almost any scale of project, is writing code that can be easily understood.

There are a few aspects of inter-programmer communication that I want to cover. The first is mental economy -- how much data your brain can work with at one point. Part two is about jargon, and in the third part of this series I'll cover grammar.

I was working on ellipse-drawing code the other day and, while mired deep in the math, realized that I didn't have a lot of bandwidth to deal with other bits of the code. I've talked to (and, unfortunately, worked with) a number of programmers that think they're great if they can solve really complex problems and fix deep bugs in spaghetti code. I think it's worse having a manager that thinks the mark of a good programmer is fixing deep bugs in spaghetti code.

The problem with spaghetti code is that you spend all your mental powers unraveling the spaghetti, rather than solving the problem. Part of the problem with the ellipse code I was working with was that the paper I was reading from had bugs. So, not only did I have to read and understand what the code was doing, I had to reverse-engineer the algorithm they were using. They had comments like "it's faster to do it this way", without explaining why, or even what the 'stupid' way was.

I liken the brain to a CPU. An x86 CPU, to be specific, according to its architectural definition rather than its actual implementation, which is even worse. Details aside, it only has about 7 (plus or minus two) registers to play with. Having to deal with chasing down the meaning of a new or unknown or poorly-explained piece of data means saving some state off to long-term storage (e.g. a piece of paper), exploring a bit, and then reconstructing where you were before.

That's the point of variable names, subroutines, and classes. It's not to elegantly capture behavior; the purpose of "elegantly capturing behavior" is a means to the ends -- the end of minimizing the subroutines that you'll subject your brain to when you try to parse code.

You can either be born brilliant, or trained. About half of the great programmers I know have learned to be brilliant. They're rational, methodical, skeptical, and mentally disciplined. Writing code that is well-organized makes it easier to read code, and that makes that code easier to extend, modify, and debug. They "work smarter, not harder." They don't have to waste brain power untangling spaghetti, or mentally keeping track of dozens of variables and routines and equations.

If you haven't read that George Miller paper (the "plus or minus two" link above), I highly recommend it.

Thursday, June 26, 2008

Rant: A Tale in the Desert

my god I just had to rant.

I played ATITD before, so I'm loosely familiar with it, but I wanted to play it a bit more and try out some of the mechanics. But mein gott it's pissing me the hell off.

WoW did a lot of things right. Previous MMOs were hard-core, and one of the ways that they were so is that you either knew how to play already or you weren't welcome. You have to figure out everything on your own. WoW just tells you the answer most of the time. I had to find some tar in Egypt (much easier name than ATITD). OK, fine, I have to find it on my own. But the game didn't even give me any hints. What's it look like? Can you give me a rough idea of where to look? In old-school MMOs, you're just supposed to wander around until you figure it out on your own.

Some people love that, but those people are in the minority. I used to think I liked that mechanic, but I GREW UP, DAMMIT. The game isn't about figuring out where the fuck they hid the tar, it's about choices and exploration. "What the fuck is tar and where do I find it?" isn't exploration; it's confusion.

Finding cool stuff is exploration, like waterfalls or hidden buildings or new zones or statues or ruins or whatever. Fog of War in the minimap helps that -- tell me where I haven't been. A "here's everything" minimap means that you don't "discover" the Universities in Egypt. (There's no mechanic in the game to tell you, anyway.)

  • Movement is just lame. Click-to-move means when I'm trying to move I instead sometimes click on objects. And then I want to punch something.
  • You can't move with keys AND have a chat window open.
  • You can't click in scrollbar elevators to move chat by a page.
  • The camera SUCKS. You can't control pitch independent of zoom.
  • The camera SUCKS. You have to move the mouse to the edge of the window to yaw the camera.
  • You start the game far away from anything interesting.
  • To do ANYTHING requires driving through a bunch of menus.
  • The intro quest has like 30 steps. WTF? That's not a gentle introduction. It's a "gentler" introduction.
  • When you try running down a slope that's too steep, you get a pop-up dialog that you need to dismiss before continuing. And since you click to move, chances are you're going to get that dialog a lot. This is exactly the sort of thing the player should be left to figure out on their own -- STEEP SLOPE = BAD. They hide the tar but you give us an idiot dialog for steep slopes? Please.
  • You can't split windows that start off stacked.
  • Recipes are hidden. What's it take to build a chest? Try building a chest! If you don't have the ingredients, it will tell you. If you do have the ingredients, it won't tell you, it'll just dump you in the construction interface.
  • Making boards? Oh. My. God. You have to stand there and hit 'p' 200 times to make 200 boards, a common ingredient in low-level stuff. At 2 seconds per board, that's 400 seconds, about 6 minutes of staring and hitting a key... That isn't a game, it's work.
  • I could go on, but really, kill me now.
One of the main mechanics in the game is running around. Travel time isn't fun. It's shouldn't be a barrier to play. If a game had no travel time, then you'd just sit in one spot (maybe away from everyone else) and do your own thing. Keeping locations separate means getting there is an accomplishment. But my god keep it in check. Here, it's a lame attempt to extend the time it takes to get anything done. WoW requires some travel sometimes, but a play session isn't 90% running or waiting. A lot of the 'trick' to ATITD is figuring out how to use your time while you wait for some lame timer to expire. You can't just do what you want.

WoW lets you open a bunch of chat windows for example; here, you can only look at one of the System, Main, local, and Whisper windows at a time. Oh, and since you can't use the keyboard to move if you have the chat window open, either you use the lame camera and mouse-click-to-move (which makes me want to punch things) or you keep chat closed just so you can move around easily. THIS GAME IS HARD TO PLAY. Not hard as in gameplay; just telling the game what I want to do (like, "move over there") is a challenge. The UI is the challenge.

WoW does recipes very well. One window per tradeskill. The top half is all the recipes you know, the bottom half is (1) a listing of the ingredients you need, (2) a display that tells you how much of each of those ingredients you already have, so you can tell at a glance what you need, and (3) a display of what the hell the thing you're creating is. What's the difference between a Chest and a Large Chest? Build them and find out! ATITD will be damned if it's gonna help you out! If you don't have two monitors (with the second one opened to someone else's website), then you just get the "challenge" of figuring out what the fuck is going on.

Small steps and frequent rewards = happy player base. The designers don't seem particularly interested in that kinda stuff; the game had an archaic interface when it first came out, and it's only barely improved.

If you're doing one action a bunch, you can make a floating window with that button in it, but ... bleh. Figuring out where commands are hidden is bad gameplay. Mechanics like "what do you get when you cross these two grape strains, and what does that do to wine?" are great. Brilliant. Exactly what I want. Hide that stuff, let me figure it out, I'll love you for it. BUT DONT HIDE THE DAMN "plant vine" BUTTON. Dumbass.

One of the main mechanics in the game is running around. Travel time isn't fun. It's shouldn't be a barrier to play. Travel time keeps you from doing everything without meeting other people. Here, it's a lame attempt to extend the time it takes to get anything done. WoW requires some travel sometimes, but a play session isn't 90% running or waiting. A lot of the 'trick' to ATITD is figuring out how to use your time while you wait for some lame timer to expire. You can't just do what you want.

Take gathering wood. It's a grind. Click on a tree, run to the next tree, cycle, repeat, repeat, repeat, swear, log out, uninstall... It doesn't take any longer to gather stuff than it does in WoW; in fact, I think it takes less time. Hmm. I tolerate Herbing in WoW; but that's profitable. Skilling up and leveling up shouldn't be a grind. If I want to grind for extra cash, that's one thing. But grinding for basic mats is excessive.

My beef here is how boring the activity is. Herbing is ... mostly boring. I tolerate it because ... I want something special? I know I'm doing it for the cash? I guess the point really is that it should be better in WoW; that herbing is lame. Another major point is that I've already bought into the rest of WoW; ATITD feels like nothing but grinding. Gather wood (boring), make boards (boring), run to the university (boring, and frustrating because of the camera), run back, go gather more slate because the wood plane broke, grind away for another 20 minutes... There's no fun anywhere there.

Fun would be trying out crossbreading wines, or flax, or beetles.

ATITD is not quite "death is fun!" but it's damn close. It really really doesn't want me to play it.

I'm gonna play my 24 free hours and see what I can learn from that, and then it gets erased. FUCK THIS GAME. It's so sad, the economy and tradeskills are really deep and complex and interesting and really appealing to mechanics-explorers like me...

Then again, I could just read the webpages. I'd learn more, and I wouldn't be so bored. What I've been doing is reading the web (and working on this blog) on one computer, while I mindlessly run around or do whatever on the other machine. Downtime is time to socialize, but ... meh? The whole game is downtime. I reckon the stuff that I'm hoping is fun (crossbreeding, etc) is going to be just as boring.

And I need to be like level 12 anyway. Each "level" is roughly one of these grind-quests. So, just to get to what I want to look at is going to take that much grinding.

I'm torn. I think I'm going to play out the 24 hours because (1) it's free, and (2) I'll be able to do it while reading and typing on my second computer.

So, should you check it out? That depends on your grind-tolerance, and whether you've got a monitor big enough to both play the game and do something useful at the same time. Two machines helps a lot, because I can leave the game window focused and just mash the 'p' key every two or three seconds without having to worry about window focus. So, if you've got a similar setup, give it a try.

I really recommend learning about the game because the tradeskill stuff is great.

The rest... /sigh.