Saturday, October 6, 2007

Hacking Roku with Alex

Before I started working as a software engineer, I used to spend a lot of my free time inventing games. These were usually abstract board games for two players. The best of these was Roku (invented circa 1984) which has similarities to the Japanese game of Go. (That part of my brain now no longer needs exercising so I've really invented nothing new since). At the time I was working at the Black Forest Inn as the 'front end' manager and there were a couple of customers who learned and played it. (That was over 20 years ago so I have know idea where they are now and I don't recall their names - maybe they'll read this posting sometime ;-)

In the late 90's I spent some time creating a computer version of the game using Java. Around the same time my son Alex did a project for a college computer science class using Roku to demonstrate AI (Artificial Intelligence). His version was written in C++. At some point I 'refactored' my java version and added a way to store and restore games using XML. Alex also rewrote his code to simplify it.

In August I took a two week vacation from work. Our plan to take a long trip was derailed because of our son's Tommy's hip injury, so I ended up with almost a week at home. I started to look at the current state of my Roku code and got it running using Eclipse and the latest Java. (The code I started with was last touched in 2001). I told Alex about it and he ended up saying we should set up a time to 'hack' it. Today we hung out at his place for 4 hours today and had a look at what we'd each done.

We made the decision that using Adobe Flash made the most sense; since Alex works for Adobe, he knew which pieces to install (we're using the public versions)l. The 'product' is called Flex 3 and since it is based on Eclipse, I was happy to find out that the viPlugin works with it. We discussed some project goals and set up a Wiki on a server that Alex has access to. We've made notes on the Wiki with 'goals' and 'priorities' (but no timeline!)

Alex started working in Flex and by using some of the Java code as a model, he was able to create the graphics for the Roku hexagonal board. Because Flex is vector-based the image scales well (you can make it larger or smaller - Alex understands the math involved .. as I could if I cared...)

At this point he'll work on it a bit more and we'll make a decision on where to host the software. Since we are both professional software engineers, the first step is to establish source code control.

Of course, since the end of my vacation and my return to full-time coding at work, I have not really felt the need to 'code', so I'll still be spending most of my free time doing music.

But I am curious to see what develops.

No comments: