The Animal Farm

September 25th, 2007

Eternal Sonata

I recently finished Eternal Sonata (ES), clocking in at around 18 hours, and I’m ready to give my impressions.

I’ve never played a game that tried so hard to send a message and execute that so poorly. For easily 95% of the game, you’re facing standard RPG fare, even less so because the characters have little depth. There are a few scenes where ES deviates somewhat, but they are too long-winded to be genuinely interesting. It’s not until the final scene - the very lsat scene - that the developers try to cram something halfway unique into the storyline, but it’s done in such a haphazard way as to be nearly incomprehensible, and it’s also just not that interesting. This is also the point where the messages, which were less direct and were neatly tied into the narrative, are laid out in a very long sermon from the main characters. The messages themselves are OK, but nothing you haven’t seen before in better told stories. So yea, as far as storyline goes, I can’t recommend this.

Artistically, the game is a masterpiece. The art is amazing. Prettiest thing you might ever see. The character designs are vibrant and interesting, especially Chopin. All the environments were gigantic and carefully crafted. My only problem here is the enemy design, which was relatively uninspired. Musically, the game is also stellar. Not just Chopin’s works, which of course are great. The original music is pretty hip too.

In terms of gameplay, things are fairly good, but not amazng. There are constantly subtle tweaks to the battle system which force you to change your play style slightly, and the tweaks are typically good. The quasi-real time combat stays fun and entertaining throughout, and even though it should be crazy repetitive, that was never a problem. World-map exploring was your typical fare, with the mini-game of “collect and try score pieces” being the most worthless diversion ever. Level designs are decent, and you’re not typically forced to battle more than you’d like. Overall, I enjoyed the play experience.

While it’s not the best RPG around, not nearly good enough for my top 5, there are certainly worse ways to spend your time.

Yes, five. If I use three, Zach uses one, and you use one, that makes five.

September 24th, 2007

WoW’s back.

This past weekend I started playing WoW again. It is not something I am particularly proud of, so back off. I enjoy the game but ever since I hit 70 and started instancing, I haven’t really felt the sense of progress of old WoW. In old Wow, I was able to get some loot each week that was better than my current gear. But for some reason, at 70 my luck has run dry. I would say I have ran about 30ish instances over the entirety of the summer and have never seen a piece of gear that was an upgrade. This annoys me on three fronts:

1: Each item has about a 10% chance to drop, given that I have run the instance 30 times without seeing any of the items, we can say .1^30 = 10^-30. That is the probability of that happening. I know that each time is independent and therefore I could theoretically run infinity number of instances and never see the gear, but considering that I SHOULD see something 1/10th of the time and I haven’t in triple that is annoying.

2: Another thing is these instances take from 1-3 hours to complete. I know that isn’t THAT much time, but it is when I don’t play a lot.

3: Finally, I am behind the current state of my guild, meaning they are progressed mostly beyond these instances and into raiding. That means that 3-5 evening a week the members of the guild I know/like are unavailable. Given that I like to hang out with the roomates a lot, I usually can only run 1 a night. So if that means I run 2-4 instances a week. Take that and see that I haven’t seen anything in 30 runs, and you get the idea.

I know I could just quit WoW and say forget it, but I don’t really want to. I did do just that for the majority of the summer, because I was just not happy with my luck, but now Steve is 2 levels below me and we can finally run things together legitimately. This is something I am very much looking foward to.

Brian has been playing a good bit of Eternal Sonata lately. The game’s story is something that I haven’t paid attention to one bit. The graphics however are absolutely gorgeous. They aren’t realistic at all, it takes on an aesthetic of its own, and it does it well. They kind of remind me of the mana series of games in terms of graphics, and that is good thing. The combat seems really fun as well. It also boasts co-op play. My guess is that this is for the battle system. It sounds neat but really the system is turn-based, so it can’t be all that fun. I will late Brian give any real review of the game, since I didn’t play it/follow the story.


” I am going to shoot it with my laptop gun.”
“You don’t
have a laptop gun!”

September 24th, 2007


Dear Apple,
Please give me the option to make the “shuffle” selection on my iPod truly random. I have approximately 3 gigs of music on here: the likelihood that the same song would be selected three times in the same day is statistically very small. The likelihood that this would happen with three to four different songs in the same day is, well, statistically even smaller. I don’t have an advanced degree in math - or any degree in math, for that matter - but I know that if you take something that is already very, very improbable and make it significantly less probable, it shouldn’t happen every time I use the iPod.

