The Animal Farm

December 13th, 2006

Link is Your Homeboy

I finished playing The Legend of Zelda: The Twilight Princess last night. Wow.

Graphically, the game looks great. No, there are no XBox 360 graphics here, but things still look good. There’s a very warm, cozy feeling to all the graphics that makes you feel right at home almost immediately. In terms of sound, there’s nothing really special here - most of the music is rehashed from Ocarina.

What really needs addressing is the gameplay, which is excellent. My biggest joy was that they significantly upped the action over Ocarina. Whereas in Ocarina, you might get into one or two good battles per dungeon, in Twilight you’ll frequently be having fun duels. The combat system has also been greatly improved - it’s more akin to Wind Waker here, with different battle techniques (that you learn as you progress). The wolf is interesting, but I’m thankful they don’t make you use it excessively - though it’s fun, it’s still not as interesting as doing things with Link’s toys. Speaking of Link’s toys, the set here has some awesome additions. The ball and chain makes me feel mighty. The spinner is wicked cool, although limited in its use. The double hook shot made me feel like a freaking ninja, and I wish they had introduced it earlier in the game. The boomerang has been greatly improved, adding a great new dynamic. The usual set of stuff is all there mostly unchanged.

I was notably worried about the use of the Wiimote, but they shut me up quick. The basic gist is this: they weren’t stupid about it. Sword fighting is limited to some simple gestures (admittedly, I could’ve used a few more), and aiming was done naturally. I heard rumors that when using the bow, you’d have to pull back with the remote and engage in other outlandish actions - thankfully, that was absent. Granted, I might’ve enjoyed performing the motion for spinning the ball and chain, but that would’ve no doubt got old quick.

Dungeon design feels different than the other Zeldas, and I enjoy it more. Puzzles are more localized - there’s less searching through arbitrary rooms trying to figure out where one switch had an impact. As such, there’s more a sense of progress. The puzzles are sometimes very clever but are never ridiculously mind-boggling. My only quibble is that once you get the dungeon item, they drive it into the ground, and sometimes you may never see that item again. This is demonstrated with the Spinner and Dominion Rod. The dungeon where you get the Spinner is awesome, but then I barely ever had to break it out again. A real shame, since it was one of my favorites.

Story-wise, Twilight is, well, Zelda. There’s a bit of improvement - a few interesting characters (Midna, notably), and the story of the Twilight Realm is pretty cool. But in the end, it comes down to Link, Ganon, and a fancy sword.

I like this game better than Ocarina, hands down. I never really played Wind Waker because watching Zach sail around nauseated me, so I’m going to say I like it better than that, too. The only Zelda that comes close in comparison is A Link to the Past, and to be quite honest, Twilight may take over the #1 spot.

I got a sword through me chest.

December 12th, 2006

Turtles and Fractals

Some might call this post off the hook if they are fond of using cliche exclamations. I prefer to refer to it as totally rad. I began reading academic papers for my research, and the things I’ve learned are really cool, provided your definition of cool includes LOGO and L-Systems and fractals.

The research focuses on the use of L-Systems to generate plants/foliage. At its most basic: imagine you have a turtle with a paintbrush attached to its back. You can tell the turtle to move forward or rotate by some amount. You repeatedly give the turtle commands until it draws an interesting pattern. It’s a very simple rig, but it can easily be used to generate complicated fractals. This is where L-Systems come into play.

An L-System is simply a set of rules. So let’s say you have a set of commands for this turtle: F = move forward + = turn left - = turn right You have some starting set of commands, say F - F - F - F If your turtle turns 90 degrees each time, this will generate a square.

Now we have a production rule, which says “every time I find an F in the set of commands, replace it with something.” So we say F=>F - F + F + FF - F - F + F We take our original set of commands, and replace each instance of F with the above, generating a new set of commands which is obviously much larger. If we told our turtle to act on the new set, we would no longer have a square - we would have something much more complicated. And then we could take the new command set and apply the production rule again. And again. Until eventually, we have a pretty trippy fractal image.

The ‘turtle with a paintbrush’ idea is not my own design. It’s actually pretty well-studied. If you ever played with the LOGO programming language, you were using it.

By taking advantage of the fractal nature of plants and adding some new commands, we can generate convincing plants nearly just as easily. But I won’t go into that right now.

So why is this in any way relevant?

Well, art is expensive. Hiring an artist to draw trees, bushes, etc, becomes very costly very quick. Movies and video games constantly require such art, though. The solution is to have a computer automatically generate this stuff, circumventing the need for expensive labor. The hard part is making this stuff really convincing, as a simple Turtle/L-System implementation (while nifty) will not suffice.

