6 Comments

Hi Oskar,

Firstly, congrats on seeing your game through to the end.

I'm about to release my own handmade game on Steam in a couple of weeks and was wondering if you could dive into deeper detail about "Resolving hardware-specific bugs" and "Ensuring compatibility across different Windows versions"... I feel I might have some issues there with my own game since I'm only testing it on 2 or 3 machines.

Thanks,

Nick

Expand full comment

Hey Nick,

Thank you!

Thankfully in my case it was not that severe, for Brainroll I am still using OpenGL which is notorious when it comes to hardware bugs. In my case it was an extension method that didn't work on some of my testers' machines. Other than that for example consider what monitor people have, my game's fps is dependent on the user's monitor refresh rate, and early on when it was played at 360Hz suddenly the collision system didn't work as intended.

I found it important not to test the game on a large number of machines but instead, a wide range of powerful machines if that makes sense. I have always used very low-end hardware to develop my game so I would send it to a friend that always has a brand new top-of-the-line machine and sometimes things would happen that don't happen on my machine.

Also, it is important to consider what APIs you use and if their conditions can change depending on the user's machine or settings. For example, I use DirectWrite for rendering text in Brainroll, and at first I made a patch that made the game DPI aware, this means that users could go into settings in Windows and set their font size and it would also change within my game. I was not aware however that there are so many different size options depending on monitor, on my machine I can put text size to 200% but some of my testers could do even more than that and my game would crash.

Lastly when speaking about ensuring compatibility across Windows versions it is actually not that big of a deal, at first I was following handmade hero which is made to run on Windows XP, if you're doing this then you need to make sure that all your calls to the Windows API actually is supported on XP. I later shifted away from this idea because very few users are still on those versions. What I did was develop my game on Windows 10 but I made sure to test it on Windows 11 just to be sure.

A good thing to check in case you're wondering about what hardware most people uses is to check the steam hardware survey: https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam

I hope this answers your question, let me know your game on Steam so I can wishlist it!

Best of luck, if you have any more questions just let me know!

Expand full comment

Thanks for the detailed answer!

I'm also using a couple OpenGL extensions (WGL_ARB_pixel_format and WGL_ARB_create_context), but don't have any code in case they're not supported... I'll add some!

I've been testing my game at 144hz, thinking that was good enough. I didn't realize there were people using 360hz monitors out there! My game's physics are also framerate dependent, so I'll test it and see if it supports 360hz...

Again, thanks for the answer. Here's my game: https://store.steampowered.com/app/2483300/A_Nest_for_Us/. I'm currently playing your game, having fun so far!

Expand full comment

Thank you!

Yeah, make sure you have some information in case anything goes wrong. I can recommend this blog post about how to setup a simple but very useful crash reporter. It can give you some really important information if users run into problems. Having something like this in place is very usefull because when your game is on steam, people will just refund it and not bother with getting in touch with you if there is any problems.

https://lance.handmade.network/blog/p/8491-automated_crash_reporting_in_basically_one_400-line_function

I've wishlisted your game. I am looking forward to playing your game, best of luck with the release!

Expand full comment

I think you forgot to link the blog post, but that's good advice.

Thanks for the wishlist, god knows I need some! Also just left a positive review for your game :)

Expand full comment

Oh, my bad! I've updated the comment to include the link I was talking about :)

Thanks a lot for the review!

Expand full comment