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.

  • _cnt0@feddit.de
    link
    fedilink
    arrow-up
    3
    ·
    10 months ago

    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.

    would this greatly affect the development process at all?

    Well, take the information I provided and have a guess ;-)

    • DreitonLullaby@lemm.eeOP
      link
      fedilink
      arrow-up
      0
      ·
      10 months ago

      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?

      • ramble81@lemm.ee
        link
        fedilink
        arrow-up
        0
        ·
        10 months ago

        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?”.

        • DreitonLullaby@lemm.eeOP
          link
          fedilink
          arrow-up
          0
          ·
          10 months ago

          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?

          • _cnt0@feddit.de
            link
            fedilink
            arrow-up
            1
            ·
            10 months ago

            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.

  • recursive_recursion [they/them]@programming.dev
    cake
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    10 months ago

    I’d imagine you’d need to create the game in assembly to make it work on all versions of Windows, this is only a guess though

    • also not sure about Godot as it’s still relatively new in comparison to other game engines and programming languages(GDScript)

    Edit: even if Godot was a mature game engine at this point in time it’d be more likely that improvements to the engine would be forward facing and thus be unlikely to work for previous versions of Windows(this is only an educated guess)

    <br>

    Your idea is more feasible on Linux(+Godot) due to Flatpaks(and Flathub)

    • most suitable for forwards compatibility
      • unsure about backwards compatibility (previous Linux versions) due to requiring distro level support
    • DreitonLullaby@lemm.eeOP
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      Thanks. Although I don’t get your point on using Linux; because, why would I develop a Windows game on Linux? And Flatpaks are a Linux specific package (I know because I daily drive Manjaro). So… why would Flatpaks make my idea more feasible if they can’t be used on Windows?

      Could somebody tell me why this comment has so many downvotes, please? What makes this bad advice for me?

      • recursive_recursion [they/them]@programming.dev
        cake
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        10 months ago

        ah I meant that Linux games would be easier to create for multiple versions since packaging into a Flatpak once would let you distribute it to multiple platforms/distros all at once

        the downvotes are probably from me giving tangent advice rather than one that’s parallel to your goal(Windows)