Path Commander is a simple puzzle routing game built in the Godot game engine.
The objective is to create a path between two points on a two-dimensional grid by rotating path pieces.
Download the latest release via Github
Use a local copy of Godot and open the project.godot
file.
Releases are automatically built via git tags using semantic versioning, e.g. v1.0.0
.
- Images/Fonts/Sounds from Kenney are under Creative Commons Zero (CC0)
- Roboto font is under Apache Version 2
- GDScript code and all other content is under GPLv3
- Developed and tested with Godot v4.2.1
- Use
autoload
to pre-load singletons. Try not to use singletons if possible. - Use the debugger and the
misc
tab to debug mouse click events. This can show where in the node hierarchy it's getting stuck. - If something isn't clickable, traverse up the node tree and set the Mouse -> Filter property to
Ignore
. - Target screen resolution 1920x1080
- Orphaned/stray nodes are nodes that have exited the scene tree but still exist in memory resulting in a memory leak. You
can use
get_tree().get_root().print_stray_nodes()
to debug and find them. If the code ever callsinstance()
but then discarding it withoutadd_child()
or if the code is usingremove_child()
withoutqueue_free()
these are cases that would create stray nodes. - The
.ogg
sound files needed to be re-imported with loop turned off to prevent them from continuously playing and looping. Containers
handle the rotation and other properties of the children. Therefore, I needed to parent the clickableTextureButtons
to aControl
node to prevent them from being reset. I usedmin size
on the parentControl
to ensure appropriate sizing and automatic layout occured otherwise everything was jammed together.assert()
calls aren't included as part ofrelease
builds so don't use them to check for and runchange_scene
.- Use
OS.is_debug_build()
to check for if we're running indebug
orrelease
mode.