Hacker News new | past | comments | ask | show | jobs | submit login
Turbulenz HTML5 game engine is now open source (venturebeat.com)
115 points by gregpurtell on May 3, 2013 | hide | past | favorite | 29 comments



It looks like they used TypeScript for a good portion of the client code! That's really interesting. I wonder what the positives and drawbacks for that decision were. If a developer from turbulenz is viewing these comments, I'd be really interested to know why you picked TypeScript.

(it looks like the emacs plugin finally works for TypeScript as well, how convenient!)


One of our colleagues wrote this article about our decision and the process we followed to migrate our existing JavaScript code to TypeScript:

http://news.turbulenz.com/post/47457658846/mostly-painlessly...


Do you know why the Polycraft game is so much more pixelated on Firefox than Chrome?

Update: It looks like Firefox's WebGL anti-aliasing is off by default. You can toggle this "webgl.msaa-force" pref to control anti-aliasing.


All the HTML5/WebGL stuff may be nice for casual gamers, but as a gamer I really don't want all that stuff.

Same visual quality/performance as a native game is probably not possible and every game in js will perform worse AND create more load (and waste energy).

Why is everyone trying to move games and big applications to the web?


Like you I'm a gamer, and like you this doesn't appeal.

However I can see exactly why people are doing this. There have been a big explosion of indie games recently and that can be put down to iOS and Steam. Both make it super easy to get games.

Anything that reduces friction is going to be very appealing to game makers. And installing Steam is friction. If playing your game simply involves visiting a link - thats pretty easy. As HTML5 matures, as more people use modern browsers, and as Flash becomes less reliably installed on browsers, expect to see a lot of casual games moving to HTML5.


Steam makes it super easy to get games but installing it is friction?

I am a gamer with an interest in the indie sector but don't have steam because my first experience with that extra platform abstraction - Origin - has put me off. Neither do I want a game as a web page. I want a gaming experience and that for me is still a standalone executable. I even dislike not having a physical copy of digital distributions.


In the end isn't it just about having fun? Whatever format is most efficient for the developer to deliver fun, let them run with it.


Couldn't you say the same even for native mobile gaming? Or even PCs vs. consoles...

There are plenty of game types -- some "casual", some not -- that are perfectly satisfied by either lower hardware or arcane/wasteful software stacks. And you can benefit from the ease of development, distribution and cross-platform capabilities. Energy, sure, but with browser-based 2D games that's mostly CPU, so given the identical native game we're talking about what, a 30W difference? Might as well tell people not to play triple-A games with their SLI GPUs...

This isn't really a new discussion, as you can bring the same argument for desktop apps, too. Look at something like extjs, compared to native GUIs. Wastes heckuva lot of resources to try to look like a real application and will never reach that (like early Java...). But it's darn convenient...


Because if you're creating a 2d game, it can be rendered reasonably fast in your browser.

Full 3d is a different problem.

However, a game like Monaco, with super simple controls but really interesting game play, could absolutely be built in the browser. This gives an easier distribution medium, more control over who is using the game, and if you're already a webdev it fits in nicely with your pre-existing skill set.

The bar is significantly lowered for a lot of weekend warrior game makers if you're going the 2d route.


Lower development and support costs. (In theory.) If you can ship one build and it runs on every device you care about, that's a huge burden lifted.

It's not there yet for all types of games or applications, for a number of reasons, but the performance aspect of it is gradually coming under control and most of the issue now rests on API functionality and browser compatibility.


It's great for small, experimental indie games that want to reach as big of an audience as possible. Think Ludum Dare. For bigger games, though, I agree completely.


Especially the unreal engine Epic Citadel demo. Why do they waste time trying to move one of the most advanced and complex game engines to the web? A native UE3 game utilizes the full power of modern hardware. Even if they get JS to run at 50% of the native speed, it still is too slow for heavy games, but it will create the same CPU load, waste 50% energy and requires faster hardware.

Why not compile everything to brainfuck? It reminds me of that post of the guy who booted linux on an 8 bit uC :D


Recently there were some interesting articles about JS optimization by the Turbulenz guys: http://www.gamasutra.com/view/feature/186171/making_the_move...


This is really cool! There are some really amazing features packed in there. After browsing the website a bit, I didn't see a whole lot regarding mobile deployment. Is there a builder/packager included that targets native iOS and/or Android, similar to GameClosure, CocoonJS, directCanvas, or Ejecta?


Hi. We are making progress with our native wrapper which you can see here: http://news.turbulenz.com/post/46003970366


Hmm, while the games made with it look quite good, I'm not sure whether to call it a "true" HTML5 game engine or not. You have to download a plugin for your browser to play these games.


This is a classic problem of trying to be helpful and it's confusing people until they understand the details.

The engine uses HTML5 and WebGL. When the required APIs aren't present it falls back onto a plugin. This is supposed to be helpful for developers because it means the games will work on pretty much all browsers include IE.

But it confuses people because some people think a plugin is required.

So what's better -

1. Not providing the fall back and telling users they need to switch browsers? Good for helping people to understand it doesn't require a plugin, but not great for developers who want everyone to be able to play their game, or

2. Providing the fallback.

Additionally, it's worth noting that the games and engine don't have to provide any plugin support. It is actually the game site application code that is doing the detection and trying to be helpful.

The Turbulenz Engine is an HTML5 / WebGL framework.


Yes you're right. Thing is, I used Safari 6 to check it out which has WebGL disabled by default. The site offered a download immediately instead of hinting that I might have to enable WebGL.

The fallback is quite a good idea, but it should've detected that I do have a modern browser which simply might be misconfigured for the game experience.


Yep, you're right. We could definitely do a better job of detection. But at the moment we're looking for the 'feature' rather than the browser.


An alternate approach would be to prompt the user, telling them that using an updated browser with WebGL support (Obviously worded better for the non-technical) would not require a plugin, but give them the option to download a plugin if that is what they want to do.


Yep, you're also right. We should improve the case you describe. Thanks for the feedback.


Which plugin are you referring to? I was able to try Save the Day, Polycraft, and Score Rush [1] w/o installing anything.

[1] http://news.turbulenz.com/post/49430669886/turbulenz-engine-...


That's absolutely not the case, I just tried their games with all plugins disabled in Chrome and it works perfectly. This looks like a great engine!


You don't. You can run https://turbulenz.com/games/polycraft/ in a modern browser without any plugins. The plugin only exists as fallback for older browsers.


Now I'm curious. Which browser are you running? The two major browsers support WebGL.


huh. I would say that it's not really a HTML5 game in any sense of the word if you have to download a binary blob that runs in your browser window.


The engine uses WebGL. If your browser supports WebGL you are good to go, if not, we have a plugin that allows you to still play the game.


Ah, I see. That makes sense.


Why isn't there an open source standard game engine built in browsers (compiled to .exe itself)?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: