Finished & Submitted!

Today was an absolute marathon. Fledgling was basically a rectangle jumping over two tomatoes yesterday.
Today I slammed through levels, and art.
It was all worth it though, because I have finished my submission to the Langjam GameJam.
You can try it out on itch. It is possible to beat, I have finished it so many times to test.
Does Ragelang justify it’s name?
Yes. Absolutely.
Ragelang is the definitive rage game developer experience. Even with the vscode extension, I spent hours and hours just updating supports. Every little change that made a line grow longer would cascade.
It is tough to read in the best way. Fledgling is 1100+ lines of pure chaos.
Doing double duty with a frustrating language, and then trying to win a rage game, there were definitely some moments. Fledgling is not a hard game, but it can still be frustrating!
Level Design
The level is actually fairly simple. You enter a log, jump some tomatoes, then climb inside the tree until you get to the branches. Then you climb the outside, back in, across a moving platform, then bam you are at the nest.
I manually designed the level, because AI is no good at that sort of thing. I grabbed a notebook and pen and went at it. I even drew out my own labeled grids, and sub grids to make it through designing each and every platform.
Ragelang does not have an easy way to design levels. No visual editor, and no xml/json parsing for maps. Instead it was pure hand entry x, y, width, height for each and every platform.
Here is the bottom of the tree. There is so much overlapping, and it was basically, add a rectangle, load game, adjust, reload. You can see how that would consume the whole day, even for such a short game.
// Then the tree platforms ............................................................
push(hitboxes, {x: 59, y: 42, w: 2, h: 8, type: "wood", friction: 0.8}) // ...........
push(hitboxes, {x: 59, y: 41, w: 2, h: 1, type: "moss", friction: 0.0}) // ............
push(hitboxes, {x: 59, y: 5, w: 2, h: 34, type: "wood", friction: 0.8}) // ...........
push(hitboxes, {x: 63, y: 46, w: 2, h: 8, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 65, y: 48, w: 1, h: 2, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 63, y: 45, w: 2, h: 1, type: "moss", friction: 0.1}) // ............
push(hitboxes, {x: 69, y: 44, w: 2, h: 9, type: "wood", friction: 0.8}) // ...........
push(hitboxes, {x: 69, y: 43, w: 2, h: 1, type: "moss", friction: 0.1}) // ............
push(hitboxes, {x: 65, y: 52, w: 2, h: 2, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 71, y: 52, w: 1, h: 1, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 71, y: 61, w: 11, h: 1, type: "wood", friction: 0.8}) // ...........
push(hitboxes, {x: 72, y: 60, w: 9, h: 1, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 74, y: 56, w: 5, h: 6, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 79, y: 59, w: 1, h: 1, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 75, y: 50, w: 4, h: 6, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 77, y: 49, w: 2, h: 2, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 77, y: 48, w: 2, h: 1, type: "moss", friction: 0.1}) // ............
push(hitboxes, {x: 76, y: 42, w: 3, h: 2, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 79, y: 53, w: 1, h: 2, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 79, y: 57, w: 1, h: 2, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 79, y: 61, w: 5, h: 1, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 81, y: 60, w: 1, h: 1, type: "wood", friction: 0.8}) // ............
push(hitboxes, {x: 80, y: 59, w: 1, h: 1, type: "wood", friction: 0.8}) // ............
Art
I made the chickadee a couple days ago in aseprite. Basically just looking at some chickadee photos, and made a simple one.
![]()
The tiles I slammed through today. As I built the game it was just colored rectangles. It worked, but I figured I wanted a bare minimum tileset. So, each surface type has it’s own tileset.


Final Thoughts
That was a lot of fun, and very challenging.
I somehow thought I would spend equal time on the language and game, yet each day I kept making more and more changes to the language. Building a game with it was a whole level above a simple lang jam. I really enjoyed it and hope to see the format again in the future. Maybe next time I will add sound to my game.
What’s Next?
Relaxing. More yardwork. Spending the holidays with my family. Finding a Job!