Coherent UI

Discussion in 'Planetary Annihilation General Discussion' started by destravous, April 6, 2015.

?

Should coherent ui be replaced to remove the lag, inspite of the technical work this would take?

  1. Remove Coherent! the lag must go!

    16 vote(s)
    40.0%
  2. Replacing Coherent is not worth the the technical effort.

    24 vote(s)
    60.0%
  1. destravous

    destravous Member

    Messages:
    75
    Likes Received:
    56
    Basically whenever I hover or pass the mouse over a ui element, there is a noticeable delay before it responds.
    After testing it again just now though, I will say it is better then it was..but there is still room for improvement. The biggest lag for me at least is the pop up menus, for when selecting your team color, air difficulty etc.

    With the game in front of me though, I realize it is much better then before; perhaps I played to much of the beta :rolleyes:. With that said, and with the apparent coming improvements for coherent, I agree that replacing coherent is most definitely not worth it at this point. (I did say correct me if I am wrong in the op :cool:)
    tunsel11 and ace63 like this.
  2. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    Hmm I cannot notice any delays when doing the things you describe. The AI difficulty dropdown opens faster then I can move the mouse to click the elements in it.
    Really cannot notice any general delays. Well if I concentrate really hard maybe a little bit, but that might just be my mind trying to come up with a delay that isn't there.
    Nicb1 likes this.
  3. reptarking

    reptarking Post Master General

    Messages:
    1,321
    Likes Received:
    1,577
    The only ui lag I get is when I race my house around on the main menu over all the tabs and they stay blue after my mouse leaves them for a tiny bit. But I'm also running like 20 ui mods. If I went vanilla idk how it would peform
  4. billyv

    billyv New Member

    Messages:
    1
    Likes Received:
    12
    Hey guys,
    I am Billy from Coherent Labs. We follow closely the PA forum - your feedback is very important to us. We have been working with the Uber Entertainment team to help them improve the user experience of the game.
    Regarding the Chromium update, we currently have a beta of Coherent UI with Chromium 40.
  5. user123abc

    user123abc New Member

    Messages:
    8
    Likes Received:
    3
    All the bugs that I've encountered on Linux have been with the UI, as was the game breaker that forced me off Windows in the first place. Everyone on Linux (afaik) needs to force it into a special mode via --software-ui just to get the game to load.

    As someone who plays on a 4-year-old business laptop, I haven't noticed any performance issues.

    But whether the problem is with Coherent or PA's use of it, I really wish the UI were more stable.

    PA#4360
  6. killerkiwijuice

    killerkiwijuice Post Master General

    Messages:
    3,879
    Likes Received:
    3,597
    I've never had issues with the UI on Windows 7. The lobby UI in general is kinda annoying though but that is something with Uber.

    Only thing I see personally is that the UI repsonse time increases when there are lots of units on the screen; eg. client side lag.
  7. MCXplode

    MCXplode Active Member

    Messages:
    196
    Likes Received:
    28
    Its not just performance issues but stability issues that have been encountered with CoherentUI. Issues that occur on multiple platforms, windows, linux, and mac. It sometimes crashes and completely disappears. On my system its spawns over 30 threads unless I limit it to 8. I seen not much improvement when it was updated to version 2.5 or whatever it was used to be 1.8.1. Is there a way to limit coherent threads so each ui element is not running as a seperate process. Coherent-ui actually uses more cpu than the server binary or dedicated server for me. To me the ui elements are not fluid and working well together. Just because it uses chrome doesn't mean its this awesome thing to run games on . A webbrowser Chrome is an unstable platform to run games on. There are other java engines that run independently of a browser such as webkit.
  8. tatsujb

    tatsujb Post Master General

    Messages:
    12,902
    Likes Received:
    5,385
    So why not while where at it ask the question why PA doesn't come with an OpenGL version selector? Shouldn't it be that if you have a more modern graphic card you be allowed to select the latest OpenGL option from a drop down menu (with only two options, if we are to be reasonable) and then it would launch another version of PA optimised with all the latest from OpenGL 4.5?
  9. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    This is currently fully on Uber side as Coherent provided option to limit number of threads. Though last time they tried to limit number of threads too much and it's hurt performance for some players. So there is just testing and adjustments needed.

    You don't seen much improvements because problem Linux version has are likely related to Chromium version that wasn't updated with upgrade from 1.x to 2x.

    Basically it's up to game developer to split or not to split UI in multiple elements. E.g when PA was in alpha/beta UI was in single "view" most of time, but it's was lag like a hell so they split it in many.

    WebKit/Blink itself it's only HTML rendering engine while it's completely missing JavaScript support. Let's say fair attempt to build better browser than Chromium would fail unless someone have more developers than google has.

    Sadly you're likely misunderstand how graphics APIs works. You can't just "set version" and automatically use advantages it's provide. Neither D3D nor OpenGL can do that.

    And of course APIs are different, but there is no improvements you get automatically so support for every feature have to be implemented in engine code so you have two options: stick to minimum functionality depend on hardware you want to target or support multiple different versions of rendering code.

    Though OpenGL have "extension" mechanism that let you use certain functionality if it's available for current core profile. For example PA depend on 3.1 core profile, but using GL_ARB_buffer_storage that is only part of OpenGL 4.4.
    Last edited: April 12, 2015
  10. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    You should ask someone from Uber to give you a badge like @hristocoui have.

    Would be great if you guys can finally fix issue with Linux open source drivers:
    coherent_linux.jpg
    There was similar issue with cursor, but it's was recently fixed with Coherent update. Though problem with menus is still there and it's really annoying.

    Or find out why there is black screen after you go back to main menu (e.g "Surrender" in game) when PA running with "--software-ui". This problem affect PA on all platforms so it's not Linux-specific.
  11. tatsujb

    tatsujb Post Master General

    Messages:
    12,902
    Likes Received:
    5,385
    I think I did understand it would require recoding much of the PA graphics engine, what I'm saying is "that would be a worthwhile investment".
  12. MCXplode

    MCXplode Active Member

    Messages:
    196
    Likes Received:
    28
  13. MCXplode

    MCXplode Active Member

    Messages:
    196
    Likes Received:
    28
    As far as the performance of the ui in alpha and beta the performance was far better for me running it on less threads and far more stable. As far as webkit that was just suggestion throwing something out there as far as other java code out there, for example android 5.0 went with a new Java Engine (ARTS) which works entirley differently as it actually compiles the java code into machine code on the device its on and Android 5.0 can run the most of the same apps as 4.0 so migration of code to a different engine is possible. Of course with Coherent-ui I acknowledge its more of a bugger because the mods and stuff and written against specific ui elements, and I do acknowledge at this point that there is very little chance of Uber switching off of Coherent. For some of us we just had to throw our vote out there stating our biased opinions and dissatisfaction with the current ui.
    As far as the OpenGL profile some of us have done the research and I myself have done an extensive amount of research and do acknowledge just using opengl 3.2 functions isn't necessary on all games such as minecraft and am glad planetary annihilation was updated to 3.2 and as far as performance on the core game engine its been very good on that end. As far as operating under opengl 2.1 profile in this game is that the code runs unoptimized as opengl 2.1 was written for older graphics hardware with static shader pipelines. As far as the propertiary drivers games run better under the 3.2 profile because the compatibilty with older vertex shader functions is dropped where as 3.1 still retained compatibilty with some old gsl shading language code. Its not just the functions it does support but the functions it drops so just switching between 3.0, 3.1, 3.2 could make a difference on some drivers based on how they are written. As far as how the opensource mesa drivers work with 3.2 or profiles I not as familiar as I am not running those drivers but as far as I know mixing 3.2 gsl code with 2.1 code was not allowed which was happening when the game was alpha. As far as mesa they seem to be far behind the curve with getting their code up to snuff with current opengl support as I've heard it doesn't even fully support 3.3 that they've taken shortcuts with their code.
  14. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    I think you mix up javascript and java. They are entirely different languages and have only a somewhat similar name. PA uses javascript, android uses java. Very different things.
    I think we are on quite different platforms, but my perspective as a user with a win7 x64 system with 16GB ram is that the UI in alpha was crashing all the time and lategame became extremely unresponsive.
    That is a LOT better in the current version. Crashes only rarely (and all of the crashes seem to be directly on startup of the ingame UI, there probably is one bug there that needs to be fixed) and is pretty responsive overall. Though my impression of that is influenced by my knowledge of the UI. There are some areas where it does lag and I know why those areas lag usually. They all do not boil down to "coherent is bad", but rather "this feature could use a little extra work as currently it does things that even would be slow in a native c++ written UI".

    I guess the one area where the UI lag really is related to coherent is the startup of live_game. Creating 30 processes does take a moment, especially when you are playing with the minimap mod. That mod does some cpu intense things on initialization in its own extra panel...
    Nicb1 likes this.
  15. MCXplode

    MCXplode Active Member

    Messages:
    196
    Likes Received:
    28
    Well yes I have mixed up java and javascript engines here as I was just trying make an example of comparison of different java and javascript engines and as far as javascripts its easier to migrate accross diffent platforms than just java. Perhaps I should speak more metaphysically or allegorically here when it comes to making comparisons. My first example was Webkit which is javascript not java then someone rebuttles and states its not an actual javascript engine which as far as I know google chrome used to use a fully functional form of webkit java scripting which needs javascript to do html rendering, and on my linux box you can get webkit-gtk which functions for the ui and as far as I know you can't do html rendering without somekind of script running . My point is if you can migrate code to 2 different engines on java then it can be done in javascript too. In these last 2 builds Coherent has become more unstable than before with all coherent threads crashing 10-15min in game leaving no ui control no matter if I limit to 8 threads or let it spawn over 30.
  16. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    PA UI not just need javascript. It's need complete browser solution for UI to work properly and nobody can just go and create better browser than Chromium is. There of course other browsers available like Firefox, but I never heard there is appropriate support for embedded usage.

    You may try whatever attempt to create "lightweight browser" like Midori and it's will crash a lot more than Chromium and will still fail in many cases. It's because web standards are extremely complicated and PA codebase likely 20-50 times smaller than Chromium codebase.

    So point I want to make: no, Uber won't able to create "own Coherent" even if they want to. And sadly there is likely no better replacement at moment except using Chromium Embedded Framework on your own which not going to guarantee better performance and stability.

    Webkit is mainly rendering engine and not JavaScript engine. It's have component called "JavaScriptCore", but as far as I aware there are no browsers that using it as it's just reference implementation.

    PS: Just in case PA server does use javascript engine standalone, it's V8 from Chromium, but it's have nothing to do with UI and it's not likely caused any crashes.

Share This Page