The area is pretty big right now, and my research intends to contribute the following: Generating plants based on an L-System is a pretty heavily studied area. So heavily studied that providing something novel (a requirement for a Master’s thesis) would be difficult. The reverse of this problem, however, is not quite so studied. That is to say, given a plant, generate the L-System that would reproduce the plant. This is useful when we have some scene that we want to reproduce accurately (we can’t use just any types of trees), and finding the appropriate L-System would be hard. I’ve got some ideas on how to do this, but we’ll see.

So, yea, I told the Data Mining professor that I would only do research if I could find something really cool to look into, and I think I’ve found it. So far I’m really liking this stuff.

It’s clobberin’ time.

December 9th, 2006

Projects and Sleepless Nights

I haven’t updated in a while, mostly because school has subjugated me in such a way that I have done nothing interesting in something like a month now. Interesting is, of course, subjective here. Some people might be enthralled by my programming exploits. Most people, however, will find this very drab.

I write this post for the former group.

I’ve had three major projects fighting for my time: A deceit detection program based on an academic paper, a networked team management system, and a recreation of a data mining study. The deceit detection program for Multimedia Systems was by far the hardest thing I’ve tried to implement for a school project. I emphasize the word tried in the previous sentence, because the implementation fails spectacularly. Zach and I made a few assumptions (which we thought coincided with the paper’s assumptions) during our development which worked very well for a video we created to test the system. Then, on the day the project demonstrations were due, the professor pushed the deadline back and subsequently gave us a set of videos to test our own system on. Our system - and this is important - did not work for a single one. And it still doesn’t. The videos threw every possible problematic case at us, cases which completely went against the initial assumptions, and our system choked. We really have no clue how to fix this, so we’re just hoping things turn out alright.

The network team management system was largely a throw-away project. It wasn’t hard, but it did require a fair bit of work. Nothing that couldn’t be done in a few light days followed by one heavy, sleepless night. For what it attempts to do, the system performs relatively well (it didn’t at first, mind you - I had some serious bug issues right up until the day before its demonstration). It also allowed me to become a bit more familiar with .NET, though I’m still not at a level I’d like. During the demonstration, it crashed once, but I’m still sure the professor was reasonably satisfied.

The data mining project worried me, because though it seemed relatively simple, we had two curveballs thrown at us relatively late. The general gist is this: we were trying to recreate a study evaluating the effectiveness of oversampling and undersampling data to be learned on. For the prior project (a report on our progress for the final project, basically), we made significant strides which allowed the final project to be mostly number crunching and data manipulation. In comes the first curveball: one of the scripts we were using was the most tempermental thing I’ve ever had to work with. It would randomly choose to work or not work. I’m not talking “random” in the sense that I would make some arbitrary change and the thing would go down, telling me what’s wrong. I’m talking “random” in the sense that I would make no changes whatsoever and the script would produce all 0s as output. One minute it’s working fine, the next it’s not working, and the next it’s working fine again. I don’t know that I’ve ever shouted more profanity at a computer. The second curveball was that our results completely conflicted the paper we were trying to reproduce. We weren’t - and still aren’t - completely sure why this was happening. We couldn’t find any scripting errors and seemed to be following the paper’s process exactly. We came to some reasonable explanations but were still worried that the professor might find this very bad. Luckily, he seemed more excited about our deviation and suggest we explore it more. A huge relief, given that I was giving that presentation on no sleep and might have collapsed if he seriously grilled us.

The projects (aside from some deceit detection tweaking/writing) are mostly behind us, and thus the hard portion of this semester is essentially over. The only thing left to worry about is one hard final at the end of next week.

So yesterday, in celebration, I played Zelda all night long. I’m really impressed. Fifteen hours in and I’m only up to the fourth temple. And the fourth temple is crazy awesome (along with crazy hard). I think I’m going to try and hit it hard over the Christmas break and see if I can’t finish it before I get busy again.

Speaking of busy, it looks like I’m going to have some awesome research lined up. The Data Mining professor approached me, and we kicked back ideas and got the Graphics/Medical Image Analysis professor involved. It looks like I’ll be exploring something with procedural content, and while none of this seems easy, I would really rather have something awesome to occupy my time. Coupled with my classes next semester, I don’t know that I’ll have a whole lot of free time. But that’s just fine to me.

And finally I leave you. For awesome Japanese food.

This game is crazy.