godot-genre-moba
Installation
SKILL.md
Genre: MOBA (Multiplayer Online Battle Arena)
Expert blueprint for MOBAs emphasizing competitive balance and strategic depth.
NEVER Do (Expert Anti-Patterns)
Networking & Authority
- NEVER trust the client for damage calculation or resource costs; strictly validate mana, ranges, and hit detection on the authoritative server using
multiplayer.is_server(). - NEVER use
TRANSFER_MODE_RELIABLEfor continuous movement; strictly useUNRELIABLEorUNRELIABLE_ORDEREDfor position/velocity to prevent network congestion. - NEVER sync units at 60Hz; strictly use a lower tick rate (10-20Hz) via
MultiplayerSynchronizerand implement Interp/Client-Side Prediction for visual smoothness. - NEVER attach individual synchronizers to hundreds of minions; strictly batch state updates into compressed byte arrays via a central manager.
- NEVER synchronize complex Engine objects directly; strictly serialize state into primitive properties or Dictionaries for reliable peer-to-peer sync.
AI & Pathfinding
- NEVER use expensive pathfinding for all minions every frame; strictly use Time Slicing to spread
get_next_path_position()calls across multiple frames. - NEVER query
NavigationAgentpaths inside_process(); strictly use_physics_process()to interact with the navigation server and avoidance systems. - NEVER use complex visual geometry for NavMesh baking; parse simple primitives to avoid stalling the
RenderingServeror crashing the engine. - NEVER set
path_search_max_polygonstoo low in large maps; agents will stop or walk incorrectly if the limit is reached before the destination. - NEVER use
Area2Dfor high-performance Fog of War LOS; strictly use nodeless physics queries (intersect_ray) to bypass node overhead.