Posts Tagged ‘being difficult’

The simple trick to making good game AI


Contention: Stardock’s Brad Wardell (Or is it Brad Wardell’s Stardock?) is often upheld as a good AI programmer, and Stardock games as containing good AI.

But from all I could ever see, neither was shockingly exceptional (and I’m not just saying this to be catty, though the Galactic Civilizations series, from the beta of the first game I played on OS/2 back in the day, was always something I wanted to like more than I ever actually did).

Good AI is like good Art Direction. You choose your battles to fight on your own terms so you can easily make yourself look good. Art design sets player expectations: VVVVVV isn’t criticized for its poor character modeling or voice acting because the game very intentionally sets its aesthetic limits at about the level of Atari games. Wii Sports avoids the expectations of any sort of detailed character animations or normal-mapped textures or environmental destruction and all such noise by utilizing a simple stylized aesthetic.

The visual experience of these games is designed so that asset creation is not an overwhelmingly complex and expensive job. And they manage to meet the requirements of player expectations without too much trouble. It’s good design.

Likewise, the gameplay of various Galactic Civilizations games happens to be designed in such a way that it’s easy for the AI to act meaningfully and responsively within its framework. (I don’t particularly enjoy this game design as a player, but that’s in the details.) Now: if a realtime chat interface was added to Galciv so that you could do diplomatic negotiations with AI opponents in real-time, as you would would a human, the game would fall on its face because it’s really, really hard to fight that particular battle.

The trick is to set expectations that you can fulfill, and fulfill well. This is why you won’t see me making an AAA-style 3d game.


There’s a great thread on Quarter to Three on the very subject of game AI and mechanics design scope with figures like Paradox‘s Johan Andersson, Vic Davis, and Civ V’s (now Stardock’s) John Shafer weighing in. Go there. The topic is discussed with far more depth.

The Line Between Life and Work


As a freelancer, I find it difficult to draw a line between my life and my work. It costs me something that I’ve been finding it hard to put into words. And then the other day I ran into a blog post on this very subject by one Rob Zacny, a freelance writer. See his post Rat at Rest; it puts very well into words what I’ve been feeling as a freelance artist, to quote:

“If I were running the rat race, I’d have a respectable reason for feeling burned out or overwhelmed. I could blame my boss or my coworkers. I could resent the drudgery of office work, the early mornings and the late nights. … I could sympathize and forgive myself, because the fault could reside somewhere outside of me.”

“Most of my friends have jobs, and they have lives. The two don’t perfectly overlap. But if you work for yourself, chasing a passion? You enjoy no such existential escape.  You chose to do something, you and your loved ones have made sacrifices so that you can do it, and now you’re tired? You need a day off? Too fucking bad. Get out of bed and get over to your desk and be creative. … The answer to every problems is always mercilessly simple: work harder.”

Add to this the chaos, the uncertainty of income that comes when one doesn’t have a stable paycheck coming in every two weeks (But are any jobs stable anymore? Heh, oh well.): The only way I can find some peace of mind and security is that work harder. Perhaps there’s some event this evening, friends want to hang out, want to just watch a movie and relax? It’s too bad: I need to work. And if I don’t I’ll feel guilty the whole time I’m off doing something else, so I won’t even really enjoy myself or relax, the whole thing is ruined anyway.

There is a solution, however. (Yes, this is getting awfully negative, so let’s turn it around.) Consider that a “normal” job imposes a hard line between life and work on you, there are hours when you’re on the job and then there’s life. There’s a place of work and a place of rest. As a freelancer, you must impose a hard line between life and work on yourself. You define for yourself some office hours and you stick to them – say, “I’ll work 10-6” and if there’s a distraction you tell them “Sorry, those are my office hours”. (Though let’s be honest, the person you really need to tell this to is yourself.)

A major factor is the problem of working from home as a freelancer – then there’s really no physical separation between life and work. That monitor is always staring at you, saying you could be doing something useful with your time, you lazy bum. A solution? Impose that separation on yourself: Set up an office in a distinct and separate room, though I found that impossible in a small apartment, so take up with a shared office in a co-working setup. When you’re at the office, you’re in work mode, when you’re at home, you’re in home mode. You are allowed peace of mind.

Plus, the presumably businesslike atmosphere of the shared office helps one stay focused. I’m much more self-conscious about hitting refresh on Facebook if there’s someone who might catch me slacking off. In some soft sense, by involving other people in your work environment you are held accountable to them. What with being the social animals we are, this actually works.

You’ve just got to draw these lines for yourself because no one else is going to do it for you.

The vagaries of the internet’s attention: More Dwarf Fortress design/dev commentary


I checked my blog stats one morning a few weeks ago and saw this:

Apparently my post on Dwarf Fortress and Goblin Camp got reddited by someone and things kinda took off.

It is a strange thing to suddenly get a whole lot of attention when I’ve mostly just been shooting my mouth off about random things for the sake of itself. I saw people who read my post commenting on points I raised, and I saw people who misread my post comment on points I didn’t even make. Others commented on points I somewhat unintentionally made due to lazy and unclear writing. Others picked up on an exaggerated sense of urgency and conflict between Dwarf Fortress and Goblin Camp that I put into the writing to make it more interesting (presumably, mostly to myself and a couple readers of this blog).

It’s all a bit overwhelming, and it’s always upsetting when it looks to me like someone is wrong on the internet. No wonder writers can get frustrated with their words being mis/re/interpreted!

Right, so there are a few points raised in various comments that I’d like to specifically address now that time has made mild all heated feelings. I’ll uncharitably paraphrase a comment or criticism then address it.

1. “Learn to use the interface/keyboard commands/job manager, noob!”

