I’ve done hardly any game development in my life (making a simple Gamemaker game at high-school in 2016 or 17, & making a box fall in Unity a couple years back; so you can call me a complete noob. But I was just wondering: If I for whatever reason wanted to make my game work natively on a Bunch of different Windows versions, like 95, 98, 98SE, 2000, ME, XP, Vista, 7, 8, 8.1, 10 & 11; would that be possible without making separate versions of the game for different Windows versions? It sounds like a cool project for doing just for the fun of it, for learning about the different OS versions once I already have more experience with development on modern Windows. What if I made the game on Godot game engine? Can Godot games even run on such old operating systems? I heard that Windows 2000 and above are NT based, and major Windows versions prior to that ran on something else: would this greatly affect the development process at all?
Clarification: Sorry, but I should have clarified that my development platform is Linux, and would be porting to Windows, which obviously should change the answer to my question drastically; I have no idea why I worded things to sound like I would develop the game on Windows first and foremost; but that was my mistake.
If you use plain C and only the part of the Win32 API that has been availlable since 95 that should be doable. No modern toolkit/SDK will likely enable you to do that. The problem will be finding downloads/sources for OS, SDK, and IDE old enough to target Windows 95. You might be able to use DirectX 8, but it will require installing DirectX 9 on newer versions of Windows as a dependency (DX10+ is not backwards compatible with DX8 and DX8 is the latest you get for Windows 95, DX9 is still availlable for Windows 11). Your game will have to be offline only or rely on insecure network stack because hardware old enough to run 95 does not have CPU instruction sets required by implementations for modern SSL.
Well, take the information I provided and have a guess ;-)
Thanks for that. I’m sorry, I have no idea why I worded the post the way I did; but I kept on making it sound like I would be developing the game initially on Windows. As a matter of fact, I would develop it on Linux first, and the Windows version would be a port. Would any of what you said be be doable in the same way, or similarly, if I’m developing on Linux and porting to Windows?
That’s an entirely different question, which you should have posted instead. Cross platform development is actually getting easier lately and is much less troublesome than what you were asking. Your question was more akin to “can I develop a game that works on Slackware 3.0 with a Linux 2.x kernel as well as on an Ubuntu 23.04?”.
Sorry about that. What do you think then? Would it be easier to develop first for Windows, and port second to Linux in order to get them working on all the old Windows versions, or the other way around?
Don’t.
What people here are saying: Don’t try to enter the dimension of suffering and pain.
What you are saying: OK. How can I enter the dimension of suffering and pain?
If you insist on entering the dimension of suffering and pain: Go a step further back and develop your game for DOS. Older Windows versions will just be able to run it out of the box, and everything else can run it via DOSBox.