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!
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.
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?
Hi @mkrater Out of pure curiosity of a developer, can you give us a little insight on what caused this strange behaviour on Linux?
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)?
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. )
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.
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/
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.
Thank you for this explanation! So basically, one should be very carefully if using PRNGs on different OSes.
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)
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.