Category Archives: Uncategorized

OnGameStart 2011

On the 22nd and 23rd of September Warsaw was host to the first ever HTML5 games conference; OnGameStart. While game development in HTML5 is a relatively new area, the conference managed to bring together almost 300 people from all over the world to discuss the future of gaming and game development in the browser. Among those 300 people were 19 great speakers, a large group of organizers and the 4 major browser vendors.

The talks ranged from how to publish and monetize games online to technical discussions on Oct-Trees and how to implement them. The variety of talks made it apparent that we who are interested in making games in HTML5 is a large and diverse group. There were several large companies present who had invested considerable time and money into making games in HTML5, investments which are only just becoming profitable. Some of these companies make game engines (for example ImpactJS and enchant.js) while others focused on the publishing possibilities of HTML5 games (Spil Games).

Microsoft, Opera, Mozilla and Google all had representatives present to evangelize their browser and boast about gaming on their platform. Even the W3C showed up to discuss features which could be included in HTML5 to make games in browsers even better (Mouse Lock is one such feature soon to make its way into the browser). With such major players all interested in game development in HTML5, the future of browser games looks very bright.

Several unsolved issues with HTML5 gaming were discussed, and especially Rob Hawkes (of Rawkets.com) brought up some interesting points about cheaters and multiplayer games. Since the source code of HTML5 games are sent to all the players, and this code can be edited while the game is running, it becomes very easy to cheat in almost all HTML5 games. This is a major problem with realtime multiplayer games, where a JavaScript hacker can quickly ruin the game for all the other players. Rob discussed measures to prevent this by running the game engine on the server side, which introduced new problems due to the network implementation of WebSockets. Because WebSockets use TCP, packets are guaranteed to arrive in the correct order, at the cost of transmission delay. In a realtime game the delay should be as low as possible, and the value of a packet arriving quickly depreciates. Very few people have looked into this problem for WebSockets, and because it uses TCP instead of UDP, it is still uncertain how much can be borrowed from other multiplayer engines (reddit discussion).

Several demos of games in HTML5 were presented, including the Isogenic engine by Rob Evans, and Team Fortress 2 in WebGL by Brandon Jones. These demos show not only what is possible today, but what is possible in the near future. Based on these demos it is impossible to predict what will be available to gamers in 2 years time, when the technology has matured even further. There was also a large focus on mobile gaming, and several games were shown running on tablets and mobile phones, either in the browser or through technology like PhoneGap. The latter is especially interesting, as it enables game developers to release the same native game for several platforms without any further work.

My talk at OnGameStart2011 was titled "How to build a 3D engine in HTML5" and with it I wanted to show how the Canvas element can be combined with JavaScript to create a simple 3D engine in HTML5. A video of the talk is available at Vimeo, the slides can be found online, and the source code to each of the demos are available in my repository (my SVN server crashed, so I have uploaded the presentation to GitHub). The talk was to be less than an hour long, so I decided to focus on the absolute basics of making a 3D engine, completely from scratch. Instead of using WebGL, I wanted to show how a 3D engine could be made using only 2D API calls. While such an engine would not be as powerful as Brandons Source/Quake/Rage engines, it would demonstrate how 3D engines work, and how to optimize drawing in the 2D context.

In the short time since OnGameStart, several conferences have been held where HTML5 game dev has been discussed, including JSConf.eu, a W3C event and in the beginning of November San Francisco will host the New Game Conf. With all of this focus on browser game development, the future of HTML5 games looks really bright, and with the rapid development of modern browsers, things which were impossible two years ago is now easy in all of the browsers. By extrapolating from this it is obvious that nobody can predict what browser games will look like in a few years.

CentripetalBox

I just received my first ever 3D printed object from Shapeways, a CentripetalBox. Shapeways provide a cheap and simple way to 3D print anything you can imagine in a variety of materials, including ABS (like Lego), stainless steel and even color printed 3D objects. This is the first time I have 3D printed anything, so I was quite excited, but at the same time expecting a designflaw showing up in the finished product.

The design I got printed was a CentripetalBox, a cube which needs to be spun around quickly to be opened. You can see a video of how it works below. The original design had 4 plugs which would fit inside the 4 slots in the box and lid, but due to the inaccuracy of the printing process, the plugs where slightly too big. The lid was also a bit too big, and needed to be sanded down slightly to fit inside the box. This was expected, but what was not expected was how tough the material was. I printed in White, Strong and Flexible, and while the surface is quite rough and seems fragile (small particles of the raw material powder will come loose if you scratch it), the actual box is pretty solid. I tried sanding down the plugs so they would fit inside the slots, but quickly moved to a file instead. A Dremel might have been a good tool to have handy. Instead of using the printed plastic plugs I used a thin steel rod cut into plugs. It might even be that the plastic plugs are too light to work. A few more days of sanding/filing, and I'll know.

CentripetalBox componentsThe rought texture of the WSF material

Having discussed the end result and design with my dad, we came up with some improvements. I'll make a new version for the Shapeways shop with those improvements (and bug fixes, like smaller plugs, and a tiny gap between the lid and the box). This is the first thing I have ever made in Blender and then 3D printed, and the fact that it works (with a bit of post-production work) is more than I expected. I have a few other ideas for 3D printing, and I'll work on them this spring (or autumn, if you are in Australia).

Get the Flash Player to see this content.

Hello world!

Wikipedia has a list of "Hello World" in every programming language imaginable!

Switch to our mobile site