Good news everyone! The second day of onGameStart was as awesome as first! This time there was only one auditorium, so I attended to all lectures.
Retro games and emulators – Martin Koll
Day before Rob Evans said “don’t emulate, innovate” and Martin lecture was exactly about how fun emulating can be. It started with review of few retro games he wrote in html4 and JS years ago. Among these were King’s Quest, Space Quest and many others – check out his website.
Then he did a quick review of all (probably) architectures that were ever ported to JS. There were a lot of links and pictures, so I’m putting only a short list of my favourites here:
- js8080 – http://www.bluishcoder.co.nz/js8080/
- jslinux – http://bellard.org/jslinux/
- Miracle, Sega Master System emulator – http://xania.org/miracle/miracle.html
- 6502 – http://6502asm.com/
- Apple2JS (green screen!)- http://www.megidish.net/apple2js/
- JSNES- http://fir.sh/projects/jsnes/
- JSGB – http://codebase.es/jsgb/
Also a few games, for example Another World JS – http://www.megidish.net/awjs/
As there is already a desktop Dosbox emulator and some 8086 JS libraries, q42 (where Martin works) offers support for anybody who starts development on DosboxJS. By support they mean a free Chromebook. Visit dosboxJS.com for details.
You can check all the slides and all the links here: http://ongamestart.handcraft.com
J3D – Bartek Drozdz
I think a best title for this presentation would be “the beaty of WebGL”. Bartek was one of the developers behind ro.me demo, which litteraly blows mind. After working for few months with WebGL he had found that some tasks were repeated in every animation. To bring fun back he started writing a j3d framework, which eases development process A LOT. It’s not only loading all assets and shaders (in a very good way). It’s more of a toolchain than a framework, as it contains a JSON exporter for Unity3D. For those who are not aware, Unity3D is the best modeling software for level design. Period.
Advanced WebGL stuff – Brandon Jones
While previous presentation was more like “WebGL 101″ and explained a lot about how it actually works, Brandon moved this topic to the next level by showing how amazing stuff can be done with WebGL. There were a lot of tips useful for those who already experimented with WebGL and a lot of demos of popular desktop games running in browser. Brandon made Quake 3 port to WebGL some time ago. It quickly became famous and is still the best showcase of very advanced browser game. He also prepared a little surprise for us – working demo of Team Fortress 2 level in WebGL. Unfortunately it can’t be released – he parsed original game file and obviously it would lead to a lot of legal crap. Even if it would be, the assets have around 200MB. Imagine how fast JS and WebGL are – this demo was running at 60 fps.
Brandon is also a great speaker, he went through a lot of stuff with great speed and ease.
I think this was the most useful lecture for me, since I had no idea about any of the stuff that was shown and I obviously should know that if I still want to write WebGL physics engine.
@tinysubversions is a fast typer and he wrote a transcript of the presentation.
Rawcets – Rob Hawkes
It was the most beautiful graphics in presentation that I’ve ever seen! It was a great summary of creating Rawcets game. There was a lot about networking and node.js that is working as server-side of Rawcets. It was a very clear presentation but also rather basic, so it would be great to hear that as a warmup on day 1, as it was not very technical. It was however very useful as a summary of problems you will be dealing with when writing a multiplayer game.
Check out the great typography and the icons: http://www.slideshare.net/robhawkes/inside-rawkets-ongamestart
Box2d – Seth Ladd
The thing with the Google guys is that they always can present complex technology in such way that it has to convince all the listeners. We heard a lot about basic concepts of using box2d, debug (built-in) and custom rendering, types of joints, impulses, forces, contact listeners and plenty of other stuff. If I had such presentation before the Hackaton, Angry Browsers would probably be the next big thing in Google Appstore…
Link to the presentation: http://ongamestart-2011-box2d.appspot.com/ – I think it should be put on an official page, as a great way to start with box2d.
Tips and tricks for HTML5 games – Kamil Trebunia
I was expecting a lecture that will sum up all that was previously said, as I knew that Kamil is working on 2D game similar to all that were shown before. Instead he has presented a different and innovative approach to many topics. In engine they develop at Wooga there are no dirty rectangles as an optimization. Instead they render whole game map (rather small one) in one hidden canvas and in every frame cut a part that is needed in normal game canvas. Then dynamic assets are added on top of the map. It solves a lot of complexity issues with dirty rectangles – scrolling is very simple and you can clear whole canvas with every frame (hint: canvas.width = canvas.width is very fast on iOS).
He has also shown few debugging techniques for Chrome that I like – Developer Tools with memory heap and CPU usage snapshots, to help you optimise you objects and functions, about:memory, about:flags and how to use them.
There was a part about architecture of JS applications but proposed MVC pattern was not very convincing for me. I think it has some pros and cons, and cons were not considered.
ImpactJS – Dominic Szablewski
Presentation from ImpactJS author was a great choice for the last lecture. It is one of the greatest frameworks on the market and its author has done a lot of research about browser engines. The full toolchain was presented – ImpactJS, map editor and iOS ImpactJS. Dominic praised Internet Explorer for doing a great job with garbage collection (IE team got audience applause) and then said that he still hate IE for lack of support for audio/video Vorbis formats, lack of WebGL (or WebDirectX) and slow development cycle (and he got audience applause several times).
You can check out the presentation here.