Black and White totally rules -- there is nothing else like it. Peter Molyneux (who also developed Populous, Magic Carpet, Dungeon Keeper, etc) demonstrated it at CGDC a year ago. It's been in production for a long time, but it's well worth the wait, and it just went gold so it should be at the stores soon.
Logitech was demonstrating Black and White with an "iFeel" force feedback mouse at this year's CGDC, and it was so exciting that I spilled my coffee all over myself. There are many things in the world that you can interact with, and your "user agent" is a creepy hand, so the tactile feedback works quite well. It's a good thing Black and White doesn't use any "iSmell" technology, since the monster poops out lots of big turds all over the village, until you train him to fertilize the fields. The game keeps statistics on every single turd, and you can even pick them up and throw them at your enemies!
I've been playing it for a few days (I begged Will Wright for a pre-release copy when I saw it on his desk), and I think it lives up to the hype, and was well worth the wait! Molyneux wanted the first game published by his new company Lionhead to be a real blockbuster, and I think he made the right call to keep working on Black and White until it was ready.
The reason for the censorship in The Sims is not to shield the player from seeing penises, vaginas and boobies. The fact is that there is no nudity -- they're featureless like barbie dolls and gi joes -- but the pixelization shields you from that disturbing fact. It gives your imagination a chance to fill in all the naughty bits, even if they aren't really there.
More like "Porting Sims back to TV", where it came from.
The Sims object creation tool (the mother of all objects) is called "Edith," after Edith Bunker, the first female character in the game. (You can guess the name of the first male character. Hint: not Meathead.)
The point is that you can put your own personally recognizable characters into the game: yourself, your family, friends, enemies, heros, etc. Check out some of the web sites with Sims skins, if you want lots of recognizable and unique characters.
I enjoyed the historical stuff in Stephenson's book so much, that it really made me wonder where he drew the line between fiction and reality. When I finished The Cryptonomicon (after rolling my eyeballs at its typical Stephensonian over-the-top ending), it left me quite curious to know more about Turing's life.
The Cryptonomicon provoked me to read the new American edition of "Alan Turing: The Enigma" by Andrew Hodges. It was out of print for the longest time, but the American edition was just recently published. It's an excellent book, entertaining while being both historically and scientifically accurate, and it's gotten straight 5 star reviews on Amazon (although neither the author nor the subject were straight). Tom Jennings [inventor of FidoNet and founder of the Little Garden ISP] wrote the first review of the original edition, and he rates it as one of the most important books he's ever read. So I bought a bunch and gave them out as xmas presents!
Life does not depend on unpredictability. If something's really alive, then it would still be alive whether or not you could completely predict its behavior. The ability to predict the behavior of an organism does not by definition kill it. Life doesn't necessarily depend on randomness, either.
You can totally predict the evolution of Conway's game of Life, and other deterministic cellular automata, given the initial configuration. It's not necessary to solve the halting problem in order to predict the state in the future -- you just execute the completely deterministic rules. Simple. Conway's Life is awkwardly Turing complete, but it's inefficient for the purpose of general computation (much less efficient that a Turing machine). But at least it means that theoretically you could implement a higher level of Conway's Life (or any other computable function) in terms of a lower level Conways' Life implementation, but it would take a whole lot of time and space.
Andy Weunsche at the Santa Fe Institute has come up with a beautiful way to plot out the deterministic state map of any cellular automata rule: it's a colorful branching graphical fish-eye tree representation of the topology of every possible state and transition of a cellular automata rule (the basin of attraction fields).
You can see for yourself how a given cellular automata rule is completely deterministic, by viewing all the possible interconnected states at once. "Garden of Eden" states (that there was no possible way to arrive at through the rule, so they must be original conditions) are drawn at the extreme tips of the branches, that converge into cycles of the basins of attraction (repeating dead-ends where there is now way to break out). This is really wonderful stuff, well worth scrolling through the whole gallery:
On the other hand, the halting problem has to do with one program's ability to predict if another program will halt (not to just simply simulate the program's execution at a higher level: because if the other program doesn't halt, the simulator will never halt either, therefore failing to give the result). It means that there are undecidable questions that a deterministic Turing complete program can't answer: even if the answers are out there somewhere, they just can't be reached by a Turing machine. It also depends on being able to represent any program as data (a number), that can be given to another program as input, which is essential to the Universal Turing Machine in "On Computable Numbers".
The paradox can be demonstrated by asking such a hypothetical program (called "HaltingProblem") to predict whether another subtly (yet insideously) modified version of itself, called "HaltingProblemNot", will halt.
Given a program "HaltingProblem" that attempts to predict if another program halts (taking as input data that program and its inputs), you can always construct another program "HaltingProblemNot" to give it as input, for which it will never be able to give you a correct answer.
"HaltingProblemNot" just has to call the first program "HaltingProblem" as a subroutine, and then it inverts the return value (not just logically, but by halting if it says it won't halt, and infinitely looping if it says it doesn't halt). An obnoxious trick (called diagonalization), but it's proven to work every time. The fatal Achilles' heel of logic -- Godel strikes again.
No matter how cleverly written, the original program "HaltingProblem" is doomed to fail given "HaltingProblemNot" and another program as input, by either looping infinitely or returning the incorrect result.
This does not mean the mind is any more powerful than a Turing machine, nor unpredictable. Nobody really knows for sure. The only thing we know for sure is that there are many things we'll never know.
There's a lot of interesting research on cellular automata, including a classic book by Tom Toffoli and Norm Margolis from MIT Press, called "Cellular Automata Machines", that describes some Turing complete rules for programmable cellular automata logic.
Years ago I implemented the rule described in the book, and a cell editor that I used to make a few circuits. Here's a circuit for a 2-d cellular automata rule that supports passing signals along wires and performing logical operations, with cross over, fan out, conjunction and negation -- all you need! Theoretically you could program anything -- but timing is everything.
The top left is an "or" gate, with a couple of looped inputs that endlessly repeat the same values, and a graphical "ground" that the output flows out of (not connected to anything). To its right is an xor gate, and after that are a couple loops and delay lines. Below those is a half adder, and a criss-crossing fan out that duplicates the pair of signals a couple of times. Below that are a couple of half adders composed together to make an adder with carry. Next to last is a part of a circuit that I can't remember what it does, and under that is a pulse widener, that duplicates a signal, delays it, and ors it back into itself to make it into a longer train of bits.
It was really fun making these, since the simulator and the graphics editor were running at the same time, so it was like soldering live logic, with signals flowing through it in real time!
I've lost track of the original Forth source code for the rule, which is based on a Margolis neighborhood using a lookup table, but it's described in the book.
Of course the granddaddy of cellular automata is John von Neumann himself, who designed a complex self reproducing cellular automata "universal constructor" on graph paper before it was ever practical to simulate them. It's reproduced in some historical ACM monographs on computer science.
Here's an actual implementation of John von Neumann's universal constructor, which is absolutely amazing to watch going about its business of reproducing itself:
Put a mote around the front door, with only a one-way diving board, and your uninvited guests will die more quickly.
My suggestion for handling that situation of being trapped with no doors, was that the trapped characters would eventually start running a full tilt up against the walls, smashing into them again and again until they finally broke through a hole in the shape of their bodies, then they would run off into the distance, never to be seen again, leaving behind a new silhouette shaped door in the wall like a Roger Rabbit cartoon. But somehow that just didn't make it into the final design... But at least you can easily kill people by building walls around them.
My favortite stupid ai bug, that I wanted to leave in but unfortunately was fixed before shipping, was when a guy was sitting on the toilet taking a nice lesiurely poop, with the pixelated censorship around his crotch. The maid noticed that the toilet was clogged, but didn't care that it was in use, so she walked into the bathroom, whipped out a plunger, thrust it down through the guy's lap, and started vigorously jerking away with both hands on the erect plunger handle sticking up between the guys legs! The censorship effect didn't make it look any less obscene.
Violent games do worse things than turn people into killers. If only they really did turn people into killers, more kids would murder their families and friends, and maybe it would clean up the gene pool a bit. But even worse, violent games turn people into ASSHOLES, who we now have to put up with, day in and day out, because murdering them is illegal! For this legacy, we have Doom and Quake to thank.
Originally, the "ai" in the game was smart enough that it would always figure out the best thing for the characters to do all of the time, but that meant that anything the poor player told them to do would just make their lives worse off. That resulted in bad game play. So Will Wright decided to tone down the ai and "blur" their motivation, so they choose randomly between several good actions to do, instead of always choosing the best. Good game play is much more important than having the best possible ai.
There's also a good reason for the way time is distorted: it amplifies the importance of building a house with "good feng shui". If your characters take 15 minutes to take out the garbage, you need to rearrange your furniture and add some doors and trash cans, so they can live more efficiently. That's the whole point of the game! It's about building an efficient household, and the family of Sims evaluates how good your design is, by living in it.
I ported The Sims to Linux months ago, at the beginning of last summer, but Loki took ages to answer my email, and just didn't seem to be interested... Go figure. Anybody know what's up with them these days?
Maxis was interested though, because the next vewrsion of The Sims Online will run on a Linux server. So now I'm working on optimizing it to run the multi player server side of the game on Linux without any graphics.
If Loki had ever gotten their act together, then The Sims for Linux could have been published a while ago. I busted my ass and did a lot of work on my own time to try to make it happen, but Maxis isn't interested in publishing games on Linux, and I can't publish it all by myself. Are there any companies out there besides Loki who are interested in porting The Sims Online client to Linux? Does anyone want to start a new Linux game company?
I've already done most of the hard work (it takes 2 hours to compile), and it'll be a slam dunk top seller. I hope to publish it soon after the Windows version is released, but I've totally given up on Loki.
Back in 1992, I ported SimCity Classic to Unix, and added multi player capability, multiple views, chat, shared whiteboard, pie menus, and a bunch of other features. A year or so ago, I ported it to Linux and optimized it so it runs at least 17 years a second on my 500 mhz laptop, or more than a million years in less than a day. SimCity Classic runs so fast, it's a twitch game! And only on Linux. I hope to publish that as soon as I can hammer out a new contract with Maxis.
It's clear you're never worked for a real game company. Certainly there are exceptions, but I know some really excellent programmers at EA. The people writing the hockey games are hard core math freaks, who can translate their knowledge into intricate low level code on the Playstation 2. There aren't a lot of people who can do that, but they do exist in the real world, and I'm glad they're working on games instead of weapon systems.
Mario 64 is a great example, and Shigeru Miamoto is a true genius who people should be emulating, instead the losers who designed Quake.
He thinks deeply and cares about the people who will be playing the game. Take the character animation of Mario, as controlled by the player. It sacrifices realism for playability, in a way that is a great call. When Mario is facing one direction, and you move the joystick in another direction, what does he do? Does he take a few seconds to execute a perfectly realistic standing turn, then start walking in the direction you want him to go after he turns around? No! He pivots instantly, and starts walking in the direction you want, right away without any delay. This is imporant because the movement of the character is directly controled by the player, who would become quite bored and frustrated if they had to wait for Mario to turn around all the time.
There are many other excellent design decisions in a game like Mario 64, but they're subtle and expertly woven together into a classic game that a wide range of people can play for many hours. The guys designing Quake were too busy thinking about their red hot sports cars and platinum blond trophey girlfriends, to care about the people who would actually be playing the game.
No, I think the statement was very badly conceived and shows how typically brainwashed and deeply in a rut the writer is.
Quake players are conditioned to expect desolate, badly designed, intellectually bankrupt worlds that don't have anything in them that isn't there for a specific purpose. If there's an oil tank, or anything else not just painted on the wall, you know it must be there for a reason, since no game designer of the Quake ilk would put a prop in the game simply for atmosphere or decoration. The Quake worlds are so barren and devoid of complexety, that whenever you see a scrap of paper on the floor, you can be sure that the game hinges on it. Quite unlike real life.
You're working for the wrong company. Maxis has a many excellent women running the show, designing and programming the games, and doing the grunt work. But if your only reason for going to work at a place like that is to meet women, you'll be disappointed because they're way out of your league, and have much better things to do than putting up with you trying to hit on them.
There are physical reasons to restrict yourself to the technology, and there's no way to get around them. There are no reasons to restrict yourself to one particular genre, except for a lack of imagination and creativity. If that's you're problem, then you should be flipping burgers instead of designing games.
Now graphics are 20x faster than they were a few years ago. So fucking what? The games aren't 20X more fun, and making the graphics any faster isn't going to help. Hardware designers should concentrate on FUN ACCELERATORS! Just 2x the fun would be a major improvement.
Actually, Sun might sue you for using OpenWindows2000, and even if they lost, the shrill nasal whining of their lawyers might drive you to suicide. Better stick to BrokenWindows.
Doh! FTP originally stood for Fuck The Pope, not Fuck The Police. (I got it confused with an NWA song...) Fucking the Pope is a much better idea than Fucking the Police, since he needs it a lot more, and doesn't fuck back as hard.
FTP Software never sued anybody over the File Transfer Program they named themselves after.
Probably because the use of the initials FTP goes way back before the history of computers, popularized by graphiti artists as an abbreviation for "Fuck The Police", often used alongside FTQ for "Fuck The Queen".
-Don
Logitech was demonstrating Black and White with an "iFeel" force feedback mouse at this year's CGDC, and it was so exciting that I spilled my coffee all over myself. There are many things in the world that you can interact with, and your "user agent" is a creepy hand, so the tactile feedback works quite well. It's a good thing Black and White doesn't use any "iSmell" technology, since the monster poops out lots of big turds all over the village, until you train him to fertilize the fields. The game keeps statistics on every single turd, and you can even pick them up and throw them at your enemies!
I've been playing it for a few days (I begged Will Wright for a pre-release copy when I saw it on his desk), and I think it lives up to the hype, and was well worth the wait! Molyneux wanted the first game published by his new company Lionhead to be a real blockbuster, and I think he made the right call to keep working on Black and White until it was ready.
-Don
-Don
-Don
The Sims object creation tool (the mother of all objects) is called "Edith," after Edith Bunker, the first female character in the game. (You can guess the name of the first male character. Hint: not Meathead.)
-Don
-Don
The Cryptonomicon provoked me to read the new American edition of "Alan Turing: The Enigma" by Andrew Hodges. It was out of print for the longest time, but the American edition was just recently published. It's an excellent book, entertaining while being both historically and scientifically accurate, and it's gotten straight 5 star reviews on Amazon (although neither the author nor the subject were straight). Tom Jennings [inventor of FidoNet and founder of the Little Garden ISP] wrote the first review of the original edition, and he rates it as one of the most important books he's ever read. So I bought a bunch and gave them out as xmas presents!
-Don
-Don
You can totally predict the evolution of Conway's game of Life, and other deterministic cellular automata, given the initial configuration. It's not necessary to solve the halting problem in order to predict the state in the future -- you just execute the completely deterministic rules. Simple. Conway's Life is awkwardly Turing complete, but it's inefficient for the purpose of general computation (much less efficient that a Turing machine). But at least it means that theoretically you could implement a higher level of Conway's Life (or any other computable function) in terms of a lower level Conways' Life implementation, but it would take a whole lot of time and space.
Andy Weunsche at the Santa Fe Institute has come up with a beautiful way to plot out the deterministic state map of any cellular automata rule: it's a colorful branching graphical fish-eye tree representation of the topology of every possible state and transition of a cellular automata rule (the basin of attraction fields).
You can see for yourself how a given cellular automata rule is completely deterministic, by viewing all the possible interconnected states at once. "Garden of Eden" states (that there was no possible way to arrive at through the rule, so they must be original conditions) are drawn at the extreme tips of the branches, that converge into cycles of the basins of attraction (repeating dead-ends where there is now way to break out). This is really wonderful stuff, well worth scrolling through the whole gallery:
http://www.santafe.edu/~wuensch/gallery/ddlab_gall ery.html
On the other hand, the halting problem has to do with one program's ability to predict if another program will halt (not to just simply simulate the program's execution at a higher level: because if the other program doesn't halt, the simulator will never halt either, therefore failing to give the result). It means that there are undecidable questions that a deterministic Turing complete program can't answer: even if the answers are out there somewhere, they just can't be reached by a Turing machine. It also depends on being able to represent any program as data (a number), that can be given to another program as input, which is essential to the Universal Turing Machine in "On Computable Numbers".
The paradox can be demonstrated by asking such a hypothetical program (called "HaltingProblem") to predict whether another subtly (yet insideously) modified version of itself, called "HaltingProblemNot", will halt.
Given a program "HaltingProblem" that attempts to predict if another program halts (taking as input data that program and its inputs), you can always construct another program "HaltingProblemNot" to give it as input, for which it will never be able to give you a correct answer.
"HaltingProblemNot" just has to call the first program "HaltingProblem" as a subroutine, and then it inverts the return value (not just logically, but by halting if it says it won't halt, and infinitely looping if it says it doesn't halt). An obnoxious trick (called diagonalization), but it's proven to work every time. The fatal Achilles' heel of logic -- Godel strikes again.
No matter how cleverly written, the original program "HaltingProblem" is doomed to fail given "HaltingProblemNot" and another program as input, by either looping infinitely or returning the incorrect result.
This does not mean the mind is any more powerful than a Turing machine, nor unpredictable. Nobody really knows for sure. The only thing we know for sure is that there are many things we'll never know.
Gilda Radner summed it up:
Years ago I implemented the rule described in the book, and a cell editor that I used to make a few circuits. Here's a circuit for a 2-d cellular automata rule that supports passing signals along wires and performing logical operations, with cross over, fan out, conjunction and negation -- all you need! Theoretically you could program anything -- but timing is everything.
http://catalog.com/hopkins/art/circuit.gif
The top left is an "or" gate, with a couple of looped inputs that endlessly repeat the same values, and a graphical "ground" that the output flows out of (not connected to anything). To its right is an xor gate, and after that are a couple loops and delay lines. Below those is a half adder, and a criss-crossing fan out that duplicates the pair of signals a couple of times. Below that are a couple of half adders composed together to make an adder with carry. Next to last is a part of a circuit that I can't remember what it does, and under that is a pulse widener, that duplicates a signal, delays it, and ors it back into itself to make it into a longer train of bits.
It was really fun making these, since the simulator and the graphics editor were running at the same time, so it was like soldering live logic, with signals flowing through it in real time!
I've lost track of the original Forth source code for the rule, which is based on a Margolis neighborhood using a lookup table, but it's described in the book.
More stuff on cellular automata:
http://www.catalog.com/hopkins/art/cell.html
Of course the granddaddy of cellular automata is John von Neumann himself, who designed a complex self reproducing cellular automata "universal constructor" on graph paper before it was ever practical to simulate them. It's reproduced in some historical ACM monographs on computer science.
Here's an actual implementation of John von Neumann's universal constructor, which is absolutely amazing to watch going about its business of reproducing itself:
http://alife.santafe.edu/alife/software/jvn.html
The paper computers would be great for implementing cellular automata, that you could draw on with a pencil while they ran in ferrociously real time!
-Don
-Don
My suggestion for handling that situation of being trapped with no doors, was that the trapped characters would eventually start running a full tilt up against the walls, smashing into them again and again until they finally broke through a hole in the shape of their bodies, then they would run off into the distance, never to be seen again, leaving behind a new silhouette shaped door in the wall like a Roger Rabbit cartoon. But somehow that just didn't make it into the final design... But at least you can easily kill people by building walls around them.
My favortite stupid ai bug, that I wanted to leave in but unfortunately was fixed before shipping, was when a guy was sitting on the toilet taking a nice lesiurely poop, with the pixelated censorship around his crotch. The maid noticed that the toilet was clogged, but didn't care that it was in use, so she walked into the bathroom, whipped out a plunger, thrust it down through the guy's lap, and started vigorously jerking away with both hands on the erect plunger handle sticking up between the guys legs! The censorship effect didn't make it look any less obscene.
-Don
-Don
There's also a good reason for the way time is distorted: it amplifies the importance of building a house with "good feng shui". If your characters take 15 minutes to take out the garbage, you need to rearrange your furniture and add some doors and trash cans, so they can live more efficiently. That's the whole point of the game! It's about building an efficient household, and the family of Sims evaluates how good your design is, by living in it.
-Don
Maxis was interested though, because the next vewrsion of The Sims Online will run on a Linux server. So now I'm working on optimizing it to run the multi player server side of the game on Linux without any graphics.
If Loki had ever gotten their act together, then The Sims for Linux could have been published a while ago. I busted my ass and did a lot of work on my own time to try to make it happen, but Maxis isn't interested in publishing games on Linux, and I can't publish it all by myself. Are there any companies out there besides Loki who are interested in porting The Sims Online client to Linux? Does anyone want to start a new Linux game company?
I've already done most of the hard work (it takes 2 hours to compile), and it'll be a slam dunk top seller. I hope to publish it soon after the Windows version is released, but I've totally given up on Loki.
Back in 1992, I ported SimCity Classic to Unix, and added multi player capability, multiple views, chat, shared whiteboard, pie menus, and a bunch of other features. A year or so ago, I ported it to Linux and optimized it so it runs at least 17 years a second on my 500 mhz laptop, or more than a million years in less than a day. SimCity Classic runs so fast, it's a twitch game! And only on Linux. I hope to publish that as soon as I can hammer out a new contract with Maxis.
-Don
-Don
-Don
He thinks deeply and cares about the people who will be playing the game. Take the character animation of Mario, as controlled by the player. It sacrifices realism for playability, in a way that is a great call. When Mario is facing one direction, and you move the joystick in another direction, what does he do? Does he take a few seconds to execute a perfectly realistic standing turn, then start walking in the direction you want him to go after he turns around? No! He pivots instantly, and starts walking in the direction you want, right away without any delay. This is imporant because the movement of the character is directly controled by the player, who would become quite bored and frustrated if they had to wait for Mario to turn around all the time.
There are many other excellent design decisions in a game like Mario 64, but they're subtle and expertly woven together into a classic game that a wide range of people can play for many hours. The guys designing Quake were too busy thinking about their red hot sports cars and platinum blond trophey girlfriends, to care about the people who would actually be playing the game.
-Don
Quake players are conditioned to expect desolate, badly designed, intellectually bankrupt worlds that don't have anything in them that isn't there for a specific purpose. If there's an oil tank, or anything else not just painted on the wall, you know it must be there for a reason, since no game designer of the Quake ilk would put a prop in the game simply for atmosphere or decoration. The Quake worlds are so barren and devoid of complexety, that whenever you see a scrap of paper on the floor, you can be sure that the game hinges on it. Quite unlike real life.
-Don
-Don
-Don
-Don
-Don
-Don
-Don
FTP Software never sued anybody over the File Transfer Program they named themselves after. Probably because the use of the initials FTP goes way back before the history of computers, popularized by graphiti artists as an abbreviation for "Fuck The Police", often used alongside FTQ for "Fuck The Queen". -Don