Further, I have a band - we’ll call them The Advantage, because that’s their name - that represents maybe 0.05% of the songs on this particular MP3 player. I’ll be generous and say 0.1%. I don’t really listen to them often. Yet I find that I’m repeatedly skipping their songs throughout the day. Three times in a row at one point. My Wild Arms soundtrack is 4 CD’s long and the complete collection of Xenosaga soundtracks clocks in at about another 4, and yet the Advantage plays easily three times more than both combined. What kind of crazy inverse-learning process is used in this decision making, I wonder?

int songID = rand() % numSongs

September 22nd, 2007


Microsoft gets a lot of negativity concerning pretty much everything it does. They could be saving dying children from rabid polar bears, and all the while onlookers would wave signs reading, “Micro$oft $ucks!” Vista is, of course, no exception.

My first impressions of Vista are pretty positive though. It’s true that Windows asks me if I’m sure I want to do something entirely too many times, but it’s really not that big of a deal (and I can probably turn it off somewhere if it really gets to me). My only other real complaint is that Windows Update decided to restart my computer in the middle of a cygwin installation, which completely lost my progress. Is it cygwin’s fault that it doesn’t allow for resuming of an aborted installation? Oh yea. So I’m marking this up as a draw.

Otherwise, everything’s been good. The system runs smoothly (of course, the computer I’m running is a tank), with crisp animations. The new alt-tab feature (windows-tab) is a solid replacement for Expose - of course, I learned of its existence after downloading a Vista version of Expose. Gadgets are amazing. I have a clipboard manager, a crazy-powerful calculator, a Woot updater, the weather, a notepad, and a recent documents viewer all sitting neatly on my desktop waiting to be used. Getting to my applications is a lot easier than before.

And of course they bundle in a chess program which I can’t manage to beat for the life of me.

Feeling sleepy, feeling slow.

September 18th, 2007

Odds and Ends

I don’t have a great deal to talk about, but I figure there ought to be something in the way of a post before the month ends.

Purchased Neil Gaiman’s Sandman (the first two volumes). Along with Good Omens, Anasi Boys, and American Gods. I’ve only pushed through volume 1 of Sandman and a few pages of Good Omens so far. Sandman is pretty interesting stuff. Solid art, a novel storyline. There’s still a lot left, so I’m in no position to provide a comprehensive discussion, but I’m enjoying it.

I have some data mining work to be doing tonight, but I’m… not. Not yet, anyway. I figure I’ll start at midnight or maybe 1-ish. I really can’t drive myself to be motivated the way I was last weekend, which is mildly unfortunate. But I slept most of today, so hopefully I’ll have enough energy to push through into the wee morning hours. Also, I’m hopped up on Freezepops, which provide enough energy to power the sun.

Brian OUT!

I can not carry on any sort of thought. It just doesn’t work.

September 11th, 2007

Code Plugin!

After much fighting, I’ve finally got a code plugin working with WordPress… I hope. Hopefully all my other formatting stays intact.

Here’s an example of Flash Text Formatter in action!


OGLTexture* TextureCache::LoadTexture(const std::string &name)
//AUX_RGBImageRec *image = auxDIBImageLoad(name.c_str());
fipImage image;

OGLTexture *tex = new OGLTexture();
glGenTextures(1, &(tex->glID));
glBindTexture(GL_TEXTURE_2D, tex->glID);

if (image.getBitsPerPixel() == 24)
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image.getWidth(), image.getHeight(),
GL_BGR, GL_UNSIGNED_BYTE, FreeImage_GetBits(image));
else if (image.getBitsPerPixel() == 32)
gluBuild2DMipmaps(GL_TEXTURE_2D, 4, image.getWidth(), image.getHeight(),
GL_BGRA_EXT, GL_UNSIGNED_BYTE, FreeImage_GetBits(image));

tex->width = image.getWidth();
tex->height = image.getHeight();
tex->name = name;

return tex;


There’s a scroll bar there, but it’s pretty hard to see.


I said Huzzah!

September 9th, 2007


An addition and a removal!

You’ll notice that there’s no longer a forum for the site. Nobody was using it except for the porn spam bots, so I thought it was OK to just go ahead and ax it.

In its place is a link to the new research site, where Zach and I will be talking about the different stuff we’ve been researching. Contrast set learning, procedural content generation, grammars, that sort of thing. Not much there yet of course, but it ought to contain interesting stuff soon.

It’s after 6PM. I’m not a farmer.

September 7th, 2007

Backus-Naur Backus-Naur Backus-Naur

