https://apps.garmin.com/en-AU/apps/828d3ac3-f5d9-41a5-a158-af1f5877f433
Firstly, the "Always Active" feature is only available for CIQ 2.x devices, and allows the screen to be updated every second. It is facilitated via a new function, onPartialUpdate(), which is available in the 2.3.x SDK release.
Nothing comes for free - and you've probably read there are very strict limits on the execution time within onPartialUpdate().
Given that there's quite a bit of logic to execute for a "game", this was a bit tricky. Within the 30ms "time budget", "Vaders" needs to;
- move an alien
- test if a missile should be fired
- move a missile
- perform collision detection for each alien
- test if we should reset the game
Also, drawing to the screen is relatively "expensive", and is one of the more common ways to blow your "time budget". Ideally, you want to restrict the amount of pixels to update each second. This was done with setClip().
The following animation shows how setClip() is used. The red boxes denote setClip regions that are cleared, and the green boxes denote setClip regions that are drawn to:

At the very least, there are 2 regions. At the very most, there are 6 (2x alien, 2x missile, 1x explosion, 1x time).
Debugging "1hz mode" was a bit tricky too. Debugging via Sys.println() generally exceeds your power budget, so using "WatchFaceDelegate" helped me keep within the limits. Jim did a great write up here: https://forums.garmin.com/forum/developers/connect-iq/158133-#post158133
I didn't use any of the newer features like BufferedBitmap — however, I did find it useful to more efficiently perform screen updates with my "Pollock" watchface.
"Vaders!" was a nice little project to mess around with onPartialUpdate(). If you haven't considered it yet, it's worth taking a look at 1hz enabling your watchface — it's not as hard as it seems.