Hello Uber and all you sexy backers, I've asked this question on Facebook and Twitter but did not receive a response, so I'd like to try these forums now. Why webkit for the UI? I'm pretty familiar with it (it's part of my day job, as a web engineer), and its maturity is severely lacking in terms of API for doing interesting things for interfaces (canvas versus Flash's Stage, for example). On top of that is its sheer size, inflexibility, and poor performance. Take a look at Firefall. They implemented Awesomium, which is webkit-based, and its interface is extremely sluggish and has some very tight limitations that I watched them struggle with throughout its alpha/beta periods. It's still not there yet, after several years. Please don't make the same mistake they did (note that the critical parts of their UI are built on their own LUA-based system because Awesomium wasn't up to the task). If you want to be friendly to modders, use Scaleform, a very fast and powerful platform that is used in many other game engines like Unreal and CryEngine, so modders are already familiar with it. It uses an ECMAScript-based language too (which is what both JavaScript and ActionScript 3 are also based on). Plus its optimized for games already. Or roll your own UI system. Really, anything would be better in both the short- and long-term than webkit. Thank you for your attentions
This should probably go in the General Discussion Sub-Forum, we've even had a few good threads regarding Uber's choice of UI system. Mike
Uber should be familiar with ScaleForm already; they did release MNC and SMNC which run UE3. The fact that they decided to not continue using it speaks volumes.
Thanks, I was not aware. I'll do a search around there and see what I find. Prost. Edit: Only found this (from here): Contrary to what BulletMagnet may think, sounds like they are becoming aware of the problems. They had no idea what such a decision would entail and so they're learning. They should have stuck with what they knew. So my question remains: why?
As far as I can tell: because it makes it easier to write, and easy to mod. They would like to (1) make it fast, and thus cheap to write and (2) make it easy for modders to come up with better UIs
I don't think that webkit is a good solution for the same reasons too. PA is going to consume a lot of computer resources, and on top of that, you want to add a webkit layer?... Do you know that ActionScript 3 is a faster than Javascript, have stronger API and typing? And free to use?
Scaleform was horrific for us. We need a web browser in the client, so why not use it for UI? If you have something better I'm happy to look at it but Scaleform is definitely not it. We do have our own UI system we can fall back on if we need to but quite frankly it's not up to the task without a lot of work. If the javascript UI is too slow for in-game usage we can always come up with something different for that. For the front-end stuff the web solution is a no-brainer because perf doesn't matter. Being able to customize the lobby per game server is going to be pretty awesome (the lobby is just a web page served by the server).
Oh man, sorry to hear that. Can you go into any details on what the problems you encountered were? Glad there's a plan B, even if it isn't too great. And I appreciate the reason you mentioned above much better than the other reasons that have been given (those were moot). Regardless of how it ends up, I'm really looking forward to exploring the systems you guys are coming up with!
How about flash? World of Tanks GUI is flash based and has some really need UI mods. It is pretty easy to mod and is pretty expandable.
And there goes your cross platform. Yeah sure flash runs on Linux. Kind of. Sometimes. Maybe. What if i... No?
pfft linux, who uses that :roll: I didn't think about that. I am not sure if the game actaully renders it in flash. The files that control the gui are in swf but the client does not install flash I think.
Ahem. Besides, Flash is the last thing I'd want to base my UI engine on. Going back to LUA, or writing your own scripting language would be a better alternative.
Also ahem. And flash needs to die for so many reasons. (Surprisingly it shares a lot of those reasons with Adobe Reader and Java Web Plugin)
Nice and interesting thread! Despite being an ex Flash/Flex dev i would not suggest integrating Flash in your UI. Although it is possible to wrap the player and ship it inside the software with no further installations needed, the player itself is quite a pain to handle and forces you to think a lot about security issues (though i agree about it's speed and ease to mod/integrate). Anyway i was curious too about what difficoulties might be arising in the integration of webkit inside your UI. Cheers guys have nice day
I would be surprised if a modern JS engine backed UI was not fast enough. With the JIT compiling that they provide, you can push the JIT load wherever you want, and once it is JIT'd it will be within an order of magnitude of any scriptable gui. If an element becomes too slow for script, you push parts of all of it into the core engine. I'm not actually asking this to neutrino, but vonw. Also, I would imagine that Awesomium is designed for apps, not games, which was part of their problem. It's part of the reason that for instance, even to this day, it is a beast making a game in Java .. the language/VMs memory management gets underfoot all day, and everyone always has input problems when going cross platform.
It's not so much the javascript as the layout / rendering engine in the browswer that you have to worry about. Anyway it's setup to be async and we can always push stuff into the engine if necessary.