Here’s a list of reasons I don’t like Lex and Yacc:

(1) Incomprehensible error messages on compilation. You basically have to flail wildly on the keyboard and hope your antics fix the problem.

(2) Inconsistencies when compiling in different environments. This isn’t helped by the fact that Lex and Yacc are very Linux-centric and use non-ANSI standard libraries. The ports to Windows have weird quirks or Just Don’t Work. I had to put in some pretty icky hacks to get things working in Visual Studio.

(3) Inconsistencies when running on different operating systems. The same grammar can produce completely different results.

(4) Awkward C++ “support.” For some reason nothing in the yylval can have a constructor? Prevents me from effectively using the STL to dynamically keep track of lists. So either (a) I have to write my own list/vector routines (C-style, which requires some awkward practices if I want them to be flexible) or (b) make big arrays that can hold all the information I need.

(5) Aha! But (a) doesn’t work! I get some crazy weird memory allocation errors.

(6) And (b) doesn’t work either. At least, not out of the box. So many big arrays which themselves contain big arrays will quickly exhaust the stack. I can get around this by increasing the stack size, but that feels icky (and I have to make the stack awfully big).

(7) Poor support for rerunning the grammar. All the input is caught from stdin, which means that you can type in one rule set or route a file into stdin, but to get the system to, say, read from different files in one instance of the program is difficult. I know there are ways to reroute stdin that might make this possible, but there should be a better way. I feel like this might not be an actual limitation (it feels too ‘wrong’ to actually exist), but I have yet to find the appropriate solution.

Is that enough for me to be frustrated? I think that’s enough.

Ride it Donnagee. Ride it straigh to Hell.

September 4th, 2007

An odd idea.

I was talking about random things with Ricky the other day when I came across a particularly interesting idea. When two people get married, it is legally allowed for them to hyphenate their last names. So when John Smith and Jane Doe marry, for example, John could be come John Doe-Smith. This is pretty common practice among celebrities, actually. In fact, it is so common that it really isn’t all that neat. The neat part comes in when you the couple has a child. That child can inherit the hyphenated name( though I’ve been told traditionally they take the second word in the hyphen ). This gets REALLY interesting when the child marries. He or She could then hyphenate their last name with their spouses and get 3( or even better, 4 if the spouse has a hyphenated name ) last names. Continue this tradition on for several generations and you end up with the best last name ever. AND if that person ever wanted to trace their family tree, just split on the hyphens taking every 2 names as a couple. Imagine filling out tests… it would be crazy. Of course, I would find a way to make it so my great-great-great-ad infinitum grand child would sit in class and wait until his or her entire name was called before raising their hand to say “here” at roll call.

I’ve started programming on my own time again. This is mostly due to Ricky working on his sprite sheet editor. I’ve actually been working a bit on the game editor. I’ve moved away from the map editor part for a bit and have been slowly creating an editor that allows me to create the various forms and other widget-intensive objects that the editor uses to communicate with the user. I am tired of have to constantly type in all of those constructors by hand and keep recompiling them in order to make sure the layout is nice. The editor will work just like other GUI editors work. I’ll be able to drag and drop components where I want them and then specify their properties. I can then save the form to a file and have any other editor load that file in. Of course, I can also use the GUI editor to create the different GUIs for the game as well.


You know that thing you hate? I’m doing it right now.

September 3rd, 2007

Games n’ Music

Important purchases!

(1)Bust-a-Move for the Wii. Not as good as it could be, but decent. It’s exactly what you expect from Bust-a-Move but without the traditional competetive mode; there’s a replacement there, but it’s not nearly as good. The controls are surprisingly tight, and the music is catchy.

(2)AI for Game Developers. A little below par, I think. Some of the theory presented is a little ‘iffy’, and there’s almost no coverage of the problems with presented methods. Some chapters (such as those on Neural Nets or Fuzzy Logic) seem squeezed in there just to be a more comprehensive book on AI while providing little improvement in game AI. There’s too much code in there, and the code presented is very poorly written.

(3)The Mexico Trilogy - El Mariachi, Desperado, and Once Upon a Time in Mexico. I haven’t watched El Mariachi yet, but the other two movies are both good (with Once Upon a Time being fantastic).

(4)Games n’ Music, which turns the Nintendo DS into an MP3, movie, and homebrew game player. The latter is the key feature here - I can write my own games to the provided Micro SD card and run them on the DS, allowing me to do software development on the DS. At $20, this was a really good deal.

Other important updates coming soon!