Thread #108676746
/gedg/ - Game and Engine Development General #344 Anonymous 04/24/26(Fri)11:49:16 No.108676746 [Reply]▶
File: 54.png (41.3 KB)
41.3 KB PNG
DirectX on Windows 95 Edition
/gedg/ Wiki: https://igwiki.lyci.de/wiki//gedg/_-_Game_and_Engine_Dev_General
IRC: irc.rizon.net #/g/gedg
Progress Day: https://rentry.org/gedg-jams
/gedg/ Compendium: https://rentry.org/gedg
/agdg/: >>>/vg/agdg
Graphics Debugger: https://renderdoc.org/
Requesting Help
-Problem Description: Clearly explain your issue, providing context and relevant background information.
-Relevant Code or Content: If applicable, include relevant code, configuration, or content related to your question. Use code tags.
Previous: >>108641005
38 RepliesView Thread
>>
File: Interstate '76 (Windows).png (22.3 KB)
22.3 KB PNG
Imagine deving using DirectX3, imagine the pain
>>
File: installvb4.jpg (42.6 KB)
42.6 KB JPG
>>108676780
if you weren't deving back then don't call yourself a dev
>>
File: 1770973690343726.png (2.8 KB)
2.8 KB PNG
so anyone try it yet? does it fix all the problems?
>>
>>
>>
>>108676780
In many ways it was easier, you had no hardware T&L so you were doing all of your vertex transformations on the CPU and you would just be uploading clip coordinates to the GPU and letting it rasterize them. The real "pain" in those days was figuring out what capabilities were available since every graphics card had it's own set of implementation bugs and limitations (especially texture data) and performance budgets and RAM usage were extremly tight. That last part is not unique to DirectX. In short, stop thinking that old = bad.
>>
>>
>>108676971
>>108676964
got it I'm just a millenial who wasn't aware at that time of what is what
>>
>>
>>
>>
>>
>>
>>
>>
>>
File: 1772839722562623.png (19.6 KB)
19.6 KB PNG
exporting a minimal godot project that's just a single sprite, with every unused feature disabled, with the most optimal build configuration known to the docs and ai, results in a 106mb binary
>>
>>108680307
yeah you can get it down to a pretty small size, this article managed 16.7 MB uncompressed
https://popcar.bearblog.dev/how-to-minify-godots-build-size/
gotta enginedev if you want <1 MB
>>
>>
>>
>>
>>
>>108680674
>How?
Code takes up space. Godot has a lot of code, both its own and all its dependencies. Any single project probably isn't using most of that, but it's still there. You can exclude some of it with a custom build template like in the link in
>>108680373
if you want to. Or not. Who cares about 100mb in 2026.
>>
>>
>>
>>108680782
It's a general purpose game engine. It's not some hyper focused personal project that only implements specific features you need in very limited ways.
Go look at a naive build from Unity or UE5, they're just as bloated. Also remember that games are usually compiled for speed over size, so you get extra bloat.
>>
>>
>>
>>
>>
>>108680896
>100mb of code is a very large amount
Do you know how big these engines are? UE5 is in the neighbourhood of 30-50 million lines of code, and that excludes third party stuff. Godot is nowhere near that but it's still millions of lines of code.
>>
>>
>>
>>
>>
>>
>>108680946
The UCRT is large but the dynamic version is perfectly portable across older versions of windows (and for windows 7 support, I think you can set the minimum windows version using the macro?).
I imagine the only reason to statically link the UCRT is for XP support. But I bet real XP users already have workarounds (and technically you can just target the older msvcrt instead of the ucrt, but there are quirks with how snprintf handles null terminators, and maybe other quirks).
If you are using C++, you can get the portability of the UCRT + statically link the C++ runtime to avoid the missing redistributable C++ runtime, you just need to set the runtime to static, then set the linker flags: /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib
https://github.com/microsoft/WindowsAppSDK/blob/main/docs/Coding-Guide lines/HybridCRT.md
>>
>>108681416
nta but if you don't statically link the c runtime then you technically need an installer to ensure that the correct redistributable is present on the system, so statically linking it is mostly just so you have a single executable you can distribute that just werkz