Friday, March 02, 2007

Not Fitnesse

 
Not Fitnesse
 Well, I've given up on installing Fitnesse locally. Despite installing the correct version of the JRE, I can't get it to run. I still believe that Fitnesse is a good tool that  I'd like to play around with at some point, but not now, and not on this machine.
 I can get away with something a little lighter anyway. I don't need the collaboration or the wiki, I just need a test driver. So, I'll just have to write one.

Build vs. Buy
 Or possibly, just get one. There is a www.vbunit.org Unit-testing tool for VB. There is also aspunit.sourceforge.net ASPUnit, but it runs on top of IIS (which, upon reflection, it would have to do), which I don't have installed locally. Really, most of the problems I'm encountering are of my own creation - upgrading my machine would go a long way to solving them.
 So far, my choices are: (a) write a local ASP test driver, or (b) install and use VBUnit, code a bunch of DLLs with the "business" (read "gaming") logic, and deploy most of the code as binary files. This second approach has the advantage of separating the presentation layer, which is always nice, and leaves the components in a re-usable state. Let's head down that path.

Path Bee
 First step, does my hosting provider let me deploy binary files? *Research* No. I should note that there is another option (c) write it in ASP.Net. For now, back to Path A.

Path Eh
 So, the idea is that I'm going to set up a web project, create a simple ASP class (to simulate the roll a die - important in an RPG like game), and create a test harness. First, though, time for a break.

Wednesday, February 28, 2007

Fitnesse Install I

Installing Finesse
 So, as a programmer, I'm a believer in Test Driven Development. I've decided to put my money where my mouse is (so to speak) and develop a project for FlyingSheep.com using a public test driven development process.
 Now, most developers (excluding the few that throw up code and expect it to work the first time) use tests (they really do), they just throw them away afterwards. This is not unlike using a single tissue and throwing the rest of the box away. Tests increase in value as you move on to changing other parts of the code. They ensure that you follow the unwritten requirement - that you don't break anything that was previously working.
 Also, I'm going to blog about my adventures along the way.

Fitnesse
 First order of business: install Fitness locally. I've gotten a download from http://fitnesse.org/.

Java
 Requires the Java Runtime. Gotta install that locally. Also checking to see if my hosting company has it installed.

Easily distracted?
 While I'm waiting, I'll check my email, review the abysmally low visitor stats to FlyingSheep.com, etc. *Sigh* The Java download page doesn't resolve. Trying again.

No support for Win98
 Hrmm... Latest version of JRE doesn't support windows98. Let's see if I can find an older version. Yay! 1.4.2 does support win98. Let's start with that. Note that Fitnesse website says that this process "really takes very little time and effort". Presuming you have JRE already installed, and don't have an old OS, and aren't easily distracted.
 I'm saving the smaller version of the two files offered to me (one is an Offline installer). Now I need to install the Windows Installer in order to download the rest of the JRE installer, which will then install the JRE itself, which I can then use to install Fitnesse with "little time and effort".
 I believe it's worthwhile, though, so I'll persevere. (That word never looks right when I spell it). At least the JRE installer has the honesty to tell me this "may take several minutes". (:

Meanwhile
 I didn't find anything promising in my hosting company's website about support for JRE. Perhaps I'll have to switch to a Linux account after all. Their "deluxe" plan supports Linux, so it would be more expensive.

Restarting. . .
 More later.

Sunday, February 25, 2007

Kingdom Hearts II: A review

Kingdom Hearts
 I finished Kingdom Hearts II yesterday. I spent about 35 hours on the game, but I didn't do everything (there's probably another dozen hours or so of meaningful play time). My final battle stats (standard difficulty) revealed that Mickey had to save me twice, I finished 82% of the journal, and I used the heartless form 6 times. Don't worry, I'm not going to spoil anything about the ending, mostly because I don't understand it myself.
 
Story
 I really liked the references to the original game. At the start of the game (which felt slow), there are some flashbacks to things that happened in the original. This were, possibly too effective, as they made me want to stop playing the sequel and go back to playing the original again!
 A friend of mine (who never completed the original) went back to finish things up (to get the story line straight). However, he was frustrated by the lack of camera controls in the first game. It's easy to gloss over the fact that they got the camera controls right in KH II.
 So, although I enjoy the complexity of the story, I simply didn't get it. I'm entirely willing to believe that this is my own fault. I'd be grateful to anyone who can send me a brief summary (or even an FAQ) that answers any of my story questions about both games. I fear that the answer to some question might not be "because it made sense to the character", but rather, "because we needed some extra tension".
 Also, it is just me, or does Sora like Riku more than Kairi? It reminded me of Back to the Future, where Doc and Marty go around having adventures, leaving Marty's girlfriend passed out on a porch somewhere.
 
Tron
 Awesome.
 
Gameplay
 I like the system of ability points, that allow you to customize the active abilities of each character. I used the commands that allowed me to close in on an enemy (either in the air, or on land), quite a bit. I especially liked being able to set general rules for how the entire party battled (e.g. target separate enemies, target Sora's enemy, etc.)
 I never really understood limits (mostly my fault, I'm sure), I only used Magic for curing myself (with a few ignorable exceptions), and I barely used Summon at all.
 The features of the game that I didn't use might explain why the game occassionally felt like a button-mashing competition. I could eat dinner with one hand, and fight a battle with another (just pressing the X button repeatedly). In fact, there are at least three battles that come to mind (Beast, Ursula, MCP) that incorporated the "Hit this button as many times as you can" challenge.
 Not to say that this game is all about pushing buttons quickly. It's also about pushing buttons at the right time.
 
Tournaments
 So, you want me to spend time playing tournaments, but I don't get any experience? No thanks, I'll play with Pooh instead.
 
Frustrations
 I was really frustrated by the random Heartless form. I would try to do one thing (e.g. change into a form that I could use to defeat an enemy), but the game would randomly switch me to a much less useful form instead. And then I'd die.
 In a few battles, this eventually drove me to not using forms at all, for fear that I would randomly get killed. Not very satisfying.
 The random "get saved by Mickey", though? Awesome. That's the way to do random, as an extra bonus, not as a detour away from a strategy you're trying to employ.
 
Bugs
 Nothing major, but I was able to finish a Pirates adventure (get 4 coins) without getting all of the coins. I simply walked past (not defeated) the enemy that was supposed to drop the 3rd coin, defeated the enemy with the 4th coin, and then I was done.
 There was a bug with the Struggle as well. I defeated my opponent, getting all 200 of the orbs, and the words "You win!" came on the screen, but Sora sighed as if he had lost, and I got the "quit/try again" options.
 
Ending
 The final battles were unrelated to any progress that had been made during the game (the boardgame Monsters Menance America has a similar flaw), and there were not enough save points at the end. Don't attempt the ending if you have to go anywhere in the next few hours - you'll end up leaving your Playstation on all day until you can come back and finish the game.
 
Overall? Meh.