I accomplished
- Migrated my Jellyfin server from my NAS to a dedicated server
- Setup Dynamic DNS using Cloudflare and cloudflare-ddns
- Migrated the styling of SwiftSpider to Tailwind CSS
I’m working on
SwiftSpider
- Database encryption
- Styling / light and dark mode
- Database refactor to use json fields for node data
- This is to handle planned functionality for user-defined node types
I’m playing
I’m watching
- Frieren: Beyond Journey’s End — It’s only half way through its run, and has already cemeted itself as one of the greatest animes of all time.
I’m looking forward to
- The second half of Frieren: Beyond Journey’s End
- Local game jam themed around card and board games
- My copy of Shift Happens should ship soon
Assorted thoughts
In-game overlays
Overlays like those used by Discord and Steam aren’t as simple as they seem. In Windowed mode, you can render above the game window, but in Fullscreen mode this is not possible. It seems the common solution is to write hooks for rendering APIs, but this poses multiple challenges.
First, you need to write a hook for each API you want to support. Tedious but achievable.
- DirectX 9, 10, 11, 12
- OpenGL
- Vulkan
- Metal
- SDL, SFML, etc.
The bigger issue is that these hooks can be detected by anti-cheat software, and may be mistaken for cheats, and result in a ban. In fact, even major software like Discord has had incidents of user bans due to their overlay.
This creates a huge barrier to entry for any new software implementing an overlay. It seems that Discord, Steam, and other major companies are only able to do this because they have a large enough user base for anti-cheat developers to implement exclusions.