I've learned a lot of computer languages in my time. And I've learned a lot about learning languages.
Right now, I'm picking up Ruby on Rails for an ultra-top-nonsecret project for work. I'm actually reading a book on learning Rails: a nice book except for a few code typos.
In all honesty, I like the typos. When you compile something and it doesn't work, you're forced to go back through whatever you've typed and try to understand where it is failing. In tutorials like these, it's usually pretty easy. Even if you typed the tutorial carefully considering every line (which you didn't, nobody does), you don't really have a deep, semantic understanding of what's going on since you didn't design the code. You don't understand the architecture of the program.
Learning the architecture of a language is the hardest part, assuming you're learning a language with new architectural features and not just another Java clone. (If you don't know what I'm talking about, you need to learn LISP. Now.)
I admit, some of the languages I have learned, I have learned "badly". That is, I ignore the architecture and simply use "standard" architecture with new syntax. Bad practice, so why did I do it?
Because tutorials are crap.
This doesn't reflect on the makers of the tutorial! The best tutorials in the world... are crap. It's sort of like trying to teach someone how to make a spaceship using only quotes from eighties movies. No matter how clever your references are, it's not gonna fly.
And it's funny. Flawed tutorials actually teach you more, because they make you struggle to get your code to work. In the process, you learn more about the language than the rest of the tutorial combined. The rest of the tutorial is just a reference - it's that moment when you have to fix it that it gels.
It stands to reason that this could be done on purpose.
More specifically, it stands to reason that it could be done in a game.
I've tried creating games of this nature before, but it's very difficult to get the interface to be good enough. My incomplete mini-game Turing's Prison (now mysteriously not available, hm...) was a mediocre first stab.
Using a game, you could teach any number of programming concepts in any sequence. In my mind, it teaches you a concept, then pushes that concept to its complexity limit. Then it teaches you a new concept that simplifies all that complexity. It does all of this in the framework of a game: programming robot(s) seems most likely, although in Turing's Prison I used the code to control the rooms instead.
For example, you learn about basic single-tape, single-head Turing machines. You program your robot to do simple tasks using them. Then you slowly add more complexity: multiple tapes, multiple heads, registers, IO pipes...
Eventually the player has built a "Turing program" of very high complexity. Building a more complex Turing program would take more than one programmer and a lot of hours.
So you introduce something like assembly with jumps and hardware interrupts. That gets more complex, so you introduce something that wraps functions, like Basic. From there you can keep adding functionality in any way you please: object-oriented code, lambda functions, generative code, unit tests, databases, networks, distributed processing, alternate IO...
I can easily see it being fun. But... programming it is very hard!
What do you think?
Wednesday, October 31, 2007
Tuesday, October 30, 2007
Scary...
People are posting their scariest gaming moments now that it's almost Halloween.
Most people who know me would probably think that my scariest game was System Shock II, but that's just not true. SS2 has loads and loads of atmosphere, but it's only above average at actual fear.
Others might think Aliens vs. Predators 2, which was a scary freaking game, so long as you played the marines.
Some might say one of those new-fangled survival horror games, like the one where you take photographs of ghosts. Maybe they're scary, I can't seem to get any time to play them. But they're not the scariest.
The scariest game of all time is a tie between Silent Debuggers and Cyber-Cop.
The culture of fear evolves over time, of course. Back in the day, a werewolf movie could be scary. Nowadays, we aren't even scared by movies like Saw, just vaguely startled from time to time. So if you played these games today, you would find them unplayably poor and therefore probably not very scary. (Yes, he's transforming into a werewolf, we get it, get on with it!)
At heart, they are the same game. Which is why they are tied.
Both were first person view. Cyber-Cop was real: you could look around, even up and down, shoot cameras, so forth. Silent Debuggers was that old-school "90 degree fake" 3D.
Both featured very complex inventory systems - so mind-bogglingly complex you could never really tell if you were equipped right, or if you were totally screwed. Cyber-Cop's inventory system was more complicated than any I have seen before or since, including tabletop games. Both featured complex level design where the levels breathed terror. In Silent Debuggers, you had a central level that was a giant elevator. It descended with you towards the final fight. Except that... the enemies would attack the various rooms and DESTROY them.
Rooms like "recharge your health", "upgrade weapon", etc, etc. GONE FOREVER. You would watch their health dwindle as you hunted for the damn red speed demon.
Both had enemies that were scary as hell. Not because of their design or whatever. Because you can't SEE them. You're stuck in this labyrinth, and you've got these motion detectors beeping like mad, and something is howling on the other side of the wall HUNTING YOU...
Basically, these games were like AvP2, except with System Shock II's difficulty. Their sheer output in terms of fear, adrenaline, and simple scalp-tingling terror is unmatched.
And you've never heard of them.
Most people who know me would probably think that my scariest game was System Shock II, but that's just not true. SS2 has loads and loads of atmosphere, but it's only above average at actual fear.
Others might think Aliens vs. Predators 2, which was a scary freaking game, so long as you played the marines.
Some might say one of those new-fangled survival horror games, like the one where you take photographs of ghosts. Maybe they're scary, I can't seem to get any time to play them. But they're not the scariest.
The scariest game of all time is a tie between Silent Debuggers and Cyber-Cop.
The culture of fear evolves over time, of course. Back in the day, a werewolf movie could be scary. Nowadays, we aren't even scared by movies like Saw, just vaguely startled from time to time. So if you played these games today, you would find them unplayably poor and therefore probably not very scary. (Yes, he's transforming into a werewolf, we get it, get on with it!)
At heart, they are the same game. Which is why they are tied.
Both were first person view. Cyber-Cop was real: you could look around, even up and down, shoot cameras, so forth. Silent Debuggers was that old-school "90 degree fake" 3D.
Both featured very complex inventory systems - so mind-bogglingly complex you could never really tell if you were equipped right, or if you were totally screwed. Cyber-Cop's inventory system was more complicated than any I have seen before or since, including tabletop games. Both featured complex level design where the levels breathed terror. In Silent Debuggers, you had a central level that was a giant elevator. It descended with you towards the final fight. Except that... the enemies would attack the various rooms and DESTROY them.
Rooms like "recharge your health", "upgrade weapon", etc, etc. GONE FOREVER. You would watch their health dwindle as you hunted for the damn red speed demon.
Both had enemies that were scary as hell. Not because of their design or whatever. Because you can't SEE them. You're stuck in this labyrinth, and you've got these motion detectors beeping like mad, and something is howling on the other side of the wall HUNTING YOU...
Basically, these games were like AvP2, except with System Shock II's difficulty. Their sheer output in terms of fear, adrenaline, and simple scalp-tingling terror is unmatched.
And you've never heard of them.
Monday, October 29, 2007
skate. portal. and skill.
I have waxed poetic on Skate before (or, if you want to be all marketing-droney, "skate."). Basically, Skate is to Tony Hawk what Tony Hawk is to Skate or Die. Skate is mind-bogglingly fluid and natural, a game of skill rather than of stat improvements.
Since it is a game of skill, that means that the play experiences of various players will be extremely different. For example, I am not as skilled as Darius but am better at halfpipes, and Jeff is the king of lame falls.
However, Skate's "plotline" assumes a linear skill growth throughout the game. This is fine until the player plateaus, at which point they boggle at these requirements. I thought I was doing pretty well, until my cameraman started asking for 90 foot grinds and 4000+ points in a single take. If I kept improving as fast as I had been, I could probably do these. But player growth is never linear, and mine is approaching the asymptote.
Portal is the opposite. If you can't beat Portal, your spatial reasoning is significantly below the gamer average. However, Portal offers a huge number of special levels and challenges for players with more skill. Skate, on the other hand, explicitly says, "hey, if you're not both talented and obsessive-compulsive, you don't get to see the X Games and other cool ending shit, screw you!"
This isn't a problem with the gameplay of Skate. It's a problem with the overall game's design. A game with a weak ending... all too common these days.
So, lesson of the day: if you're building a skill game, that's great! Just don't make it require extraordinary skill to complete the game. Make the high-skill stuff extras, or on-line competitions, or whatever.
Alternately, you can do something a bit more generative, so you can support a lot of different kinds of skills. For example, I would love to build a skate.park.
Since it is a game of skill, that means that the play experiences of various players will be extremely different. For example, I am not as skilled as Darius but am better at halfpipes, and Jeff is the king of lame falls.
However, Skate's "plotline" assumes a linear skill growth throughout the game. This is fine until the player plateaus, at which point they boggle at these requirements. I thought I was doing pretty well, until my cameraman started asking for 90 foot grinds and 4000+ points in a single take. If I kept improving as fast as I had been, I could probably do these. But player growth is never linear, and mine is approaching the asymptote.
Portal is the opposite. If you can't beat Portal, your spatial reasoning is significantly below the gamer average. However, Portal offers a huge number of special levels and challenges for players with more skill. Skate, on the other hand, explicitly says, "hey, if you're not both talented and obsessive-compulsive, you don't get to see the X Games and other cool ending shit, screw you!"
This isn't a problem with the gameplay of Skate. It's a problem with the overall game's design. A game with a weak ending... all too common these days.
So, lesson of the day: if you're building a skill game, that's great! Just don't make it require extraordinary skill to complete the game. Make the high-skill stuff extras, or on-line competitions, or whatever.
Alternately, you can do something a bit more generative, so you can support a lot of different kinds of skills. For example, I would love to build a skate.park.
Sunday, October 28, 2007
Friday, October 26, 2007
Constructing Artificial Emotion: Me Being an Ass
So, I've read Daniel Cook's (Danc's) Gamasutra article. I don't like it. I don't like it because he's wrong.
"Them's pretty strong words! What makes you so sure?"
Well, because he's wrong in the same way I was wrong when I came up with it. Do you think the eyes of the White Tower are blind?
The theory is far from unique. Years ago, I personally came up with it and tested it myself. I nibbled, chewed, refined, eventually came up with key theory, as linked above. It's re-discovered by every theorist who stumbles through. It is a deeply flawed theory, for all the attractive simplicity.
However, flawed theories are fine if they allow for useful implementation. This DOES NOT.
He aggressively pursues this theory that by putting familiar emotional content in front of someone, they will feel a strong emotion. Unless that emotion is IRRITATION, that isn't so. There are dozens of other conditions required, ALL of which seem more useful to study than this theory.
For example, attention, wanting to be in the mood, not being in a different mood, being distractionless, not having shifted the context, not having shifted your feelings on the matter...
Plus, most humans feel deeply about things they've never felt personally. I've never been really hungry. Every religious Jewish person has been hungrier than me. Yet pictures of starving people upset me greatly. I'm sure you also have many zany associations that are not explained by this theory.
There are a lot of theories that might explain it. Even now, you're probably thinking, "oh, but sympathetic simulation solves that..."
... or was that just me?
The fact of the matter is that simulating intelligence of any kind is extremely difficult. It's easy to think that you HAVE solved something, but it falls apart when you try to implement it. This is not a case of the industry not listening to academics. This is a case of the academics not having a clue.
A big part of the problem is simplicity. Even if we had actual human brains hooked into the games, they would not be convincing humans. At best, they would end up like WoW characters ("LFT? lvl60shaman?"). More likely, they would end up as a state machine that occasionally got into a snit.
This is made very clear if you are familiar with how humans in isolated, extreme conditions begin to act. For example, smaller polar bases. Within a few months of isolation, their social behavior has simplified to a state machine you would be ashamed to put into a game. Plus, they tend to obsess over dumb details, such as Sunday's dinner. Lack of deep IO.
Even the most complex simulated world is so heavy-handed and low-grain that a polar base looks downright lush. Hell, a broom closet looks downright lush.
Increasing the dexterity with which an NPC can interact with the world doesn't help, because there's no significant world to interact with.
To me, it's obvious that we won't get very far by trying to simulate from the bottom up. Even trying to get a complex enough world is computationally impossible.
We have to cheat.
Danc is aware of this on some level, and is cheating by storing up elements that have been proven to cause emotions in some way for some audience subset. The idea being that once you have a stock of these elements, you can use them to do something meaningful. Something that causes emotion.
But the approach is much too heavy-handed. I don't want to see my face in a game, and I certainly don't want to see my life. I'm not even sure such a game would be psychologically safe: if done right, it would totally fuck you up.
Besides, the best stories are told by someone with a vision. They aren't remixing collected symbols, at least not on such a simplistic level. The content in their stories is carefully crafted to cause emotion, and they use content we've never experienced. I've never been on a quest to destroy a ring, or flown through a nebula, or gotten mixed up with the mafia. But these things cause a predictable emotion in me and millions of other people.
As ever, the point of a story is to say something.
I would much rather work on a system which helps game designers with THAT.
...
music is much better at causing emotion, anyway
"Them's pretty strong words! What makes you so sure?"
Well, because he's wrong in the same way I was wrong when I came up with it. Do you think the eyes of the White Tower are blind?
The theory is far from unique. Years ago, I personally came up with it and tested it myself. I nibbled, chewed, refined, eventually came up with key theory, as linked above. It's re-discovered by every theorist who stumbles through. It is a deeply flawed theory, for all the attractive simplicity.
However, flawed theories are fine if they allow for useful implementation. This DOES NOT.
He aggressively pursues this theory that by putting familiar emotional content in front of someone, they will feel a strong emotion. Unless that emotion is IRRITATION, that isn't so. There are dozens of other conditions required, ALL of which seem more useful to study than this theory.
For example, attention, wanting to be in the mood, not being in a different mood, being distractionless, not having shifted the context, not having shifted your feelings on the matter...
Plus, most humans feel deeply about things they've never felt personally. I've never been really hungry. Every religious Jewish person has been hungrier than me. Yet pictures of starving people upset me greatly. I'm sure you also have many zany associations that are not explained by this theory.
There are a lot of theories that might explain it. Even now, you're probably thinking, "oh, but sympathetic simulation solves that..."
... or was that just me?
The fact of the matter is that simulating intelligence of any kind is extremely difficult. It's easy to think that you HAVE solved something, but it falls apart when you try to implement it. This is not a case of the industry not listening to academics. This is a case of the academics not having a clue.
A big part of the problem is simplicity. Even if we had actual human brains hooked into the games, they would not be convincing humans. At best, they would end up like WoW characters ("LFT? lvl60shaman?"). More likely, they would end up as a state machine that occasionally got into a snit.
This is made very clear if you are familiar with how humans in isolated, extreme conditions begin to act. For example, smaller polar bases. Within a few months of isolation, their social behavior has simplified to a state machine you would be ashamed to put into a game. Plus, they tend to obsess over dumb details, such as Sunday's dinner. Lack of deep IO.
Even the most complex simulated world is so heavy-handed and low-grain that a polar base looks downright lush. Hell, a broom closet looks downright lush.
Increasing the dexterity with which an NPC can interact with the world doesn't help, because there's no significant world to interact with.
To me, it's obvious that we won't get very far by trying to simulate from the bottom up. Even trying to get a complex enough world is computationally impossible.
We have to cheat.
Danc is aware of this on some level, and is cheating by storing up elements that have been proven to cause emotions in some way for some audience subset. The idea being that once you have a stock of these elements, you can use them to do something meaningful. Something that causes emotion.
But the approach is much too heavy-handed. I don't want to see my face in a game, and I certainly don't want to see my life. I'm not even sure such a game would be psychologically safe: if done right, it would totally fuck you up.
Besides, the best stories are told by someone with a vision. They aren't remixing collected symbols, at least not on such a simplistic level. The content in their stories is carefully crafted to cause emotion, and they use content we've never experienced. I've never been on a quest to destroy a ring, or flown through a nebula, or gotten mixed up with the mafia. But these things cause a predictable emotion in me and millions of other people.
As ever, the point of a story is to say something.
I would much rather work on a system which helps game designers with THAT.
...
music is much better at causing emotion, anyway
Watson
So, there's a bit of a fervor over James Watson, one of the scientists who originally discovered the structure of DNA back in the day. Apparently, the 79 year old made some racist comments. As a result, he's basically been excommunicated. Speaking arrangements have been canceled, he's being not-so-gently forced from his job, etc.
I have mixed feelings about this, of course.
While I dislike racism as much as any desperately evenhanded white guy, I can't help but think that this obviously political ostracism is pretty silly.
People seem to forget that this guy is almost EIGHTY.
His racist comments aren't something I can take seriously. He's from another time, another culture. Hearing him be racist is sort of like hearing a old Japanese fisherman talk about leaving the first fish for the god of rain. It has no significant effect on what you think of mainstream Japanese culture, all it does is remind you where the culture is coming from.
In my mind, ostracism is brutal to the point of freakishly bizarre. He wasn't even trying to be mean. He was trying to be ethical and helpful, in his condescending old white guy way.
This guy devoted his whole life to making fairly good scientific advances, and then he says something dumb and out-of-touch about a political hot button and gets kicked out? Can you imagine how he feels? "Thanks for all the good times, but we hate you now. Get the fuck out!"
I feel ashamed for the British. They lost a chunk of my respect.
A better response would have been to play it condescending. Gloss over the comments with "ha, how out of touch..." Let everyone know that's not your culture anymore. This "BURN THE WITCH!" reaction is just silly.
I have mixed feelings about this, of course.
While I dislike racism as much as any desperately evenhanded white guy, I can't help but think that this obviously political ostracism is pretty silly.
People seem to forget that this guy is almost EIGHTY.
His racist comments aren't something I can take seriously. He's from another time, another culture. Hearing him be racist is sort of like hearing a old Japanese fisherman talk about leaving the first fish for the god of rain. It has no significant effect on what you think of mainstream Japanese culture, all it does is remind you where the culture is coming from.
In my mind, ostracism is brutal to the point of freakishly bizarre. He wasn't even trying to be mean. He was trying to be ethical and helpful, in his condescending old white guy way.
This guy devoted his whole life to making fairly good scientific advances, and then he says something dumb and out-of-touch about a political hot button and gets kicked out? Can you imagine how he feels? "Thanks for all the good times, but we hate you now. Get the fuck out!"
I feel ashamed for the British. They lost a chunk of my respect.
A better response would have been to play it condescending. Gloss over the comments with "ha, how out of touch..." Let everyone know that's not your culture anymore. This "BURN THE WITCH!" reaction is just silly.
Wednesday, October 24, 2007
OpenOffice... for FREE?
Update Java now and get OpenOffice FREE!
To get a FREE copy of OpenOffice, the global standard in free Microsoft Office compatible productivity software, just click the More Information link below.
heh.
To get a FREE copy of OpenOffice, the global standard in free Microsoft Office compatible productivity software, just click the More Information link below.
heh.
Subscribe to:
Posts (Atom)