Draco's Kingdom Climb
A nostalgic 2D platformer in the style of Donkey Kong Country, built for speed runners and accessible to newcomers.
Core Features
Fast, fluid gameplay
Quick, responsive menus for fast resets
Built-in level timers and full-game timer
Multiple speedrun categories (any% and 100%)
Live leaderboards via LootLocker API
Comprehensive accessibility options
My Work
Solo project, so everything.
Engine: Godot
Art: Character and crowns for the bee sprites created in Aseprite
Music: Composed in Maschine
Sound: Created in Audacity
Feel free to listen to the soundtrack while you read!
He had to grow out of this awkward teen phase.
The Spark
Initially created for the ScoreSpace SpeedJam, a week-long game jam with a focus on speedrunning. I had just participated with a team in another jam and made a platformer with some fun movement mechanics, and found myself wishing I could make something more free flowing and speed based. In that jam I also had to take over art duties, and created a little salamander guy that I thought would make a really fun character in another setting. I wanted to capture that incredible feeling from games like Donkey Kong Country where you hit a perfect rhythm and bounce from enemy to enemy at full speed, feeling unstoppable.
The constrained rooms of the previous game made it hard to take advantage of the fun movement mechanics.
The Challenge
Combining the jam's "ascend" theme with this speed-focused vision created an interesting tension. Each level needed to gain elevation while still maintaining that sense of horizontal momentum and flow. This led to a heavy focus on wall jumping mechanics and careful enemy placement that could serve both as platforms and speed boosters. This further complicated things by making wall jumping, a notoriously difficult mechanic, a key part of a game that was meant to be easily accessible.
Greyboxing
The screen size was set to match Donkey Kong Country 2, but in a modern 16:9 aspect ratio.
Setting similar sizes for the characters.
Code and asset re-use saves time
Having come fresh off another platformer, it was easy to hit the ground running with smooth movement controls. I made sure all the movement parameters were exposed in the editor and easy to play around with. It was important to make sure the movement options were exposed in the editor and easy to tweak on the fly. Most of the first day was spent tweaking these values until they felt right.
In addition, having already created character art made it a lot faster to at least have something running around in the scene, which makes prototyping so much easier. I re-used one of my favorite free art packs from anismuz, whose bees always reminded me a lot of the ones from Donkey Kong Country 2, one of the key inspirations for the game.
The initial playground for testing, the player character has evolved into being an orange square!
Plenty of control exposed to the designer, which was also me.
It didn't take long to get that same basic set-up looking quite a bit nicer.
Gameplay Design
Movement Overview
Same control scheme as the classic Donkey Kong Country games:
D-Pad for movement
B for jump
Y for roll, hold to run
The roll is the game's core ability: it's fast, snappy, and has extremely generous coyote time to match the feel of the classic games.
Y is the "momentum" button. Draco's max ground speed is capped on his own, but holding Y puts him into a sprint which allows you to maintain all the momentum you've gained as long as you keep moving.
Wall jumping and bouncing off of enemies gives bonus momentum, allowing you to really fly across levels.
Draco takes time to turn around, and slides slower down walls, giving a sense of weight and realism.
Players can fast fall by holding down.
Holding down and pressing jump falls through platforms.
Various movement options/states Draco can find himself in.
The player can still jump from here, having rolled off the ledge to their left.
Structure
Decided to have a map scene with multiple levels, emulating the classic games.
Each level would have a halfway checkpoint and an end point.
Stars provided an easy collectible to help guide new players along their path.
Three challenge gems hidden in each level.
Fixed camera bounds, so secrets could be hidden just off screen.
Decided on no health or instant deaths from being hit, making the game friendlier than the classics. A life system keeps some pressure on the player, but it's optional and there's a hidden way to get infinite lives.
Showcasing my seriously impressive artistic talent.
As the player runs full speed ahead, the player matcher (the E) stays slightly up and to the right.
Here the camera matcher is caught on the wall despite going full speed to the right.
The Camera
By far the hardest problem to solve, both technically and design wise.
For a platformer, you want a camera to feel smart, friendly, snappy but not too fast, and never confusing or slow.
Ended up with the classic double tracking solution: there's a "PlayerMatcher" that stays fairly tethered to the player, but offsets itself based on the player's momentum. Then, the camera lerps to the matcher's position relatively slowly, to prevent any huge sudden leaps or jerks.
The "PlayerMatcher" also respects the physics of the level layout unless too far from the player, letting it get "caught" on walls temporarily, which can prevent a lot of excess jerkiness.
Overall, the camera ended up being a success, though for the initial version released for the jam it was a little too aggressive and got appropriate feedback.
UI Design
In-game HUD
Classic games provided a clean template of in-game UI doing exactly what's needed: showing your lives, and how many coins/bananas/stars you've collected. I decided to keep the UI nice and simple in the same way. Godot makes it easy to just re-use your sprites in your UI, so creating it was extremely simple.
The main menu when the options button is pressed.
Main Menu
For the main menu I wanted something clean and functional with a hint of whimsy and fun. I felt having the buttons be skeumorphic was a fun retro callback, and they make a very satisfying clunk sound when pressed. Icons are included to help navigation feel automatic.
Leaderboards
An important menu for speed running integration, it makes it very easy to see your records and compare them to others. The tabbed layout may prove to be insufficient when further levels are added, but for now this is an easy and clean menu that maintains some level of style and fun.
The leaderboards may be a little lonely...
Pause/Options Menu
The options menu in game and in menu are identical. The Gameplay tab is the most interesting, probably. The game has two timers - the game timer that never pauses at the top of the screen, and the in-level timer, to match the two most common types of speed runs. However, some people do not enjoy having any sort of time pressure on them, so they are optional (and default to off).
Unlimited lives and the ability to freely adjust the game speed down to 50% make the game approachable for players of all skill levels, and also are both tools that are heavily appreciated by speed runners.
I left in my "debug mode" that allows you to fly around and see the entire level, but can then be disabled, letting players skip right to the part they're struggling with and practice it, or just get to "see" the whole game without the possible difficulty getting in the way.
The controls menu is the one area I would most want to change, revisiting the project. It is fully functional, and allowing key rebinding is of critical importance for accessibility, but the user experience of its present form is both ugly and cumbersome.
End of Level
Completing a level gets you this popup, so you can see how you did and compare it to everyone else. People who didn't pick a name are unfortunately shown without one, which is a bug.
If you use debug mode, you get this ending instead, which I thought was a fun way to keep things fair and hopefully won't offend anyone!
Level Selection
Again for the speed runners, levels on the map have a popup showing the live leaderboards for both any % (winning with less than 3 gems) and 100%.
Player Reception and Feedback
Feedback
"Cute artwork"
"Super polished"
Very fun and nostalgic
Extensive options are very appreciated
Wall jumping is way too finnicky and difficult
Doesn't quite capture that DKC2 feel
Some weirdness when loading particles
Ways I addressed it...
For wall jumping, there are two main approaches to them in platformers, one where you press into the wall you're jumping from and another where you press away from it, direction wise. In the original version, I only had the former type. I found a way to fix it so that it controls fluidly with either type of input.
The camera was too aggressive and tight, and the second two levels needed significant polish, to make it feel more familiar.
Pre-loaded the particles!
Level Design Overview
Basic Principles
Each level must end higher than it started (the "ascend" theme).
The easiest path should be shown with stars.
The gems are allowed to be hard.
Levels should take 30 seconds to a minute max to speed run.
Playing through normally should take a few minutes, upwards of 10 if struggling.
Teach the player how to play through level design, rather than a tutorial.
Level 1
The yellow box shows the bounds of the camera.
Humble Beginnings
This opening cave offers a safe playground to learn how to control Draco. If players hit the roll button, they very likely will go behind the bush, which with a gap of 1 tile tall they can only pass through while rolling or sprinting.
Players must wall jump to get out of the cave, but are completely safe from harm while doing so. They also quite likely will learn how to fall through the tree-like branches, as well. To exit the cave system, players must roll, completing their learning of all basic abilities. The first gem is hidden just above the limits of the camera, rewarding players who notice the gap in the ceiling tiles (see below).
Split Path
Once again hidden above view is a star. Collecting ten gets you an extra life. The flag checkpoint is here, also.
The second gem lives in plain sight, just at the bottom of the camera's view when standing on the platforms on each side of it.
The way these bees blend into the background is... not ideal.
Players who successfully navigate the bottom path and get the final gem are given a simple wall jumping challenge to get back up to the end flag. The blocks are placed where it's easy to get caught up and lose time, but with impeccable timing and play a speed runner can nail it without any excess jumps.
All together I believe the first level successfully does what it needs to as any good platformer's first level: it teaches the player how to play, and what kind of tricks and secrets I might be hiding, and how to look for them.
First Choice
Players are most likely to end up in the bottom path, which is much friendlier due to the lack of enemies, but it challenges their jumping ability more. The top route can be much, much faster, as bouncing off the two bees in a row will get you massive momentum. Once again, hidden above the tree, is a wall you can wall jump off of, this time hinted at only with a hanging bush. and curious level geometry.
Beneath that gem, there are two platforms. The left one is much easier to get to consistently, which allows you on to the bottom path. If you time your jumps just right, you can bounce off the patrolling bees at the bottom, finding the third gem. This is not easy. Casual players may miss that this is a thing if they stay exclusively on the upper path towards the exit. However, if they fall in either of the gaps between the checkpoint and the ending, they are likely to see the stuff at the bottom and wonder "what's that about?"
Level 2
← Verticality
If the first level teaches you how to play, the second level asks: "Okay, but did you really learn how to wall jump?" It's tuned as if it were a level towards the middle of a longer game, and is quite a step up from the first level.
The music and atmosphere are intending to evoke the feeling of being high up in the trees, scaling them up and down.
In the opening players again have the easier path spelled out in stars, and the harder path to the left gives access to the gem.
We also introduce a new mechanic, the bouncing mushrooms, that give the player a big vertical boost. It's not enough to skip having to wall jump, and the distance between walls is slightly farther on this level than any of the gaps in the first level.
The Turnaround →
This section buzzing with activity is one of the hardest in the game, and was severely worse in the jam version. The second gem is hidden visually and guarded by the bees. The player is given an example of a mushroom that's actually not helpful to hit, and then can use one to help rocket themselves up to the checkpoint.
← A Choice
Keen eyed players at this point should know that the upper path leads to rewards.
While its original version did not, I believe the second level really delivers on feeling both different and expanding on the difficulties introduced in the first level. This all comes together in the last level.
Going up introduces you to the invincible "royal" bees, and forces the player to use their roll ability to get past them and get the third gem. It's also quite easy to roll off of here, bounce off a single mushroom, and make it to the end.
However, if they go down, they're met with some rather disruptive bounce mushrooms (another section that needed major revisions from the jam version). Then, we meet our first alternate camera section, that tracks the player as they go up and to the right, bouncing on the mushrooms, a hopefully fun and exciting finish after all that stressful bee activity earlier.
Level 3
Everything's Harder
The final level really tests the player. The final mechanic is introduced: moving platforms, controlled by hanging ropes.
The opening has a star placed to the left to make it clear there's something there, which reveals the way to the first gem.
← It's only a simple jumping puzzle to get up to the top, though the ropes move rather erratically, still ensuring a challenge.
The Playground
Below you can see the route up to the flag. It's really standard platforming here, but the enemy placement ensures there are multiple paths that let you bounce between them and zip through the level.
It was a little difficult getting the placement right with the variable jump height for Draco, which means players have an enormous amount of potential flexibility in how they traverse the level. Had that decision not been made, getting an exact golden path for players would have been much easier. It required constant brute force playtesting to get the right spacing, but the freedom variable jump height gives the player is worth the extra work.
The Turnaround
After the checkpoint, there's a fairly tricky turnaround to get through to progress. I thought it was an interesting way to change up the movement after the strongly horizontal section. However, I think it hurts the pacing to play through that way for those trying to race through the level. That led me to include another "shortcut", by bouncing off the first bee after the flag players can hop the wall and skip the whole section. Letting players find little skips like this that feel like they're breaking the game and getting away with cheating is an excellent way to make them fall in love with your game.
The Gauntlet
To end the level, and end this demo of the game, I decided to try something difficult and overwhelming feeling that would also double as a fun almost maze to route through. In the end some of the bees are placed a little too generously, and you can perhaps skip through this section with some ease once you're familiar with the game. As the final hurdle of the game, it seemed appropriate to require players to navigate all the various obstacles (swinging ropes, bouncing mushrooms, and bees) to get to the end. The final gem is hidden here, too. This requires a tricky timing jump with one of the moving platforms, using the momentum it gives you to jump very high into the air. I wanted to tease this fun mechanic as something the game would definitely develop on in the future.
Music
To really capture the feel of the Donkey Kong games, I knew I had to get music that captured that nostalgic feel. As a musician myself, I was eager to attempt the challenge. David Wise's soundtracks to the original series are some of the most iconic pieces of video game music.
For the main menu theme "Big Band Bombast", a big source of inspiration was this upbeat section in "DK Island Swing", in addition to just older big band classics like Glenn Miller's "In The Mood".
The level 1 theme "Beginning Blues" ended up significantly more upbeat than, say, "Cave Dweller Concert", but the various percussive blips and palette in general is definitely inspired by it. I can't deny there's some major melodic inspiration from "Treetop Rock" as well!
For level 2, I wanted to capture the feeling of being up in the trees. I also wanted to try my hand at creating something that was at least reminiscent of "Aquatic Ambiance" or "Stickerbrush Symphony" possibly the most famous themes of all from the series. My "Skyhigh Synthwave" maybe doesn't stack up to either of those, but I definitely borrowed quite a few techniques in terms of filter sweeps and the like. Luckily I didn't have to program them all in by hand in micro samples like David Wise did back in the day!
The final level theme "Treetop Treatise" definitely makes an explicit reference in the title, but otherwise just mainly harkens to the overall sound and mood more than in any explicit reference musically... I think!
Lastly, we have the end of level victory theme, "Celebratory Salsa", which shares some DNA with "Bonus Room Blitz" and the "Victory and Level Up" theme from Super Mario RPG. I wanted something wild and silly and fun, like someone just discovered a Yak Bak for the first time and went to town. It's probably my favorite song I wrote for this, even if it's also maybe objectively the least well-considered of them.
Conclusion
Draco's Kingdom Climb succeeded in being a love letter to some of my favorite games of all time. I continue to fantasize about perhaps turning it into a full fledged game at some point. There's many things I would tweak if doing so - most notably, I think, would be redoing the entire art for the game. I definitely underestimated the amount of time really polishing the levels would take, and how much of a continual problem the camera would be. It's a good reminder that when it comes to controls in a video game, the way the camera works is quite possibly the single most important thing. Hopefully when people play Draco they feel good about the camera movement, or ideally, never notice or think about it!