144 Commits

Author SHA1 Message Date
Adrien Ufferte 896e2740b3 Compress large textures to VRAM formats and enable 2D mipmaps
All 747 imported PNGs were imported losslessly (compress/mode=0) without
mipmaps. Lossless textures are decompressed to raw RGBA8 in GPU memory,
so the big gameplay assets were extremely expensive: the 4100x2448
bush_curtain alone used ~40 MB of VRAM, and the 6400x8001 minigame
spritesheets ~205 MB each. Summed over the affected files, the
worst-case footprint was ~2.4 GB of texture memory for a game that
targets low-end 1-2 GB tablets with the gl_compatibility renderer. The
absence of mipmaps also caused shimmering and wasted bandwidth whenever
these textures were drawn below their native size, which is almost
always the case with the 2560x1800 canvas_items stretch.

- Switch the 119 textures with a dimension >= 512 px to VRAM
  compression (compress/mode=2) with generated mipmaps. The project
  already enables etc2_astc import, so mobile gets ETC2/ASTC and
  desktop gets S3TC/BPTC. The total footprint for these textures drops
  from ~2.4 GB raw RGBA8 to ~770 MB including mipmaps (~3x smaller
  resident set, plus faster texture uploads).
- Keep small UI textures (< 512 px, 626 files) lossless: their VRAM
  cost is negligible and block-compression artifacts would be most
  visible on small crisp UI art.
- Set the default 2D texture filter to Linear Mipmap so the generated
  mipmaps are actually sampled by canvas items (without this, mipmap
  generation would only add memory).
- Remove viewport/hdr_2d=true: HDR 2D allocates RGBA16F framebuffers,
  doubling framebuffer memory and bandwidth at 2560x1800 on exactly the
  GPUs that can least afford it. No scene uses glow or HDR values (no
  WorldEnvironment anywhere), so this was pure cost. As false is the
  default value, Godot drops the line entirely.

Texture quality should be eyeballed in the editor on the largest
illustrations; any texture where compression artifacts are noticeable
can be switched back to lossless individually.

Verified with the GUT test suite (62/62 passing).
2026-06-11 08:45:57 +02:00
Adrien Ufferte 2db21b597b Minigames wheel version 2 2026-06-06 11:13:22 +02:00
Adrien Ufferte 14f1d68a47 Update boss button 2026-05-28 11:59:10 +02:00
Adrien Ufferte 606b87d1b2 Last 3 gardens 2026-05-26 15:56:41 +02:00
Adrien Ufferte ab1ad7f27e Red Parakeet garden (09) 2026-05-26 14:30:58 +02:00
Adrien Ufferte 847f04c5a7 Monkey garden (08) 2026-05-26 14:11:52 +02:00
Adrien Ufferte b16580094e Frog garden (07) 2026-05-26 13:47:58 +02:00
Adrien Ufferte e5d628897c Garden Caterpillar (06) 2026-05-26 11:32:46 +02:00
Adrien Ufferte fdd597f5d6 Yellow Parakeet garden (05) 2026-05-26 11:08:06 +02:00
Adrien Ufferte 953260c31d crabs garden 2026-05-26 10:51:29 +02:00
Adrien Ufferte 7ce680d14c Ant garden (03) 2026-04-30 16:15:13 +02:00
Adrien Ufferte a58e59f656 New garden 02 (and cleaning) 2026-04-30 16:15:13 +02:00
Adrien Ufferte af6ae59120 Clean nomenclature 2026-04-16 15:57:40 +02:00
Adrien Ufferte 49d5fcd38b Replace old flower system with new plant assets and progressive reveal
- Add 8 garden plant assets (garden_plant_01 to 08) from victory assets
- Remove entire old flower system (FlowerSizes enum, flower generation,
  flower VFX transitions, flower_controls, flowers_visible, flowers_sizes)
- Remove Flower class from GardenLayout
- Plants are created programmatically in Garden._create_plants() at fixed
  positions matching the Explanation.png mockup layout
- All plants hidden by default, revealed progressively based on completed
  minigames ratio: 0 completed = 0 visible, all completed = all 8 visible
- Add lowercase file naming rule to CLAUDE.md
- Fix current_garden lookup to use _get_garden_index_for_lesson instead
  of removed flower_info system

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 13:54:16 +02:00
Adrien Ufferte d9522bc922 Redesign gardens with circular layout and new ocean theme
Replace rectangular garden backgrounds with circular Garden_01.png asset,
arrange lesson buttons in a circular pattern instead of sine-wave layout,
and introduce three visual states for buttons (locked/unlocked/completed)
using the new lesson_circle.png texture. Add jellyfish mascot to gardens.

