Game UI

Discussion in 'Backers Lounge (Read-only)' started by vonWolfehaus, January 20, 2013.

  1. vonWolfehaus

    vonWolfehaus New Member

    Messages:
    19
    Likes Received:
    0
    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 :)
  2. KNight

    KNight Post Master General

    Messages:
    7,681
    Likes Received:
    3,268
    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
  3. BulletMagnet

    BulletMagnet Post Master General

    Messages:
    3,263
    Likes Received:
    591
    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.
  4. vonWolfehaus

    vonWolfehaus New Member

    Messages:
    19
    Likes Received:
    0
    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?
  5. NortySpock

    NortySpock Member

    Messages:
    66
    Likes Received:
    2
    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
  6. Zimeon

    Zimeon New Member

    Messages:
    15
    Likes Received:
    0
    I think they stated these reasons on one of the webcasts.
  7. pizwitch

    pizwitch Active Member

    Messages:
    198
    Likes Received:
    60
    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?
  8. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    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).
  9. chirmaya

    chirmaya Member

    Messages:
    30
    Likes Received:
    1
    This is going to be something that should be really fun to play around with in alpha!
  10. vonWolfehaus

    vonWolfehaus New Member

    Messages:
    19
    Likes Received:
    0
    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!
  11. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    Not my area of expertise sorry.

    Who knows, we may change our mind. It is a total pain to integrate.
  12. sinanm89

    sinanm89 New Member

    Messages:
    9
    Likes Received:
    0
    I enjoyed reading this thread.
  13. feffrey

    feffrey New Member

    Messages:
    2
    Likes Received:
    0
    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.
  14. narthollis

    narthollis New Member

    Messages:
    7
    Likes Received:
    0
    And there goes your cross platform.

    Yeah sure flash runs on Linux. Kind of. Sometimes. Maybe. What if i... No?
  15. feffrey

    feffrey New Member

    Messages:
    2
    Likes Received:
    0
    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.
  16. sylvesterink

    sylvesterink Active Member

    Messages:
    907
    Likes Received:
    41
    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.
  17. elexis

    elexis Member

    Messages:
    463
    Likes Received:
    1
    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)
  18. saphrogi

    saphrogi New Member

    Messages:
    2
    Likes Received:
    0
    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 :D
  19. dantealiegri

    dantealiegri New Member

    Messages:
    21
    Likes Received:
    0
    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.
  20. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    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.

Share This Page