No description
- GDScript 100%
| .helix | ||
| component | ||
| entity | ||
| font | ||
| img | ||
| scene | ||
| sfx | ||
| shader | ||
| tileset | ||
| ui | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| default_bus_layout.tres | ||
| global.gd | ||
| global.gd.uid | ||
| project.godot | ||
| readme.md | ||
kt Project
A Kodo Tag clone.
You and some friends avoid the terrible (but stupid) monsters until you become strong enough to start slowly destroying them with your traps, towers, and clever mazes of obstacles.
Todo
Everything I need or want to work on in this project:
MVP
The MVP should be fun to play, even if it's not juicy or pretty to look at.
Please be ruthless about what gets into the MVP!
- Navigation server proof of concept
- Support multiple enemy sizes (small enemies can maneuver through smaller portals)
- Should rebake navigation polygons as obstacles are added
- Add an attack and damage system
- Tiles
- Fog-of-war -- enemies should be able to sneak up on you
- Automapping ???
- I think I can do this very simply with a "real map" and a "revealed map"
- Hide the real map completely and don't draw it (but use it for collisions and stuff)
- Reveal tiles as we collide with them and add them to a separate layer where they can be drawn freely
- Otherwise, have a big old texture with roughly one pixel per tile and edit the pixels as we collide with tiles and figure out how to draw the "fog" texture over the map
- I think I can do this very simply with a "real map" and a "revealed map"
- Automapping ???
- Abilities and powerups
- Floating damage text
- Towers and mazes and maps (mapgen?)
Alpha
- Automated testing
- multiplayer via webrtc
- Sprites will need animations at some point
- sfx
- music ("He's escaping! Kill him!")
Debt
First, I want to (should?) read the Godot manual cover-to-cover as is often recommended for technical tools.
I went through a few videos with good tips I want to be sure to incorporate:
Videos
- 50 Godot 4 Tips: https://www.youtube.com/watch?v=1xjoExMwrMc
- Drag nodes (even multiple) from the Scene list into a script to create an
@onreadyvariable for that node - Double-clicking an instance scene takes you to the scene
- Alt+Click in text editor to place multiple cursors
- Ctrl+Shift+I to fix indents (space to tab)
- There are project settings for layer names (such as for collision and rendering) which for staying organized I'm guessing is gonna be a must
- Setup good run shortcuts (F5 sucks)
- Alt+RightClick to choose from a list when trying to select overlapping nodes in the editor viewport
- Script templates
- Use type annotations (performance and autocomplete reasons)
- Setup instant autocomplete
- Editor Settings -> Text Editor -> Completion -> Code Complete Delay
- Godot has a debugger - stop using print statements
- If you must use print, use print_debug to show the source
- Setup the editor to switch to the remote scene when debugging
- Hover over the "multipurpose transform tool" in the editor viewport to see hotkeys for moving, scaling, and rotating all-in-one
- Use built-in scripts for testing?
- Why?
- Also use temp/test scenes for testing
- Scene hot-reloading when editing
- Drag nodes (even multiple) from the Scene list into a script to create an
- 14 tips and tricks: https://www.youtube.com/watch?v=7Sf62lC3yGI
- Docstrings with
## - F1 for docs instead of googling, though probably missing tutorials
- Favoriting "FileSystem" entries, also choosing a color for entries/folders
- Markers and ruler tool in the editor viewport
OS.is_debug_build- 'Embed Game' plugin: https://fabimakesgames.itch.io/embedgame
- Docstrings with
- Fixing Rookie Mistakes in Godot: https://www.youtube.com/watch?v=uA2qqLrf_5Y
- Using the underscore prefix to indicate a "private" variable or method
- Uniquely-named nodes
- State Machines: https://www.youtube.com/watch?v=ExuzWQ077n4&t=335s
- Tiles using the Dual-Grid System: https://www.youtube.com/watch?v=jEWFSv3ivTg
- Prep for release: https://www.youtube.com/watch?v=3iGHpha-DmE
- Application icon
- Project name
- Splash screen
- Ensure game starts in full-screen in release mode
- Custom mouse cursor
- Specify main scene
- Cleanup anything unused for smaller binaries (remove .blend support, etc.)
- Graphics options, such as AA
Draw Layers
- Background
- Revealed Tiles
- Objects
- Visible Enemies
- Player
- Pickups
- HUD