Linux fixes in PTE 82000

Discussion in 'Mac and Linux' started by mkrater, May 22, 2015.

  1. mkrater

    mkrater Uber Alumni

    Messages:
    1,349
    Likes Received:
    1,830
    We've been working on some Linux bugs and were able to get a couple in our latest PTE 82000.

    From the patch notes:
    -Fix some cursor bugs that Linux users with specific graphics drivers have been experiencing
    -Support opening browser from PA on Linux. It should now open the user's preferred browser (by relying on the `xdg-open' command.)
    -Fix invisible CSG for Linux users when playing on PlayFab or on someone's Windows server, but not when playing offline. This should marginally reduce load times for all users.

    We're still working on more, so stay tuned! :)
    tracert, Remy561, n00n and 1 other person like this.
  2. n00n

    n00n Active Member

    Messages:
    345
    Likes Received:
    210
    Installing now. Thank you Uber! :D
  3. noventhehero

    noventhehero New Member

    Messages:
    3
    Likes Received:
    0
    Well the mouse fix worked, but now my UI looks like this where buttons should be: galactic_war:storage_compressing

    I hover over unit buttons to build them and get similar stuff.
  4. DeathByDenim

    DeathByDenim Post Master General

    Messages:
    4,328
    Likes Received:
    2,125
    That means the localization doesn't seem to be working properly for you. How did you do the update to PTE? And can you run it again to make sure no files are missing?
  5. crizmess

    crizmess Well-Known Member

    Messages:
    434
    Likes Received:
    317
    Hi @mkrater

    Out of pure curiosity of a developer, can you give us a little insight on what caused this strange behaviour on Linux?
  6. noventhehero

    noventhehero New Member

    Messages:
    3
    Likes Received:
    0
    I uninstalled from Steam and reinstalled to no avail. I received the update over Steam automatically. What should the localization be if it is not working properly and how do I fix it (if I can on my end)?
  7. DeathByDenim

    DeathByDenim Post Master General

    Messages:
    4,328
    Likes Received:
    2,125
    You can try verifying the integrity of the game cache (See steam help).
    Could you also check Settings -> UI -> Language? Is it set to English - US? What happens if you change to another language? (And remember the buttons to press so you can switch back to English. :))
  8. noventhehero

    noventhehero New Member

    Messages:
    3
    Likes Received:
    0
    Did all that and I still have the same issue. I sent in a ticket so lets hope that it gets fixed sometime. Until then, I cannot really play the game.
  9. DeathByDenim

    DeathByDenim Post Master General

    Messages:
    4,328
    Likes Received:
    2,125
    Just to rule out any issues with Steam, can you try a non-Steam installer? There isn't an official one for Linux (yet), but there is an alternative one here: https://forums.uberent.com/threads/alternative-pa-launcher.68233/
  10. jorgenpt

    jorgenpt Uber Programmer Uber Alumni

    Messages:
    164
    Likes Received:
    390
    Normally how the game works when you use random systems is this:

    1) The server generates planet(s) with CSG based on some PRNG seed.
    2) The server sends this generated system to the client.
    3) The client parses this system.

    The issue was that #3 had accidentally been broken when we introduced custom CSG, but we did not notice because the server *also* sends the seed it used along, and the client was quietly regenerating the system based on the random seed. In most cases, the client would end up with exactly the same planet CSG (because it runs the same code as the server), but there's a subtle difference in how the Linux and non-Linux planet generator works, causing the server (Windows) and client (Linux) to disagree about the positions of some CSG. We fixed it by making the client parse the system it got from the server -- like we intended -- rather than generating its own. The planet generator still generates slightly different planets on different OSes, and you might notice this if you save and load a system in the system editor on two different platforms. This is not something we're too concerned about, and so we're not pursuing this bug right now.
    n00n, cdrkf, crizmess and 3 others like this.
  11. crizmess

    crizmess Well-Known Member

    Messages:
    434
    Likes Received:
    317
    Thank you for this explanation!
    So basically, one should be very carefully if using PRNGs on different OSes.
  12. veep

    veep Member

    Messages:
    45
    Likes Received:
    54
    Hey, am I reading this right as a problem of rand() differing between systems? The following is "a portable implementation of rand and srand" given in the C99 standard[1]:

    Code:
    static unsigned long int next = 1;
    
    int rand(void)     // RAND_MAX assumed to be 32767
    {
            next = next * 1103515245 + 12345;
            return (unsigned int)(next/65536) % 32768;
    }
    
    void srand(unsigned int seed)
    {
             next = seed;
    }
    
    No, these aren't the best PRNGs but they're good enough, fast, and easy to write.

    [1]: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (page 347)
  13. jorgenpt

    jorgenpt Uber Programmer Uber Alumni

    Messages:
    164
    Likes Received:
    390
    No, I believe it is more subtle than that. It is probably the compilers generating slightly different code for some undefined / poorly defined operation. The CSG is mostly the same, except for some small differences. In either case, it is not too important, because the engine is not supposed to rely on the RNG sequence on two different machines matching up.
  14. veep

    veep Member

    Messages:
    45
    Likes Received:
    54
    Fair enough, nevermind then. :) Interesting though, first guess a floating point conversion somehow.

Share This Page