promiscuity/game/GEMINI.md
2026-03-28 16:59:24 -05:00

1.8 KiB

Godot Game Development - GEMINI.md

This directory contains the Godot 4.5 game project for "Promiscuity".

Core Mandates

  • Engine Version: Godot 4.5 (Forward Plus).
  • Language: GDScript is the primary scripting language. C# is enabled but used only when performance or specific library needs arise.
  • Naming Conventions:
    • Files/Folders: snake_case.gd, snake_case.tscn.
    • Variables/Functions: snake_case.
    • Constants: SCREAMING_SNAKE_CASE.
    • Classes: PascalCase.
  • Autoloads: Use the established singletons for global state and services:
    • AuthState: JWT authentication and session.
    • CharacterService: API calls for character management.
    • QuestManager: Game quest progression.
    • DialogSystem: UI dialog and interaction.
  • Node Paths: Prefer unique names (%NodeName) or @onready variables for node references. Avoid fragile string paths.

Asset Pipeline

  • Models: Blender files (.blend) and GLB files are supported. Blender integration is preferred for easy editing.
  • Audio: Use .ogg for music/loops and .wav for short sound effects.
  • UI: Themes are stored in themes/. Adhere to established UI patterns.

Project Organization

  • scenes/: Scene files and associated scripts.
    • Characters/: Player and NPC scenes.
    • Levels/: Game world/environments.
    • UI/: Menus, HUDs, and UI components.
  • assets/: Raw assets (textures, models, audio).
  • addons/: Third-party plugins (e.g., simplegrasstextured).

Best Practices

  • Signals: Use signals for decoupled communication between nodes.
  • Resources: Encapsulate data in custom Resource scripts for modularity.
  • Tool Scripts: Use @tool carefully for editor-side logic.
  • Physics: Use _physics_process for movement and interaction logic.