Comment by timschmidt
1 month ago
> I can guarantee you any gamedev worth his salt will have used alt-tab at some point in the game's development on windows.
Not exactly a repeatable testing framework, that.
> You seem to be trying really hard.
I almost strained a typing finger! /s lol
> Most devs are using cross platform graphics APIs. OpenGL/DirectX/Vulkan. Alt-tab breaking is likely an OS issue.
All the OSes seem to suffer from it similarly. More likely an issue that even the cross-platform graphics APIs rely heavily on shared memory buffers and most games depend on code written in languages which aren't strictly memory safe. Sharing a memory buffer between CPU and GPU (or even just multiple CPU cores) is quite difficult to do safely under all possible circumstances without proper language support.
Yea I don't know how you can consider something as not 'tested' without a testing framework behind it.
Perhaps you're not a software developer. Most devs understand that there's a big difference between "it worked for me a few times on my development workstation" and "it's routinely tested in all possible configurations under a variety of circumstances as part of a test harness or CI/CD process".
In fairness to game devs, alt-tab'ing out of a running game would be a challenge for many testing frameworks as it's not something you can do at compile time, requires running the game for a period of time (CI servers don't typically have GPUs), requires some sort of keyboard/mouse automation, and interaction with the underlying OS in addition to the game.
Issues which aren't added to some sort of test suite/CI tend to creep back in to codebases. Especially rapidly developed codebases like games. And threading issues are notoriously challenging to reproduce. Hopefully that helps you understand the difference.
Many game devs develop on windows and for good reason in that most of their customer base are there, plus the stability of drivers there.
Your assumption of what you've been taught in compsci circles with many resources at their disposal does not hold up in places in which fast iterations are required, and with little time to set up testing frameworks because as you said they're hard to test.
3 replies →