I'm a 17-year-old solo dev, and I just released CRAFTLANDER, a first-person island adventure game I made over 11 months, starting in November 2025.
The entire project is open source under the MIT license here, and you can play it on steam here.
Where I started
I started learning to code in Python when I was 8 years old. Later, I started learning how to make games using Blender, back when Blender was both a game engine and 3D modeling software. That was version 2.7.9. I then heard that the game engine would be discontinued in version 2.8. Around that time in May of 2019, when I was 10, I saw a new tutorial on YouTube from the main channel I had been watching Blender game engine tutorials from, BornCG. This video was his first Godot tutorial. I downloaded Godot and followed the tutorial, which grew into a series, and so I kept learning.
I really connected with the engine; Godot has been an incredible tool for me. I have been uploading games I make with Godot to itch.io for a very long time, and I have loved seeing the engine evolve and grow. As I grew up, the engine grew up as well. My first Godot version was 3.1, and the engine and GDScript have improved so much since then. Godot has taught me a ridiculous amount about programming, design, and project management. I'm really excited to see where Godot goes next.
Why I built CRAFTLANDER
I had been wanting to build an island adventure game for a while. Years ago, I came across a tutorial on YouTube about how to procedurally generate islands in Godot. All these years later, I ended up using very similar logic to that tutorial.
Originally, the game was not going to be procedurally generated at all. It was going to be a handcrafted, first-person space exploration shooter where you explore planets in retro 3D graphics. I decided it would be too much work to handcraft a world and that I'd be able to make more content by procedurally generating levels. The sailing mechanic clicked into place and grounded the game loop: sail to an island, gather resources, upgrade your ship, sail to another island. Sailing was a crucial game loop beat that I could reuse as many times as I needed for many different islands.
I wanted the game to be free and open source because I wanted many people to be able to play, interact with, and experience this world I made without having to pay. It was also important to me that all of the code be open source under the MIT license. Being able to create code and let anyone in the community see and reuse it really intrigued me. I loved that aspect of community, sharing what I've made in multiple ways: not only on Steam and itch.io, but through GitHub and through the code.
Making procedural terrain feel like islands
My first islands were okay, but they were bland. The terrain wasn't extremely varied and interesting because I was using a single gradient and a single noise texture to generate the entire island. The islands were also much too big; for a large island to feel full, and not like a barren wasteland, it needed many, many items, props, and enemies, and that would be a major performance bottleneck. Therefore, the islands ended up shrinking a fair amount.
I also changed how the noise and gradients work. The terrain now came from multiple gradient textures and multiple noise textures, plus some sampling tricks (each noise texture is sampled differently). I added a few extra settings over time that make the terrain feel more varied, more realistic, and more island-like, instead of a boring, bumpy slope above sea level.
Filling the islands
There are four islands, and each one has its own enemies.
The first island, Lush Isle, is a forest island. Rootlings are tree-themed melee attackers that hit you with maces. Little taluses are small rock enemies that throw stones at you. Shroomoids throw mushroom clouds at you and can teleport. There are also bee nests around the island. You can attack them to get honeycomb, but when you destroy one, a swarm of bees spawns and attacks you.
On Skelly Sandbar, there are skeletons, which are similar to the Rootlings but use golden pickaxes. There are also Cactoids that run at you and clap their hands to damage you, giant snails that spit slimeballs, and crabs that block your attacks.
On Frost Holm, there are evil snowmen that throw snowballs at you, yetis that jump into the air and slam down to attack, candy spiders with a unique dash attack, and little ice taluses made of ice cubes.
The final island is haunted. It is where you fight the Ghost Captain.
The Ghost Captain
The Ghost Captain was a really interesting part of the game design, and I think that fight is one of the most fun parts of the game, if not the most fun. His state machine, progression, and attacks are so unique and interesting to me. He also uses a ridiculous amount of code. He ended up being so fun that, by the time he was finished, all of the game's other enemies felt boring to me by comparison. They used to all essentially be the same enemy, either running at you and attacking or spitting something at you—that was all any enemy did.
As I added telegraphs for the boss and more complicated attack styles, the fight was so good that I needed to redistribute almost all of his attacks to different enemies throughout the game in order to spread that fun around. Doing so ended up being a great design decision because it also foreshadowed all of the captain's attacks to players earlier in the game. The Ghost Captain is possibly my favorite piece of design in the entire game.
What went wrong
Probably the biggest thing that went wrong was miscalculating how long the game would take to finish. I originally wanted to release it by the end of the last summer— the summer before my senior year—so I wouldn't have to work on it during school and could focus on classwork and applications. But it ended up being really difficult to schedule and scope the game because I'm just one person doing all of the code, all of the 3D modeling, all of the drawing, and all of the design. It was tricky to plan how long all of it would take, and I ended up misjudging my timing quite heavily.
I learned that, because it's so difficult to plan how long a big game like this will take, it's best to have some sort of time margin. I wish I would have scoped the game differently and guessed that it could take months longer than anticipated to finish. I would have been a lot less pressed for time.
Numbers
- 11 months of solo work, started in November 2025
- About 30,000 lines of GDScript (excluding addons)
- About 1,500 commits
Tools
- Built with Godot
- 3D modeled in Blender
- 2D art drawn in Procreate
- Audio edited in Audacity
I originally planned to use asset packs and get art from elsewhere, but it was difficult to make free packs combine and look as though all of the art assets belonged together. I didn't have any budget for this game, so I didn't spend any money on art assets, and I ended up making all of the art myself.
What's next
I want to add more content to the game in the future. On a smaller scale, that might look like more items, weapons, and enemies per island, and some more story elements. On a grander scale, that might look like new islands, a world navigation system where you actually control the boat as you sail between the islands, and possibly another boss fight fought from inside your boat.
If you want to play it, I'd love to hear what you think. An honest Steam review helps a lot.







Top comments (0)