I’m currently in the process of touring the globe (I’ve given four talks in two cities, have two talks in two cities left) but I dug up something that should prove to be a lot of fun.
Will Larson has gone about revising the classic Tower Defense genre, porting it to the open web using Processing.js. The port is pretty basic still – but it definitely offers a lot of promise (and is a ton of fun to play, to boot!).
» Play Processing.js Tower Defense
He’s written a full post describing the construction of the game (which he did in JavaScript using the Processing API).
Will has been a machine – writing tons of demos and articles on Processing.js. Feel free to read through them to get a better feel for what you can do with the library.
Update: After a minor hiccup the game is working again (there was some problems with mouse input). Thanks Will!
Jesse Ruderman (May 27, 2008 at 3:07 am)
I can’t figure out how to build towers. I can only nuke the creeps or wait to die.
Are you supposed to be able to click on the grid to build a tower after clicking a tower-type button? Clicking the grid didn’t do anything for for me with any of the Mac browsers I tried (Firefox trunk, Safari, Opera 9.5 beta).
John Resig (May 27, 2008 at 3:15 am)
@Jesse: This is really weird, I’m not sure what happened. I just contacted Will to see if he can fix it.
Wanli (May 27, 2008 at 3:17 am)
Also can’t work on FX3.0RC1
Aleksandr Sugard (May 27, 2008 at 4:07 am)
Also waiting to start gaming =))) Love JS and Love TD games. =)
John Resig (May 27, 2008 at 4:26 am)
@Everyone: Sorry about the delay – Will has gotten it working again! Game until your heart is content!
Jaffer Haider (May 27, 2008 at 6:00 am)
Great Stuff! Good job Will.
Ryan Tenney (May 27, 2008 at 10:31 am)
I had stumbled upon this game a few days ago, and I was having similar problems with mouse input. I’m glad the game is playable now!
Tom (May 27, 2008 at 6:13 pm)
Maybe you’ve already said before (and I apologize if so), but I’m having trouble figuring it out. What’s the one to two sentence version about why to use the Processing.js JavaScript API rather than the Canvas API?
james w (May 28, 2008 at 1:36 am)
John,
Where do you stand on es3.1 vs es4.
It looks like Douglas Crockford and the MS javascript guys are going ahead with es3.1 and have no intention of supporting es4. They believe a new scripting language without baggage would be preferable to es4. Who knows – they may be working on such language. Apple seem conservative and could come out for es3.1.
Mozilla and Adobe seem the main es4 backers. But if only they implement es4 then…
Personally, i think if MS are adamant then the best road ahead:
1) nail down es3.1 and get it implemented across all browsers, with a acid style compliance test.
2) A new language under the auspices of the WHAT-WG. It seem the place vendors meet to get practical work done. The work completed on es4 would not wasted – as it’s the underlying semantics that are interesting. The strategy of a reference specification in Standard ML which can be executed is excellent.
Will Larson (May 28, 2008 at 2:25 am)
Inspired by the description of the game as pretty basic (its true, I know, I know ;), I implemented some new types of creeps (Fiz, Buzz, and Fizbuzz respectively), and also tower upgrading. It should be a bit more interesting now, albeit still not terribly polished.
http://www.lethain.com/entry/2008/may/28/updates-to-processed-tower-defense/
Garth Henson (May 28, 2008 at 9:15 am)
John, great find. I actually had been toying with the idea of a JS tower defense with a coworker of mine yesterday, and today I saw your blog entry. The actual input resolution is beautiful (XP Pro/FF 2), and while the logic of the game itself could use help, the concept is wonderful.
Keep up the great work!
Grant Palin (May 28, 2008 at 9:51 am)
OoOh, what a way to push the JavaScript envelope – I was wondering whether it could even be done! But the result is impressive.
Oh boy, I’ve already weaned myself off of the first Tower Defense I encountered, the elements-based one, followed by variants such as Desktop Tower Defense and Bloons Tower Defense. I better watch my time here.
Daniel Glazman (June 3, 2008 at 4:31 am)
John, just for your information, I am currently finalizing a complete parser written in JS, based on lexical rules and grammar defined in one single XML instance. Could be very helpful to replace your “angels weeps at this parsing code” parser :-) I’ll let you know as soon as it is ready.