Skip to main content

Directory Overview

Nyuron follows a modular directory structure that separates minigames, global scripts, scenes, and assets:
nyuron/
├── minigames/              # All minigame modules
│   ├── counting_animals/
│   ├── food_catch/
│   ├── memorice/
│   ├── nyuron_color/
│   ├── turtle_run/
│   └── worm_bucket/
├── scripts/                # Global game scripts
│   ├── ScoreManager.gd.gd
│   ├── main_menu.gd
│   └── hud_progreso.gd
├── scenes/                 # Main game scenes
│   ├── main_menu.tscn
│   ├── intro.tscn
│   └── gaviotas.tscn
├── tienda/                 # Shop system
│   ├── Script/
│   ├── scenes/
│   ├── Images/
│   └── icons/
├── Accesorios/             # Character customization assets
│   ├── global/
│   ├── food_catch/
│   └── turlerun/
├── assets/                 # Global assets
├── TransitionBlocks.gd     # Scene transition autoload
├── intro.gd                # Intro screen logic
└── project.godot           # Godot project configuration

Minigame Structure

Each minigame follows a consistent internal structure:
minigames/[game_name]/
├── scenes/                 # .tscn scene files
│   ├── Main.tscn          # Main game scene
│   └── [entities].tscn    # Game-specific entities
├── scripts/                # GDScript files
│   ├── main.gd            # Main game logic
│   └── [helpers].gd       # Helper scripts
├── assets/                 # Images, sprites
└── sounds/ or audio/       # Audio files (optional)

Example: food_catch

minigames/food_catch/
├── scenes/
│   ├── Main.tscn
│   ├── Food.tscn
│   ├── Trash.tscn
│   ├── Bonus.tscn
│   └── FloatingText.tscn
├── assets/
│   └── [sprites and textures]
├── main.gd
├── player.gd
├── item.gd
├── bonus.gd
└── FloatingText.gd

Key Global Scripts

ScoreManager (Autoload)

Location: scripts/ScoreManager.gd.gd Manages persistent game data:
  • High scores for all minigames
  • Player coins
  • Inventory items
  • Equipped cosmetics
# Access from any script
ScoreManager.save_high_score("food_catch", score)
ScoreManager.add_coins(coins_earned)
var coins = ScoreManager.get_coins()

TransitionBlocks (Autoload)

Location: TransitionBlocks.gd Handles scene transitions with visual effects. Location: scripts/main_menu.gd Manages the main menu, minigame launching, shop navigation, and character customization display.

Assets Organization

Accesorios/

Stores character skins and accessories:
  • global/ - Menu and general character sprites
  • [minigame_name]/ - Minigame-specific character sprites
Naming convention:
spr_rest_[color]_[accessory].png
# Example: spr_rest_blue_corona.png

tienda/

Shop system with:
  • Script/ - Shop logic
  • scenes/ - Shop UI scenes
  • Images/ - Item preview images
  • icons/ - Item icons

Scene Naming Conventions

  • Main scenes: Main.tscn (capital M)
  • Entity scenes: PascalCase (e.g., Food.tscn, Bonus.tscn)
  • Script files: snake_case (e.g., main.gd, bonus.gd)

Configuration Files

project.godot

Defines:
  • Viewport size: 270x480 (portrait) or 480x270 (landscape)
  • Autoloads: TransitionBlocks, ScoreManager
  • Mobile rendering settings
  • Input mappings

export_presets.cfg

Contains export settings for:
  • Windows Desktop
  • Android (arm64-v8a)

File Organization Best Practices

Each minigame should have all its assets, scripts, and scenes in its own directory. Avoid cross-references between minigames.
Follow the existing naming patterns:
  • Scenes: PascalCase with .tscn
  • Scripts: snake_case with .gd
  • Assets: descriptive names with prefixes
Global scripts go in /scripts/, minigame-specific scripts stay in /minigames/[name]/scripts/

Finding Resources

Minigame Templates

Step-by-step guide to creating new minigames

UI Components

Reusable UI patterns and components

Build docs developers (and LLMs) love