I’ve made games in Unity before so to preface I’m not looking for how to begin in general but rather the specifics of how one would build a product like Desktop Mate that runs “on” the User’s desktop. Just looking to create a very simple desktop companion game here. Unsure how to build an application that starts in the background is playable even while managing other applications
If there’s a public template for building this type of software in unity that would honestly be more than enough help
Almost everything “interesting” about what you contemplate (based on a quick glance at the Desktop Mate intro video on Steam) will be entirely OS-specific and thus live 100% outside of Unity3D, which of course is a cross-platform game engine.
I mean all the things like getting permissions to overlay other apps with focus, getting input no matter what (and all the security constraints around that), observing messages within other apps, such as creation of a window or panel or button activity, and of course playing nice if the user brings up something like a banking application or secure website, etc.
After you choose which OS (and likely version, as these things change all the time) you want to target, start investigating the back-and-forth necessary, and find out how to do that, because none of that will be in the UnityEngine namespace. You’ll almost certainly be writing custom native code to make OS calls to hook all the stuff you want access to, then exposing it back to your code within Unity.
I thought as much. That’s too much custom work for a silly one-off project like I have in mind, so I’ll ask about my plan B:
Ignoring all the actually “interesting” parts of a desktop mate game, how can I simply build my Unity windows game with a transparent background/window and always on top of other windows?
I’ve found a couple old threads about it ([SOLVED] How to set windowed game to be "Always on top" in C#?) but some of the resources are down and may be outdated so hopefully someone can confirm that’s still the best way to go about it