Microwave Man is built with Godot 4.6 using GDScript and the GL Compatibility renderer, which targets a broad range of devices including mobile hardware. The project follows Godot’s standard scene-and-script architecture, where each gameplay system is a separate scene paired with a GDScript file. Understanding this layout is the fastest way to get oriented before making changes.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/titledgames/microwave-man/llms.txt
Use this file to discover all available pages before exploring further.
File tree
The repository root contains the Godot project file, all scene and script pairs, asset directories, and tooling scripts.Renderer and engine settings
The project targets Godot 4.6 with the GL Compatibility renderer. GL Compatibility is a lower-level OpenGL-based backend that runs on a wide range of hardware, including mobile devices and older GPUs, making it a good fit for a 2D arcade game that exports to Android, iOS, and Web. Texture filtering is set to nearest, which preserves pixel art crispness by preventing texture interpolation. The window is non-resizable, keeping the viewport dimensions fixed across all platforms.Scene and script breakdown
Each scene in the project has a paired GDScript file that handles its logic.| Script | Scene | Role |
|---|---|---|
main_menu.gd | main_menu.tscn | Title screen; shows the game version, initializes Discord RPC, and routes the player to the main game or about screen |
main.gd | main.tscn | Core gameplay loop: score tracking, game timer, game_over, and new_game orchestration |
player.gd | player.tscn | CharacterBody2D controlling player movement, gravity, jumping, and animations |
hud.gd | hud.tscn | CanvasLayer displaying the score label, on-screen messages, and the start button |
coin.gd | coin.tscn / coin_sfx.tscn | Area2D that detects player overlap, plays a collection animation and sound, then removes itself |
end.gd | end.tscn | Area2D that detects when the player reaches the end zone and transitions to endcreen.tscn |
endcreen.gd | endcreen.tscn | End screen offering play again (emits the restart_game signal), main menu, or quit |
about.gd | about.tscn | About and credits screen; also displays the current version |
Autoloads
Godot autoloads are singletons loaded before any scene. Microwave Man registers two.GameState (game_state.gd)
GameState is the global signal bus. It exposes the restart_game signal, which endcreen.gd emits and main.gd listens to in order to reset the level without reloading the full scene tree.
DiscordRPCWrapper (discord_rpc_loader.gd)
DiscordRPCWrapper runs Discord RPC callbacks each frame via _process. It is responsible for keeping the Discord Rich Presence connection alive and dispatching any queued callbacks from the GDExtension layer.
Addons
Theaddons/discord-rpc-gd/ directory contains a prebuilt GDExtension that wraps the Discord Game SDK. It is registered as an editor plugin in project.godot via res://addons/discord-rpc-gd/plugin.cfg. The DiscordRPCWrapper autoload depends on this extension being present and enabled.
Key gameplay constants
These values are defined inplayer.gd and control the core feel of the player character.
| Constant | Value | Description |
|---|---|---|
SPEED | 200 | Horizontal movement speed in pixels per second |
JUMP_VELOCITY | -350 | Initial vertical velocity applied on jump (negative = upward in Godot’s coordinate system) |
GRAVITY | 980 | Downward acceleration applied each frame to simulate gravity |
Godot’s Y axis points downward, so a negative
JUMP_VELOCITY moves the player upward, and a positive GRAVITY pulls the player back down.Export targets
export_presets.cfg defines export configurations for all supported platforms: Android, iOS, Linux, macOS, Web, and Windows Desktop. The GitHub Actions workflow in .github/workflows/release.yml builds all of these automatically when a GitHub Release is created.
Building the project
Set up your local environment, run the game, and export to web or desktop.
Contributing
Fork the repo, open a pull request, and understand the code review process.
