Announcement

Collapse
No announcement yet.

Feral Publishes Linux Port Of Total War: WARHAMMER III

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by skeevy420 View Post
    That save game one really irks me. Please don't tell me that saving games depends on a Windows exclusive math library. Net code, engine rendering, and random calculations, sure, I'll believe that, but saving games?
    Often it's just a matter of making everything lowercase in the directory tree and in the source code when inheriting a Windows codebase and trying to make it compile on Linux.

    See here:
    Cheesenesshttp://linux.conf.au/schedule/presentation/189/What's involved in making a game that doesn't support Linux supportLinux? How can Free/Open Source S...

    At circa 14 minutes, on the screen it mentions case sensitivity.

    Or here:
    This talk is targeted at Windows Steam developers that are interested in preparing their games to run on Linux. It will cover available tools, the basic port...

    At circa 31:30 he talks about filesystem gotchas.

    As an example, the Borderlands 2 port from Aspyr has the same binary format for its savefiles, but filenames are lowercase on Linux and uppercase (or mixed, can't remember) on Windows. I successfully renamed them back and forth until I settled on Proton so I could play with friends on the latest version, otherwise the "native" Linux port would be way behind and thus be incompatible for online co-op.
    The original Windows game through Proton performs way better anyway. Mesa drivers do the separate OpenGL thread trick when they detect the native Linux version, otherwise it performs quite poorly.

    When case sensitivity is the only difference, there's no reason developers shouldn't make an exception for savefiles during their tolower()ing process. Just the same, there's no reason Windows-centric developers shouldn't make their code decent and go lowercase themselves.

    I kid you not, I've seen embedded software developers write includes in uppercase when the files were lowercase, or viceversa, and they wouldn't have a clue because their big proprietary IDEs on Windows don't complain about that... and it was meant to be a space-grade application. Aren't you sweating at the thought of that same disattention applied somewhere else in the code?
    Now imagine that, but with even less quality control: that's videogames development.

    See what I mean with evangelism? If you don't reach out and spread some best practices, well, that's how things will stay. And after all, can you really blame them? Well, I guess you can, somewhat... but ultimately, they are the ones producing what we love, while under pressure from management.

    Comment


    • #32
      Originally posted by chocolate View Post
      Trimmed
      I have my games and proton prefixes on a ZFS case insensitive volume just to combat issues like those. Thanks for the suggestions, though.

      Code:
      zfs get casesensitivity,compression zeta/layer/games/pc/windows
      NAME                         PROPERTY         VALUE           SOURCE
      zeta/layer/games/pc/windows  casesensitivity  insensitive     -
      zeta/layer/games/pc/windows  compression      lz4             inherited from zeta
      Unfortunately that didn't mitigate this issue. What I found was that the only real fixes were to either disable cloud syncing and treat the Windows and Linux versions as completely different games or to play them from Proton when on Linux so they use compatible save file formats.

      Comment


      • #33
        Originally posted by skeevy420 View Post
        Unfortunately that didn't mitigate this issue. What I found was that the only real fixes were to either disable cloud syncing and treat the Windows and Linux versions as completely different games or to play them from Proton when on Linux so they use compatible save file formats.
        Aren't Steam cloud saves separate for each incompatible platform? I can see how they could be a huge pain if they are incompatible, but not separate.

        In my experience I just copied my files, made manual backups and renamed them. See if, in addition to case sensitivity, perhaps there are slight variations to letters and numbers, because now that I think about it, maybe I did that as well for Borderlands 2. It's definitely written somewhere in Steam discussions.

        Cool trick with ZFS. Is it recognized by Proton just like case-insensitive EXT4 as preferred by Valve?
        Cheers.

        Comment


        • #34
          Originally posted by chocolate View Post
          Aren't Steam cloud saves separate for each incompatible platform? I can see how they could be a huge pain if they are incompatible, but not separate.

          In my experience I just copied my files, made manual backups and renamed them. See if, in addition to case sensitivity, perhaps there are slight variations to letters and numbers, because now that I think about it, maybe I did that as well for Borderlands 2. It's definitely written somewhere in Steam discussions.
          Not in that case. I'd start the game, it would say something along the lines of "corrupted data", and I'd have to start over from the beginning; all progress lost. When it happened to me the 2nd time a few months ago, about a year after the first incident, I quit playing it. It isn't fun starting over.

          You'd think those would have inspired me to start backing up my save games....but you'd be thinking wrong

          Cool trick with ZFS. Is it recognized by Proton just like case-insensitive EXT4 as preferred by Valve?
          Cheers.
          I've never looked at the logs to see . It's just one of those things I've always done because it doesn't take long to do. I'd check but I just rebooted into Windows to update MSFS and the firmware on my PS5 controller.

          Perhaps ask me that again tomorrow. MSFS updates take a while. You'd think Microsoft would have fast update servers for their product.

          Comment


          • #35
            Originally posted by qlum View Post

            The reason they have given for this in the past is that the Total War games use a math library on windows which is incompatible with linux.
            If Wine can manage to run fine with that library, it's a poor excuse for Feral.

            Comment


            • #36
              Originally posted by galad View Post
              But if people are ok with Linux gaming user-space being just a Windows API implementation, all is good in the world.
              The biggest advantage I see: wine will still work in some 10 years. I'm not so sure about all the native ports.

              Comment


              • #37
                Originally posted by oleid View Post

                The biggest advantage I see: wine will still work in some 10 years. I'm not so sure about all the native ports.
                Exactly. People don't really think about it, but let's face it, there is nothing in the desktop OS space that comes close to the backwards compatibility win32 offers. So it's very good for game preservation. Regarding native ports, I already heard about cases that old ports stopped working because of dependency rot.

                Comment


                • #38
                  Originally posted by oleid View Post

                  The biggest advantage I see: wine will still work in some 10 years. I'm not so sure about all the native ports.
                  No difference between providing a fixed version of Wine/Proton for every set of games that require it, and providing a fixed container environment for every set of native games that require it.

                  Also old games on modern Windows don't work. I happen to write about this every now and then when this topic comes up, just recently I gave the horrible Star Wars TFU a try and what do you know, people on Windows jump through hoops to make it work, and when it does, it doesn't play cutscenes and crashes constantly. Had zero of those problems on Proton.

                  So it's not like Win32 magically makes things work forever. Wine does.

                  Comment

                  Working...
                  X