Anatomy of a Game: Startup and Loading

  • We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
You mentioned Linux and the performance with respect to open small files compared to Windows. I was wondering, is there any difference in the loading time between MS Windows and Linux? Actually, it would be interesting to have an “Anatomy of a Game” regarding the port to minor platforms, the compilers used (MSVC and GCC I imagine), DirectX vs OpenGL vs Vulkan (vs Metal), etc. In my (small) experience supporting different platforms is really useful to squash hard-to-find bugs and keep the code clean enough.
 
You mentioned Linux and the performance with respect to open small files compared to Windows. I was wondering, is there any difference in the loading time between MS Windows and Linux? Actually, it would be interesting to have an “Anatomy of a Game” regarding the port to minor platforms, the compilers used (MSVC and GCC I imagine), DirectX vs OpenGL vs Vulkan (vs Metal), etc. In my (small) experience supporting different platforms is really useful to squash hard-to-find bugs and keep the code clean enough.
I'd have to get a Linux machine or have someone do a load compare, in general Linux loads faster than Windows from my prior experience on our games by a decent amount but run time is usually pretty comparable.

As for the porting to other PC platforms there is not a whole lot to say really, we use MSVC and Clang for compilers. DirectX and OpenGL with a future looking at Vulkan/Metal but that is all on our engine side, on the game team (and even a lot of the engine code) is just abstractions over that so we never need to directly mess with that ourselves. Otherwise we generally use portable code only, or if we do need platform things then again wrap it in one API that dispatches to the platform versions.

Most of the benefit I've found is that Clang catches bugs MSVC will let through as its a bit more strict on C++'s rules sometimes (though I'm sure a few of those MSVC ignores are due to some of our compile flags there). But its never world ending stuff really, but nice to catch though for sure as its objectively more correct programming wise. Otherwise its a lot of annoying bugs that are tedious to fix that only show up for a small % of users, we still aim to fix them but platform specific bugs are a bit of a pain ;)
 
  • 3
  • 1Like
Reactions: