Search Unity

Hypothetical UI System... if you could have anything what would you want?

Discussion in 'General Discussion' started by trooper, Apr 9, 2014.

  1. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    We're working on a UI system which is definitely "outside the box" compared to the other systems available and I was wondering what people would want in a ui system?
     
  2. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    I want a UI system that will just have widgets for everything you'd normally do, and give you the tools you need to make custom ones as necessary.

    This doesn't mean you place a panel, then place a background, titlebar background, titlebar label, scrollbar background, scrollbar button, etc etc etc.

    It means you place a dialog widget and get all of the above, with the scrollbars appearing as necessary. (Or not, if configured to simply hide the excess.)

    It also means that you only have to define what a scrollbar looks like once, in the config, and any changes to that config automatically change all the scrollbars in the entire app. Or at least the ones that are using that config. Yes, it should allow multiple configs, and changing them on the fly.

    Basically, a typical non-gamedev windowing toolkit.
     
  3. Deleted User

    Deleted User

    Guest

    Something like Daikon Forge with Vectors, in other words a WYSIWYG vector UI / HUD system..

    I'm pretty sure it would make you a fortune, but it isn't easy to accomplish.. XAML / Scaleform systems are cool and all, they work well. But they tend to be extremely time consuming, here's hoping the GUI baseline in 4.6 will rectify the issue.
     
  4. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    Are there any widgets missing from current systems that should really be added? I know a drop-down list is something I'm interested in and will be adding to our solution but are there others?
     
  5. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    769
    1. Vector based,
    2. Minimal draw calls
    3. as wccrawford says, high level components: I want a dialog box. I want a combo box, I want tabs, I want a navigation menu, I want an inventory grid
    4. WYSIWYG editor
    5. Extensible, let me make my own components
    6. Event based, ie. a button raises a clicked event, any object can subscribe to the event (thankfully it looks like unity is moving this way already)
    7. Support for touch screens
    8. Support for controllers
    9. Theme support, something like css
     
  6. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    Are vectors a must or would automatic scaling of sprite atlases meet that need?
     
  7. BrainMelter

    BrainMelter

    Joined:
    Nov 20, 2012
    Posts:
    572
    Yeah SVG seems like a pretty weak point with Unity. It's one of the few places where flash has an advantage over Unity right now. There are some plugins for it, like ragespline, but there's no unified effort to bring it closer to Unity's core tech.
     
    Last edited: Apr 10, 2014
  8. Deleted User

    Deleted User

    Guest

    For mobile games / shooters / introductions etc. you can't beat a good old Vector based UI :)
     
  9. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,822
    Drag and drop UI sreenshot from Photoshop
     
  10. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    We may have to adjust our plans a little :) We're going down the slice-9 road for most things but Vector isn't something we've looked at yet.
     
  11. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    I would definitely look into doing Vector based UI's... and also I agree with a photoshop capture where we place the UI elements whereever, and also the ability to rescale at will. Also we need the ability to create arrays from two sources images (example: life bar assets, one empty and one full... and also add extra elements to that array
     
  12. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    Flash... for Unity.
     
  13. rahuxx

    rahuxx

    Joined:
    May 8, 2009
    Posts:
    537
    Before commenting anything on requirements would like to see some screens of your progress, if possible.
     
  14. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    Would love to but I can't talk about it yet as it's not near enough complete and I'm trying to get some unbiased opinions on what people want.
     
  15. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    769
    The new UI is 9 slices based. Having vectors would be a very nice differentiation.
     
  16. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    Two questions for those interested:

    1) I have a choice between the following for font rendering:

    a) Pack all fonts into a "menu" atlas, if there are multiple menu atlases then there are double ups.
    b) Pack all fonts into it's own atlas, this means that all fonts are always loaded, even if you only use 1
    c) Pack fonts into invidual fonts and have seperate materials for them, adds a draw call for each font
    d) Pack fonts into individual fonts and use shader to determine which atlas to use, adds overhead to rendering all UI.

    Which one do you guys think would be better?

    2) Drop shadows, outer glows and outer/center strokes don't work very well with text, is it worth adding an option to allow these effects to be drawn first before the actual text is drawn? It would obviously increase the amount of texture memory and disk space needed.
     
    Last edited: Apr 17, 2014
  17. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    Also, if anyone is able to give me an example of how they split up their atlases, that would help greatly.

    We split our game's atlases into Main Menu, Championship Menu, In Game Menu etc. Trying to make sure that menu textures are loaded in during longer load points and not at the start.

    How are you guys splitting them up? Are you using one big one for everything?
     
  18. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    769
    If the fonts are packed into atlases, I could not use this. My game is very popular in Japan, so I must have Kanji characters. Add a few hundred Kanji characters to an atlas and it's size becomes prohibitively large or it becomes so small that looks awful and unreadable when enlarged.

    I have to have true type fonts. Either that, or I would need access to the system fonts, so I don't have to pack fonts with my game.
     
    Last edited: Apr 17, 2014
  19. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    What about a system that uses something like an excel spread sheet to manage languages and the ui system detects what kanji characters are used and just packs those?
     
  20. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,182
    That sounds useful. I am checking the English in an excel spreadsheet with a dozen tabs - column 1: var name / column 2: English / column 3: Chinese and then a column for each language used.

    I don't know how they do it. They don't use Unity.
     
  21. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,369
    That's how we actually do localization, by reading excel files (in-editor) and then bake them into readable assets to make them work at runtime.
    As for the UI, pretty much what everyone requested.
    A tool that let us create Widgets that can be created with XML like languages but also skinable/twekable through the editor.
    I'm not looking for a new version of NGUI or Daikon Forge. We need an UI system with dynamic widgets that are programmer but also artist friendly.
     
  22. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    I agree, the system we are building separates the workflow, artists design and layout the ui, the system prepares the UI by generating fonts, atlases and basic ui rendering code, the programmer can call this code from their game loops like a library, rig up functions to the available events or overload events on an inherited class.

    At the moment it's not friendly for those that currently drag and drop scripts onto buttons but the art side of it is all WYSIWYG so hopefully the first version will be suitable for small teams but maybe not individual devs with limited coding abilities.
     
  23. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,369
    I would be very interested on such system! :)
    [EDIT] Anything that can empower programmers, something that can sit between immediate mode and retained mode would be awesome yeah!
     
    Last edited: Apr 18, 2014
  24. goldbug

    goldbug

    Joined:
    Oct 12, 2011
    Posts:
    769
    It is better than nothing, but it is not ideal if you want to have chat, since you don't know what users will type.

    But unity already supports dynamic fonts, can't you reuse that functionality from unity?
     
  25. trooper

    trooper

    Joined:
    Aug 21, 2009
    Posts:
    748
    Yes definitely. This system will need dynamic fonts for stuff like that. Thanks for the tip.