No need to pay me anything, but I’ll try to help if I can. It sounds like your game distribution is going to be more complicated than mine, since I just have the game with no other external editor tools or anything like that.
I haven’t published a WPF app, so I don’t actually know the standard procedure for that. But publishing a MonoGame game is pretty simple:
When you publish in this way, the app is self-contained and no install scripts are necessary.
Edit: I forgot to mention: if you build the game from your documents folder where it is likely stored, there could be privacy concerns, because the project paths are sort of built into the app and could reveal to end users your computer user name and some of your computer directory layout. You may not be concerned about this, but I personally didn’t want to reveal my computer user name, so I moved my projects to an anonymous directory in C: called “Code”. I’ve heard that it’s better to have a dedicated machine for building your app rather than using your development machine, but I don’t quite understand why. I haven’t run into any issues building the game on my own development PC.
Have you perused the Steamworks documentation? If not, you’ve got some homework to do. There’s a lot of useful information in those docs, and a lot of it is explained better than I could do. But for basic uploading to Steam, you can use the SteamPipeGUI tool (only available on Windows). This is what I use. Before you can upload the game, you’ll have to have your game’s depot(s) configured.
Creating folders using .NET is easy. Just call Directory.CreateDirectory(/*directory path*/);
That’ll create the directory if it hasn’t been created already and do nothing otherwise. Unless I’m misunderstanding what you mean?
Edit: Also, I would use Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
. This will give you the AppData\Local folder without you having to hard-code it.
I use Steamworks.NET to integrate Steamworks into my game. This can get complicated, but there are various examples of how to do things scattered about the internet. @BlizzCrafter has created an example repo and uploaded it to Github. Here’s a post about it. That could be helpful.
I just use Steamworks for a few things: achievement support, basic ownership checking, and Steam Auto-cloud. Use of Steamworks is technically optional, but you’ll probably find most players expect certain features in games published on Steam, like achievements and cloud saving.
I found a Microsoft docs page about deploying WPF apps.