Wednesday, 2 April 2008

Venkman and the Perfect Storm

After soliciting your advice (and ignoring it), I was hoping to have something to show you in return by now. But I'm stumped, and reduced to making 'Ghostbusters for kids'-type bylines.

I've started developing in JavaScript, using Mozilla canvas to prototype. I was able to get output in about 15 minutes and have refined it somewhat. JavaScript makes sense for me, because my work currently has a JavaScript component. It has a C-like syntax for arithmetic, comparison and loop operations which is of enormous help in making the transition, and I was able to quickly 'object orient' the code, although I'm mostly going to use this as a substitute for C structures.

But this slightly off the wall decision has cost me in the 'long run'. I'm now at the point where I've developed enough code to get silent bugs and need a debugger to trace through and understand the probably trivial syntax or logic errors I've already introduced.

Unfortunately, the obvious, and probably only choice, Venkman has left me plain confused. I'm not even sure how to start single stepping through the code I've written. I guess I should read some kind of tutorial.

So instead, direct your gaze to Perfect Storm:

perfectstorm is a real time strategy game study written in common lisp using OpenGL for graphics display and cairo for texture generation. It is in active development with many of the basic features still unimplemented, but i decided the effort put into it justifies some public documentation.

Which is in the ballpark of what I'm hoping to achieve.


oarfish said...

All the kids have moved on to now. Though, thats because of its great support for debugging Ajax interactions.

Course, with you could use a real language and development environment, not to mention the performance :)

Ben said...

I, too, found firebug to be much happier than venkman.

Though I found the nicest thing in my own code (hacking around on a javascript roguelike) was to us JSUnit and test-drive everything - much less need for debugging then.

ninjascience said...

you can also code javascript apps in Adobe AIR (with the Aptana plugin for Eclipse) and deploy them as desktop apps.

And since Silverlight was brought up I HAVE to mention ActionScript 3 (also an option for AIR or Flash deployment). ActionScript 3 has some VERY easy vector graphic routines.

Arathalion said...

I very nearly suggested Javascript and SVG, but most people would just laugh at such a proposition. I haven't tried Canvas, and have used SVGs little, so I don't know how much the two would compare, but I think they'll be similar.

As a total aside, I'm writing an Angband clone in JS, and love the language's cross-platform nature, the speed of development and bug-fixing, the ability to quickly and easily interact with remote servers with AJAX, its ability to do powerful things with minimal code, and its lack of dependencies. Sure, this comes at a very high performance price, but modern PCs can cope with that.

For debugging in Javascript, Firebug is the only way to go (as others have said and linked to). It's exceedingly useful and powerful, although make sure you have it disabled by default and only enable it for the sites you really want it on, as it will slow down JS heavy sites (and astound you at the quantity of errors floating about on big sites)

The second-most useful JS tool around is JSlint (, which is very useful at making sure that your code is valid. While badly written code will often work due to high browser tolerance, it can cause issues down the line. Plus, it finds all those silly little syntax mistakes that you can overlook even when you're hunting for them.