Distributing Windows builds
Ship a portable build
Instead of shipping an installer (
MyGame.msi), just push the install folder with butler.
Seriously, please do. We'll do our best if you don't (see Compatibility policy), but please do.
Folders generated by engines like Unity, Unreal Engine 4, GameMaker, etc. can just be pushed with butler, and everything will work great.
For extra carefulness marks, validate your build to make sure everything is fine.
Prerequisites (Visual C++, .NET, XNA, DirectX)
If your game depends the Visual C++ Runtime, .NET, XNA, DirectX, OpenAL etc., you'll need an App manifest.
When in doubt, ship a 32-bit build
There's still 32-bit Windows installations around, and 32-bit Windows executables run on 64-bit Windows.
This is the exact opposite of our advice on Linux builds. Ah well.
If you're going with your own, custom game engine, one would think you have been punished enough.
However, you'll also have to figure out exactly what libraries you need to ship.
Tools like Dependency Walker or Process Monitor can help.1
1. In fact, anything from Sysinternals is heartily recommended. If you're not using them, you should be. Nevermind what for - download first, justify second. ↩