Community brains...
I read an interview of a Halo 2 developer eons ago, without which I probably wouldn’t have gotten nearly as far as I have on Zyps. It was chock full of good ideas on networking.
And now I’m using the AI bits as well… He mentioned that the enemies had to “take turns thinking” due to the XBox’s limited processing power. Basically, an AI was given a few processor cycles to size up its situation and choose its action, which it would then dumbly perform until its next turn to “think”.
Zyps is getting really slow when there are dozens of creatures with 5-7 behaviors each on the screen. It’s time to assess splitting up my processor time as well.
Right now the plan is to add Behavior#condition_frequency, which will take an integer. If you set behavior.condition_frequency = 3, then every third update, it will get a chance to select a new group of targets to act on dumbly for the next 3 updates.
The problem with this is that if they’re created simultaneously, every behavior where condition_frequency = 3 will be called on the same update, meaning the first two updates will be ultra-smooth, and the third slow as hell.
I think I have a way to spread things out evenly: assign an incrementing offset to each Behavior that will decide which update number it receives from those allocated to its update frequency.
Here’s a prototype, with a Counter that shares its “brains” with all other Counters in existence:
Read more...OMG OMG OMG it’s SO much FASTER!!! This is freaking awesome!
Oh, and I was able to keep the Behavior API backwards-compatible. I’m pretty proud of that.
I still have to run CollisionConditions every update to ensure things don’t pass through each other, though, which sucks because it’s the slowest Condition I have. The GUI may develop telekinetic breeding and eating if I have to change those to ProximityConditions.
Read more...Enso 2.0 - Arggg nonononono!!!
Just saw Aza Raskin’s post to the Humanized Weblog regarding “Enso 2.0”…
…and I hope I’m wrong, but I’m filled with a sense of impending doom. The champions of amodality are turning to the Dark Side.
Enso shouldn't make you type all of "open" every time
Yes it should. If a command is important enough to use repeatedly, the user will get very fast at typing it. If it’s so important, make the command short (and “open” is short enough).
Enso should gracefully handle the case where there's no convenient place to enter text
Give us enough commands that we never have to leave our editor, then. (Remember The Humane Environment? The Canon Cat?) Don’t introduce unneeded complexity into the Enso interface itself.
Read more...So, I am driving down the 202 on my way to Google to see Vint Cerf’s talk, and silhouetted in the sky above Camelback is a blimp. I guess dirigibles come along with the Super Bowl…
Read more...zyps.exe!
Yesssss! This is the stage I was hoping to get to - the Zyps GUI compiles painlessly with rubyscript2exe. This means I can distribute to anyone with a Windows machine. (And maybe OS X as well.)
I still need to set up an installer/uninstaller before I can send to any download sites, but you can try it right now - just save and run this .exe. It [em]should[/em] be easy enough to figure out on your own (and if it’s not, add a comment or e-mail me).
Read more...