📰 Dev Journal

🐢 How Playing Bowser in Melee Inspired VOverlay

Posted on May 11, 2025

Recently, I started playing Super Smash Bros. Melee online, maining Bowser. Yeah, if you know competitive Melee you know that Bowser IS the worst character of the game but I have faith in him. 💪

While playing Melee on Dolphin Emulator, I noticed a handy feature. Dolphin allows the user to display the Ping, the Time, the FPS and more information on the screen.

The "Time Display" really helped me know what time without having to leave the game. That feature gave me an idea - why not making a tool that can display essential information (like time, date and battery) on top of the screen?

And so, VOverlay was born. A lightweight tool that keeps you informed without interrupting whatever you're doing.

How It Was Coded

VOverlay needed to be lightweight if I wanted it to run on video games, so I chose Legacy OpenGL, as it is very minimal (and because modern OpenGL is a mess).

The app is built around the MainWindow component, a transparent window that is always-on-top SetLayeredWindowAttributes(m_hwnd, RGB(8, 8, 8), 0, LWA_COLORKEY); // RGB(8, 8, 8) is the transparent color

The other components are: - TimeDisplay: A Display component that shows the current local time. - DateDisplay: A Display component that shows the current local date. - BatteryDisplay: A Display component that shows the current battery percentage.

Then, there is the TrayIcon: the system tray icon to hide/show VOverlay and close it. It runs in its own thread because it has a main loop to keep it running.

Creating VOverlay taught me a lot about organizing code and handling transparency with the Win32 API.

Download VOverlay here

⬅ Back to Dev Journal