Melding Monads

2009 May 3

Rocky’s Boots

Filed under: haskell — lpsmith @ 10:39 am

I ran across Logicly today, which is a Flash-based logic gate simulator. While it’s all very slick, I found it disappointing. It’s a mere shadow of Rocky’s Boots for the Commodore 64. The key differences are that Rocky’s Boots had D-flip flops, SR-latches, and simulated propogation delays, giving rise to glitches and hazards. While Logicly seems to handle self-reference somewhat well, enabling you to build your own flip flops, it doesn’t support any kind of abstraction so the overall support for sequential circuits is poor. (edit: Josh has added propagation delays, check it out!)

I could wax nostalgic about Rocky’s Boots; it was among my favorites when I was growing up, but I’ll spare you, dear readers. Truth be told, much like vintage BASIC, RB has a truly wretched user interface by modern standards, something that became painfully clear when I strolled through Rocky’s Boots a few years ago on a whim. I started into its sequel, Robot Odyssey, which I never got to play as a kid, but I didn’t get far due to the user interface.

Maybe Josh has plans for improving Logicly, I don’t know. Truth be told; it really is a travesty that Rocky’s Boots has not been remade and re-imagined many times over the last 27 years. At least it appears that Robot Odyssey has been remade a few times: here is a Java version that stays much too faithful to the original, down to replicating the same wretched interface. On the other hand, Gate seems reasonably promising… but it doesn’t appear to simulate propogation delay (then again, did Robot Odyssey?), nor does it have abstraction mechanisms like Robot Odyssey did.

So, if one was to remake Rocky’s Boots and/or Robot Odyessy, how would you do it? Might you use Functional Reactive Programming? How efficient would this be, and how large of a circuit could this handle? Could you make good use of modern SIMD and/or multiple cores? Although I daresay reaching children would be a particularly good goal for such a project, thus delivering it as Flash has definite appeal.

About these ads

2 Comments »

  1. Hah! I’m not sure it was only the interface that held you back. Robot Odyssey is a really, really hard game. ;)

    Robot Odyssey (and RB) does simulate propogation delay. It takes time for the power to go through a gate.

    Considering the original engine ran on a computer thousands of times slower and with tens of thousands of times less memory, I don’t think multicore functional reactive programming will show any noticeable improvement over a bunch of spaghetti and goto statements.

    It might, however, improve the speed of the interface, but that’s only because of today’s extremely resource-intensive operating systems/virtual machines.

    Comment by James — 2009 May 3 @ 2:46 pm

    • Well, it was definitely the user interface that kept me from exploring the game further. (This was 2-ish years ago, when I first interacted with the game) I doubt the puzzles would have posed tremendous difficulty, although I’m sure there are a few puzzles that I would have found challenging. I’m not a digital design guru, but I’ve got some chops, including an FPGA design or two. ;-)

      I’m aware that RB simulates propagation delay, I just sort of forgot which way with regard to RO. And yes, if your only goal is to re-create Robot Odyssey, then the efficiency of the simulation won’t be an overriding concern, and then FRP might be a very nice way to structure and express the simulation. But if you’d like to go above and beyond, the efficiency of simulation might well become a concern… e.g. would it be fast enough to simulate a small CPU in real time?

      I’m not an FRP guru either, but it is still very much an experimental research topic with various run-time efficiency problems yet to be solved. I don’t know if FRP has been applied to multicore computations either. You can apply the same techniques to things other than UI and animations, two of the historical application domains thanks to Conal Elliott.

      Comment by lpsmith — 2009 May 3 @ 7:53 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

The Shocking Blue Green Theme Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: