Sebastian Poręba's blog

onGameStart – day 2

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:

Also a few games, for example Another World JS –
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 for details.
You can check all the slides and all the links here:

J3D – Bartek Drozdz

I think a best title for this presentation would be “the beaty of WebGL”. Bartek was one of the developers behind 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.

There were also some demos and code of these. J3d is very promising and I find it one the best WebGL frameworks so far (among PhiloGL and Three.js).
You can download slides here.


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:


Box2d – Seth Ladd

I must admit that I’ve never liked box2d. Probably it’s like that since Google Hackaton when it took eight hours and a team of three to create merely working example of Angry Browsers. After that I believed that box2d has a future in C and Flash world, but not very much in JavaScript.
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: – I think it should be put on an official page, as a great way to start with box2d.

There is also a series of box2d tutorials by Seth available –


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.


Day two was more technical in my opinion and I loved the WebGL part. After the last lecture there were few competitions – Samsung Galaxy Tabs and Blackberry Playbooks were given to people who entered the lottery. Of course I haven’t won (if I would, I’d be playing with it now, instead of writing). But I got a T-shirt and “The Essential Guide to HTML5: Using Games to learn HTML5 and JavaScript”. I started reading it on the train to Krakow and honestly, it’s very basic and after onGameStart you probably know all of this stuff. But I’m happy anyway, the conference was great and amount of knowledge I have to digest now is simply overwhelming.

<< day 1 summary

6 Responses so far.

  1. Tomas says:

    HTML5 games look in general very old and simple. One problem is that is not consequent across browsers and that is something that you expect for a serious audience. Webgl require very powerful hardware (far from all) and there is no sign that this going be a implemented standard in near future. So remarkable with the big interest compared to the limited joy that is possible to release today..

    • Sebastian Poręba says:

      I can’t disagree more, WebGL requires exactly the same hardware that OpenGL does. It’s actually better, as it forces developer to use shaders a lot.
      HTML 5 games are in desperate need of attention from designers, as quality of graphics and gameplay have nothing to do with actual coding.

    • Ben Gildenstein says:

      Try playing Gun Bros and your mind may change (use chrome browser):


      • If Gun Bros performs badly, I would guess it’s a side effect of either some fairly inefficient rendering code or some heavy duty javascript logic. I seem to recall reading somewhere that they used some sort of tech like GWT to do the port, so that could be yielding less-than-optimal results as well. (Anyone care to correct me on that?)

        There is a performance disparity between native OpenGL and WebGL, but it’s not nearly as much as you might think. And both will perform badly if you’re not coding for performance from the get go. HTML5’s primary “problem” in the performance department is that it makes it easy to be lazy about your code.

  2. […] SmashingLabs (EN, dzień 1 oraz dzień 2) […]

  3. […] a summary of each talk see the day 1 and day 2 posts on […]

  • RSS
  • Facebook
  • Twitter

FAQ about Wordpress

This came as a surprise for me but gMap is ...

gMap 3.3.3 released

It was a looong time since I last visited gMap. ...

Talks for Google Dev

Two new slide decks appeared in lectures tab. This time with ...

Talks and lectures w

Every now and then I spend a weekend watching various ...

3D Tetris with Three

In the fifth part of tutorial we add some final ...

FAQ about Wordpress

This came as a surprise for me but gMap is ...

gMap 3.3.0 released

Christmas came early! New version of gMap is ready!

Lecture for GTUG: Ja

Today I gave a lecture for GTUG Krakow about optimizations in ...

Unit testing for jQu

In part 1 I described basics of unit testing in ...

Unit testing for jQu

In part 1 I described some basic concepts behind unit ...