- Add new assets: Garden_01.png, lesson_circle.png, jellyfish.png
- Update garden background to use keep_aspect_centered circular display
- Implement circular lesson positioning with configurable radius
- Simplify position validation to circle-distance check
- Add layout cache versioning to invalidate old layouts
- Update boss_button.tscn to match new button design

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 13:54:16 +02:00
Adrien Ufferte 9f56bf635c Restore checkbox textures referenced by kalulu_theme.tres
The four checkbox PNGs were incorrectly identified as unused.
They are referenced at lines 6, 9, 10, and 12 of
resources/themes/kalulu_theme.tres, which is the globally applied
custom theme (project.godot). Restoring them to avoid broken
checkbox icons and theme load failures.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 11:56:50 +01:00
Adrien Ufferte 6717e46d3a Remove unused assets
Deleted 107 unused asset files and their .import sidecars across:
- gardens/gardens: all 20 _locked background variants (only _open is loaded dynamically)
- lesson_screen: old/removed UI images (_old files, button states replaced by theme SVGs)
- look_and_learn: removed UI elements (cubes, grids, masks, tracing bg, old fx)
- menus: 4 unused checkbox images
- minigames/boss: friends.png
- minigames/caterpillar: berry_bue.png (unused typo), caterpillar_tail.png
- minigames/crabs: halo_2.png, success_2.png
- minigames/frog: void.png, white.png
- minigames/monkeys/audio: monkey_random_01-03.mp3, monkey_receiveheadcoco.mp3
- minigames/minigame_ui: 24 unused button states (cancel, energy, next, ok, toy_chest, etc.)
- sfx: blast_1-5.mp3, fireworks_1-5.mp3 (fireworks is visual-only), unused UI sounds
- vfx: collectibles_spritesheet, cross, dustparticule, explosion_spritesheet, fx_03-08, sparkles

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 11:49:58 +01:00
Adrien Ufferte 95c5b7a1e4 Remove useless graphisms 2026-03-02 10:21:57 +01:00
Adrien Ufferte f79aa14ab4 New back button system 2026-03-02 10:14:57 +01:00
Adrien Ufferte 3fc75176ac Look and learn (and rename) 2026-02-26 12:11:03 +01:00
Adrien Ufferte 4146d2d83d New assets and rename 2026-02-26 12:03:40 +01:00
Adrien Ufferte 356083192b Merge pull request #261 from Excello-Recherche-Education/kalulu-icon
Squared icon
2026-02-26 10:37:29 +01:00
Adrien Ufferte 7d14293692 Merge pull request #267 from Excello-Recherche-Education/delete-unused-assets
Remove unused assets
2026-02-26 10:36:55 +01:00
Adrien Ufferte 1a9915fa19 Remove unused assets 2026-02-26 10:35:35 +01:00
Adrien Ufferte 526ee03243 Merge pull request #265 from Excello-Recherche-Education/kalulu-no-bowtie
Remove bowtie from Kalulu
2026-02-24 15:04:46 +01:00
Adrien Ufferte ba95314421 Merge pull request #266 from Excello-Recherche-Education/icon-outline
Icon bigger outline in minigame selection
2026-02-24 15:03:57 +01:00
Adrien Ufferte 0504432998 Bigger parakeet icons 2026-02-24 14:10:58 +01:00
Adrien Ufferte 2da16567d4 Remove bowtie from Kalulu 2026-02-24 13:58:23 +01:00
Adrien Ufferte 8a5f0fcd77 Squared icon 2026-02-24 10:11:54 +01:00
Adrien Ufferte dc1a53ed74 New sounds (and old sounds) for frog 2026-02-20 15:01:52 +01:00
Adrien Ufferte a205d9e48d Remove brain screen and some other useless assets 2026-02-19 15:52:31 +01:00
Adrien Ufferte 3f28b79c1f Merge pull request #232 from Excello-Recherche-Education/caterpillar-update
Caterpillar new graphisms V2
2026-02-16 09:35:44 +01:00
Adrien Ufferte 0c9ee5b91f Caterpillar new graphisms V2 2026-02-13 15:39:08 +01:00
Adrien Ufferte 4290022732 New buttons 2026-02-13 14:32:53 +01:00
Adrien Ufferte 2413f2a80e Kalulu animations 2026-02-13 14:17:46 +01:00
Adrien Ufferte e65f0f2be3 Boss new graphisms 2026-02-03 10:55:18 +01:00
Adrien Ufferte 23f562d47f Fireworks 2026-01-14 14:49:23 +01:00
Adrien Ufferte 9dde986ed1 Use new assets and delete unused ones 2026-01-14 14:47:32 +01:00
Adrien Ufferte 9b6bdf08fe Add new assets 2026-01-14 14:47:32 +01:00
Adrien Ufferte 34940284b0 Merge pull request #184 from Excello-Recherche-Education/penguin-new-graphisms
Penguin minigame new graphisms
2026-01-14 14:44:36 +01:00
Adrien Ufferte d0d8789a17 Working version (labels stil using old system, will change in micro-animations branch) 2026-01-13 16:22:48 +01:00
Adrien Ufferte 14de6c9a0f New assets 2026-01-13 12:06:16 +01:00
Adrien Ufferte 621788261c Frog minigame new graphisms 2026-01-13 10:14:39 +01:00
Adrien Ufferte 4c12be60a5 Frog animations 2026-01-13 10:14:39 +01:00
Adrien Ufferte e8f58cc49c New assets 2026-01-13 10:14:39 +01:00
Adrien Ufferte 8d9ccce163 Ants minigame new graphisms 2025-12-09 13:08:55 +01:00
Adrien Ufferte 2080632008 Unused asset deleted 2025-12-08 15:22:07 +01:00
Adrien Ufferte 06bf0dd720 Merge pull request #134 from Excello-Recherche-Education/turtles-new-graphisms-v2
Turtles new graphisms (and logic)
2025-12-02 09:45:47 +01:00
Adrien Ufferte 55d08998e3 Monkeys minigame new graphisms 2025-12-01 14:33:32 +01:00
Adrien Ufferte e6c9e81aa8 Turtles new graphisms V2 2025-11-25 16:54:54 +01:00