Thursday, 6 October 2011

What I learned on Seb's creative JavaScript course

A few weeks ago I went along to Seb Lee-Delisle's Creative JavaScript course in Brighton. Don't worry, I'm not thinking about moving away from Flash - I just wanted to see 1st hand what was possible with the new HTML5 canvas capabilities and the JavaScript language, and prepare a bit for my new part-time job as associate lecturer at Plymouth University (where I give an introduction to web technologies). Here are my take-aways:

  • Pretty much all the stuff that first got me into Director/Flash, you can now do with canvas (although Flash has gained many new abilities since then). All the old demos like generative trees and particle effects are still really fun to play around with. A lot of this stuff is completely new to JavaScript devs, so I think it's a great thing that so many of them are going along to Seb's courses. The favourite effect I made was jelly asteroids (left it a bit broken unfortunately).
  • I'm not giving up Flash anytime soon. I've been learning some JQuery and think that's a lot of fun, and a great solution for image galleries etc, and I also think canvas has many good use cases, but for web games I think Flash is still the way to go. Canvas rendering speed (e.g. for rotating bitmaps) and the lack of decent audio support are probably biggest issues at the moment, but I expect both of those to be resolved fairly soon.

  • JavaScript hasn't got any better, but my skill as a programmer has, so I now write much better JS than I did when I last did any significant work with it (8 years ago?!). There are now also commonly accepted "patterns" for working in a semi-object oriented way (or you can also use a 3rd party framework like prototype). Overall I quite like JavaScript, especially the fact that you don't have to give a type to your variables - it makes the code very concise and readable.

  • Without static typing you obviously miss out on some tooling and debugging abilities, but having a good IDE helps a lot. Jetbrains have a couple of IDEs that do a really good job for auto completion etc, but for ease of use I actually preferred using Netbeans (download the PHP version) which also has the advantage of being free. Dreamweaver also did a pretty good job. Any of those options is way better than just typing into Notepad. 

  • The web developer tools in Chrome are amazingly awesome - hit CTRL-SHIFT-J on PC to access them.
  • Seb is an awesome teacher. I'm teaching a bit at the moment myself - 1 day a week to 1st year university students and 1 evening a week to people learning gamedev as a hobby. I'm improving (I hope) but I still get pretty nervous, and probably seem pretty flustered at times. Seb remains cool as a cucumber throughout. Gotta work out how he does that!

  • I know there are already many other (better, more complete) frameworks out there, but I had a go at building my own mini-framework for canvas, with a base "class" for sprites/game objects and a base "class" for games. View a demo / steal it here.