Since the initial announcement of Cosmic Destroyer going on Steam earlier this week, my focus has been getting a public demo ready for release for players to try it out. In order for that to really work, players need to be able to configure the game so that it can run properly on their systems. That means that players at the very least need options for display and controls. Building these option menus and functionality, while vastly improving performance have been the focus of all development effort this week.
Option menus have been added to Cosmic Destroyer to allow players to customize their experience, remap controls and adjust audio and video options. This also includes the addition of a Training Mode for learning the game and the stage layouts, like enemy, power up and destructible object's spawn locations. This is the first of many game modes, expect many more in the coming months as Cosmic Destroyer blasts off towards launch.

Training Mode
This mode provides the player with unlimited continues and bombs, and starts the player out with maximum power level, secondary weapons (missiles, etc.) and option drones. When starting a game in Training Mode, the player will be allowed to choose from any starting stage in the final game. Training Mode play-throughs cannot earn achievements or register a high score. A "Training Mode" message callout and watermark are added to the screen.
Options
The following option panels have been added accessible from the main menu.
Game

General game options not related to the current game session/mode are found here
- Show hit box - shows a brightly colored box exactly matching the size and position of the hit box on the player at all times. This is rendered on top of all other content, even the UI.
- Show Hints - the game often prompts players "Shoot" or "Pick up" the first time they encounter certain objects like cores to shoot to open doors or destroy bosses. This is helpful for new players but can be turned off here.
- Show Tutorials - the first stage involves a section that will wait for player input and introduce a wave of enemies slowly before continuing. This slow progressing section can be disabled here
- Arcade Marquee - A video of gameplay is shown after short time to prevent screen-burn-in and showcase the gameplay. In the future this footage will be replaced with mix of recent high score replays from the player and the top replays from leaderboards.
Video

No game is complete without proper video options. The game is intended to be always run at 16:9 resolution, and letterbox / pillarbox is displayed to fill the screen while maintaining a consistent game experience and fair play area to all players regardless of display configuration.
- Display Mode - options include Windowed Fullscreen, Fullscreen and Windowed
- Resolution - your monitor's resolutions and refresh rate variations can be selected here
- V-Sync - Vertical sync smooths screen tearing when game and monitor refresh speeds do not match
- Brightness - Simple gamma brightness adjustment.
- Quality - (This section is coming soon as it needs a few visual improvements for quality presets) includes options to reduce particle quality such as distortion effects, or reduce particle counts for systems with low-end GPUs which struggle with overlapping transparencies.
Audio

We hope you always want to play Cosmic Destroyer at full blast in a loud arcade - but also recognize you might want to play your own music or duck the audio for streaming.
- Main - Main volume of all sound
- SFX - sound effects such as weapons and explosions
- Voice - announcements such as "Power Up" and "Game Over"
- Music - music, set to however much synthwave you can handle!
Control

Here you can remap your controls inside the game. Provided are Primary and Secondary mappings with the defaults set to Keyboard and Gamepad bindings. Steam's Mapping should handle scenarios for mapping through that method as well, but provided here to aid with setups such as Keyboard mapped arcade controllers and other customizations.
One last nerdy development note on performance - it's always been a deal-breaker any time the game drops below 60FPS for any reason. It's a "drop everything and fix whatever is causing the slowdown" moment. It is particularly important in these types of games which simulate at their own internal tick of 60FPS. This must be done to ensure reliable movement, collisions, and in the end - scoring. This week, I've also gone through and deeply researched every memory allocation and process time and radically optimized for the smoothest experience possible, to get the game running well even on slower machines. Glad to say that currently, the frame update uses exactly 0 bytes of heap allocation - so NO garbage collection necessary, which avoids random frame drops. On a decent gaming PC I've pushed into well over 200FPS - even when forcing the logic to fully update every single frame. That's good news for anyone who appreciates a smooth gaming experience!
[ 2025-05-11 04:15:25 CET ] [ Original post ]