TinyQuest banner

TinyQuest

9 devlogs
46h 4m 43s

This will be my first project using godot, so ive been experimenting with the engine and its features to make a 2d game, nodes and all of that, huge props for freecodecamp for making a crash course on godot (https://www.youtube.com/watch?v=S8lMTwS

This will be my first project using godot, so ive been experimenting with the engine and its features to make a 2d game, nodes and all of that, huge props for freecodecamp for making a crash course on godot (https://www.youtube.com/watch?v=S8lMTwSRoRg) #MyFirstGodotProject

This project uses AI

I used GitHub Copilot to help write some parts of this godot project, review ideas, suggest features, explain code, debugging, assist with wording and more….

Demo Repository

Loading README...

rylvion

Shipped this project!

Hours: 21.27
Cookies: 🍪 362
Multiplier: 17.02 cookies/hr

I built TinyQuest, a 2D wave-based action game in Godot where you fight enemies, level up, and survive increasingly difficult waves until you reach the final boss.

This started as a learning project, but it slowly turned into something way bigger than I expected.

The hardest partt was getting the core gameplay loop to feel stable and consistent, especially balancing enemy scaling, boss behaviour, and fixing bugs that broke progression or caused unpredictable combat issues. I also had a lot of challenges with collisions, animation references, and making sure everything worked properly in exported builds (not just inside the editor).

I figured most of this out through a lot of iteration: testing small changes, debugging edge cases, and gradually rebuilding systems like combat, wave progression, and boss AI until everything felt coherent.

What I’m most happy about is that it actually feels like a real game now:

  • you can go from wave 1 all the way to the final boss
  • progression actually matters (gold, upgrades, scaling difficulty)
  • combat has feedback now with sound and effects
  • and it no longer feels like separate systems glued together

It’s not perfect at all, but it’s the first time I’ve shipped something in Godot that feels like a complete playable experience instead of just experiments.

rylvion

Game Title

Devlog 9 - RELEASED V0.2.0-ALPHA

Tiny Quest v0.2.0 is now officially released. This update marks a major step in shaping the game’s identity through audio, UI polish, and foundational systems that will support future development.

  • Created TinyQuest Title Graphic
  • Added 3 Sound Tracks
    • Anime Inspiring Music - Bijaybro
    • Epic Orchestra Anime Intro – Sekuora
    • Final Battle II – Nyxaurora
  • Added 11 SFX
    • Slime Squish – Floraphonic
    • Collect Points – Liecio
    • Frog Croaking – Dragon Studio
    • Retro Explode – Driken5482
    • Sword Slash – 49053354
    • Sword Clash Hit – Dragon Studio
    • Epic Dragon Roar – Dragon Studio
    • Fireball Whoosh – Floraphonic
    • Victory Chime – Scratchonix
    • Super Deep Growl – Freesound Community
    • 8-bit Game Over Sound – Lesiakower
  • Created Settings
  • Polished Main Menu

The project is now fully released you can check it in https://github.com/rylvion/MyFirstGodotProject/releases/tag/v0.2.0

Attachment
0
rylvion

Devlog 8 - major update (final systems coming together??)

guys sorry for the long wait time after my holiday, college started again so the past week has just been me doing small edits after classes here and there (balancing coursework + editing the game + other stuff) no actual time fro me to put a full dev log on

anyway here’s everything that got added/changed:


core gameplay changes

  • added sound manager (game is still silent tho… pain)
  • fixed multiple boss bugs that were causing general chaos
  • made tail swoop the main boss damage move now
  • fixed progression bug after boss defeat (you can actually continue the game now 👍)
  • removed stomping on boss completely
  • dragon breath is now a ranged fireball attack instead of close-range damage
  • summoning now reuses dragon breath animation

player + combat

  • added orbiting saber around player (with slash animation)
  • added flickering invincibilty when boss collides with player
  • only fireball + slash can damage the boss now
  • enemies and bosses no longer collide with each other (they’ve agreed to avoid each other socially)

world + systems

  • map is now flat (boss fights actually work now instead of parkour simulator 2.0)
  • added diamonds as collectibles
  • removed ladders
  • boss now drops 5–10ish diamonds on death
  • diamonds burst out of boss when it dies
  • added comand bar (debug mode still enabled)
    • switch waves
    • give gold
    • change level
    • clear enemies
    • heal player
    • added a command bar with cmds to switch waves, give gold, change level, clear enemies, heal, and boss cmd (`) this will be open till alpha closes

balancing

  • gold capped at 10,000
  • level capped at 100
  • wave capped at 30
  • elite waves every 5 waves
  • boss wavers every 10 waves (except wave 1)
  • after the final boss at wave 30, you completes the game, recieve a win and returns to main menu
  • HEALING
    • 25HP per boss
    • 10HP per wave
    • 1HP per kill

technical tweaks (nerdy stuff 🤓)

  • replaced automatic flip_h with movement-based direction (fixes boss collision weirdness) based on local scene position (yes im manually adjusting the coordinates by hardocidng it for the boss)
    btw before the program was calculating it automatically but since the boss is misaligned and not directly to the centre I had to do some repurposing
  • implemented collision layer segregation: player to boss interactions are fully excluded to prevent unintended overlap/damage tunneling, while maintaining player to enemy collision response and disabling enemy-boss interaction resolution

there’s probably more changes i forgot. the game is basically feature-complete now, after audio is done, v0.2.0 will be ready to ship.

  • ~20–25 sound effects (hits, ui, movement, combat stuff)
  • 1–2 main soundtracks

and then it’s done.

also known issues

  • boss falling out of the map (idk why the boss tweaking like that) - prob had to do with the collision boxes
  • whenevr you duck under a fireball for the boss and then go back up whilst under a fireball you get hit??? (again because of collision boxes)
  • err smth else that im forgetting

skip to 1:30 for boss fight

0
rylvion

Devlog 7 - boss rework + optimisation

i added summoning vfx (custom made, not sunny land asset btw)
made with copilot help so yeah… btw if the gif looks kinda blurry, it’s just the 32x32 vfx being scaled up like 10x in the devlog preview, not the actual game looking like that 💀


boss now does 3 things

  • fireball - basic ranged spam attack, hurts a lot
  • tail swoop - replaced the old jump slam (rip) because i had no animation for it so now it just kinda stuns you into sadness
  • summoning - spawns elites with new vfx i made

boss overall got a pretty big glow up / rework / identity crisis

still kinda buggy btw, probably gonna flatten the map more so it stops acting like a parkour demon, also might nerf it soon because it’s a bit unhinged


optimisation stuff (aka i tried to make the game not explode)

  • auto-save now happens every 12s instead of constantly (so your pc doesn’t suffer every time you breathe)
  • enemy scaling now based on wave instead of player level (makes more sense now)
  • added pooled fireballs (less lag, more pew pew)
  • stopped doing dumb full scans for cherries and just track active stuff instead (way smarter now)
  • switched renderer from Forward+ to Mobile (performance moment 😎)
  • added basic tutorial (it’s like… bare minimum education right now)
    • level up
    • stomp enemy
    • shoot fireball
    • will expand later when i stop being lazy

notes

going on holiday tommorrow for a week 🚢✈️
game will be left unsupervised so pray nothing breaks while i’m gone

Attachment
0
rylvion

Devlog 6 - Optimisation and Fixes

expanding on devlog 3, the characters were invisible for some reason that includes slimes and the player character and interestingly enough cherries and frogs were suprisingly intact, so i had to force load it in during run time, knowing the risks i decided to leave it to future me…..

FUTURE ME here:

today is now all behind-the-scenes, ive did what any normal and sensible people do, spent hundred of prompts negoitating and prompting for ai to fix it, instead of doing that by myself .i now pinpointed and found the issue:

  • the issue came from how some character animation frames were referenced.
  • player and slime resources were relying on brittle texture/import references, so their frames could fail to resolve correctly in certain states.
  • cherries and frogs stayed visible because their scene setup was cleaner and already using stable references.

after pinipointing and diagnosing the issue, i….:

  1. rewired player and slime animation resources to use more reliable scene texture references.
  2. removed bad/mismatched frame links that were causing invisible sprites.
  3. kept a safer fallback path in code so missing frames can recover instead of failing silently.
  4. cleaned script warnings and naming conflicts that made debugging harder than it needed to be.
  5. verified the key gameplay scripts reload cleanly with no errors in the updated files.

i apparently have to attatch an image here so… idk what to put err ill just put a meme here

Attachment
Attachment
0
rylvion

Devlog 5 - game balancing

today was all about making the game balanced, i made elites every 5 waves and made a boss every 10 waves. the boss has 3 moves, one is its normal attack fireball that once you come close you get hit, 2nd is summoning it will summon elites or other monster coming, and 3rd is 1 wide area jumping mechanics, reworked A LOT OF formulas (if not all) and more…. oh yeah and i forgot i also added a confirmation dialogue when you try to use esc to quit the game after wave 5. the enemies now have more detection radius and enemy patrolling, and when you jump on the head you will now bounce on enemies

formulas

  • Max HP: `max_hp(level) = round(10 + 2*(level-1) + 0.05*(level-1)^2)
  • HP upgrade cost: cost(level) = round(10 + 4*(level-1) + 0.25*(level-1)^2)
  • Fireball cooldown: cooldown(level) = max(0.25, 3.0 / (1.0 + 0.12*(level-1)))
  • Enemies per wave: min(4 + floor((wave - 1) * 1.0), 18, available_spawn_slots)
  • Frog chance: clamp(0.30 + 0.035*(wave - 1), 0.30, 0.65)
  • Enemy speed scale: 1.0 + min(0.06*(wave - 1), 1.10)
  • Enemy damage scale: 1.0 + min(0.08*(wave - 1), 2.00)
  • Enemy gold scale: 1.0 + 0.05*(wave - 1)

elites scale like this

  • Speed: x1.15
  • Damage: x1.35
  • Gold: x1.75
    also elites has different colours they are more desaturated
Attachment
0
rylvion

Devlog 4 - ui polish + feedback

after reading through the feedback from my last release, I’ve started working towards v0.2-alpha, focusing on improving overall game feel, clarity, and performance.

i will now include more devlogging from now on and the following:

  • optimisation
  • ui polish + feedback [✅)
  • bosses + more gameplay
  • tutorial
  • music + sfx

today i added health bar, damage feedback so itll show like -XX damage so -10 damage (but depends on level) if you get hit, +XX gold if you get gold (from enemies, not cherries), also i updated max cherries to 25 and not infinite for performance.

Thanks again to everyone who tested and gave feedback.

Attachment
0
rylvion

Devlog 3 - windows export problems

ok so… exporting the game decided to gaslight me for like an hour 😭

i was testing everything in the godot editor and thought “yeah this is fine”

turns out the exported exe was just quietly breaking half the visuals and pretending nothing was wrong.

shoutout to the reviewer who basically reported “everything is invisible btw 👍”

anyway yeah. my bad. lesson learned: test the actual build, not just the editor


what was broken

  • map textures were missing in exported builds
  • some background/world texture references were outdated
  • player sometimes went invisible (movement still worked 💀)
  • slimes didn’t render in export (frogs were chilling though??)

what i fixed

  • rewired broken texture references in world/background scenes
  • fixed player + slime sprite frame linking issues
  • added fallback handling so missing frames don’t silently nuke visuals
  • made sure exported builds actually match editor behaviour now

result

game now actually looks like the game when exported 👍
no more “invisible protagonist simulator”

v0.1.0-alpha is now way more stable for testing and future builds

Attachment
Attachment
0
rylvion

Shipped this project!

Hours: 24.81
Cookies: 🍪 76
Multiplier: 3.08 cookies/hr

I built TinyQuest, a small 2D action‑platformer where you fight waves of enemies, collect gold, and level up to survive longer each run. The hardest part was designing a core loop that actually felt fun - balancing waves, scaling enemies, and progression took a lot of iteration. I’m really proud of getting a full playable build exported and shipped for the first time. It finally feels like a real game instead of just a tutorial project.

rylvion

Devlog #2 – First Playable Build Released [Alpha v0.1.0]

I spent this session turning TinyQuest into an actual game instead of a science experiment. I added the full wave system, complete with scaling enemies and a proper survival loop. The leveling system is now fully functional too, gold drops, HP upgrades, cooldown scaling, and all the juicy progression bits that make the game replayable. I packaged everything into a clean build and shipped the first playable release (v0.1.0‑alpha). It finally feels like a real loop: fight → collect → level → survive → repeat.

Attachment
0
rylvion

Devlog #1 - Godot Engine Initiation

I pushed my first project up at github.com/rylvion/MyFirstGodotProject and dove straight into Godot. Following the fundamentals from this tutorial:
➡️ Godot 4 2D Platformer - https://www.youtube.com/watch?v=S8lMTwSRoRg

Spent time breaking down the engine mechanics and mastering the essentials:

  • Installed and configured Godot from scratch
  • Learned core GDScript concepts and syntax
  • Built and connected signals / connectors
  • Explored 2D physics and movement systems
  • Worked with normalisation and vector control
  • Studied scene structure, nodes, and workflow patterns
Attachment
0