I assure ya’all that I am familiar with the job manager and that I’ve learned the keyboard commands of DF inside and out. I am indeed not just some noob who can’t be bothered to learn the system and who should go back to playing Farmville or Bejeweled. In my post I left out detailed explanation and critique of the particulars of DF’s user interface for the sake of brevity. It still stands that the systems are esoteric, unwieldy, and – the real kicker – may interact very poorly with the game systems (eg. “Job cancelled by Urist McUrist. Need this or that material!” x1000). Results of supply chain breakdowns are occasionally disastrous, which may or may not be as fun as advertised, depending on your attitude. This last point is where Goblin Camp’s “pull” job orders work very nicely (if things still work as they were described) compared to Dwarf Fortresses “push” job orders.

Let me explain: To make high-level things in DF, a slew of materials need to be processed through various steps, and I need to give the order for each step either by-hand or through the job manager of them. To make a steel item I would need to designate the mining of coal, an iron ore, and a flux material, then order the smelting of the ore into pig iron, order the processing of pig iron with flux into steel, then order a steel goblet to be crafted. I have to push each material and process from the bottom up. Consider an alternative: What if I could just order a steel goblet from the workshop and the workshop sent an order for steel to the smelter which would, in turn, send out an order for iron ore, flux, and coal to be mined from active veins of each? This is “pull” versus “push”. It’s one action from me vs. a whole list of actions.

In the end, it’s about whether the decisions the player has to make are meaningful or meaningless; I don’t want a game to treat me as a mindless automaton. It is largely irrelevant if I mine iron ore square 1 vs. iron ore square 2 (unless square 2 opens on to a cavern full of giant cave spiders, but them’s the breaks). As I was saying, there is a difference between meaningless micromanagement (eg. hand-designating every square to mine out in DF) and meaningful micromanagement (eg. unit ability control in StarCraft).

If I am micromanaging actions that can be handled just as meaningfully by the computer, if it is a problem that has only one reasonable solution that I have to provide over and over, then I feel like I’m wasting my time, and that is the core of my objection to the intense micro of DF.

A couple quick counter-counter arguments:

  • Yes, the “more is more” design philosophy of Dwarf Fortress is indeed its particular charm and I love finding diorite, gabbro, rhyolite and so on even if they could all be summed up as “rock”. However, this quality of excessive detail in DF  is not mutually exclusive with non-tedious micromanagement or a transparent UI/game interaction scheme.
  • Yes, Tarn is ‘working on it’. I certainly respect the problems he is dealing with and I respect him as a game creator — this does not mean it is illegitimate to critique his creation. Which brings me to my second point…

2. “Dwarf Fortress is still in alpha, you can’t expect too much from it.”

Well, yes and no.

It is an alpha in the sense of not being done, but it isn’t in the sense that tons of people are playing it right now as a game. This is not an “alpha” in the usual sense of a linear software development process with an alpha, beta, and final release (and then some followup patches and expansions). Dwarf Fortress has an ongoing, responsive, and open-ended donation-driven development model which is quite unlike the thinking surrounding a traditional commercial game. The effect of this is that DF is a process, not a product.

I contend that it is quite legitimate to comment on the process of DF’s creation as it is ongoing.

There were probably more comments that I should address, but that’ll have to wait for another time. (I will say that I do find all the interest and discussion around Dwarf Fortress completely fascinating.)

I’ve got one final point for this post:

Based off everything Tarn has said in interviews and his dev log, I am struck by the thought that what he wants Dwarf Fortress to be is not the same as the game that most people are playing. Tarn is making Slaves to Armok 2; Most fans are playing Dwarf Fortress. Tarn is making a fantasy world simulator that is focused more on creating a Roguelike/RPG experience than on the Dwarf-themed city-builder which everyone else cares much more about. This is reflected in what development has been focused on: extreme detail for creatures and combat versus streamlining the interface and usability of the city-building game.

And I think that’s really the answer: Tarn is not (deeply and ultimately) in it for fortress mode. Other people, other projects – like Goblin Camp – are in it primarily for fortress mode, for the fantasy city-building simulation game. [To clarify, I wouldn’t say that Tarn is not interested in fortress mode, just that it is not the primary objective of the whole project of creating a fantasy world simulation to serve as a medium for genre narratives. In other words, it’s not his goal to make the best fantasy city-sim it could be, so it is somewhat nonsensical to expect it. With that observed, all this nattering about the design and development of DF is purely academic. I can live with that because it’s fun to write about what DF is, isn’t, could be, and should be. ]

ps: “If you think you’re so smart, why don’t you make your own game?”

Sure! I’ll, uh, keep you posted on how that works out. [More: I really want to do this. I did have a number of months free a few years ago, but I didn’t get as far as creating an actual playable game. It was, however, an intense learning experience. I’d love to do the game-auteur thing again when I’m in a financial position to do so.]

Against Pixel Art Formalism


Pixel art is for the pixels!

I don’t care for being formalistic about pixel art, of adhering to a limited palette or carefully anti-aliasing my lines by hand, of using all-or-nothing transparency (actually, I do the latter two more often than I’d like to admit). What matters is what I wish to do with the aesthetic of pixels – and what specifications I must meet for the graphics to work at all in the given platform. It is ridiculous to throw away perfectly good tools like brush effects, gradient tools, and overall image adjustments. Tedium is not artistically uplifting.

If the art is about pixels, it’s pixel art. It doesn’t matter how I make it.

I actually followed all the “rules” of pixel art to draw these. Oops. Then I used the adjust levels tool in Photoshop. Ha! I have overthrown the tyranny of aesthetic canon!

There! It’s not a manifesto unless you try to sound controversial in the first paragraph.