The graphics update for Pirate Code 2 is finally done! Fourteen months, more false starts than I’d like to admit, and a complete rethinking of how the game should look. The screens finally feel like Pirate Code 2 instead of an over saturated version of Pirate Code 1. To explain how we got here, I have to go back to the beginning of last year.
A Year of False Starts
At the beginning of 2025 I knew something was wrong with the graphics. The screens looked busy in places they shouldn’t and flat in places that needed depth. I couldn’t always say what was off, but I could feel it. So in March I sat down to try to fix it.
I had a rough idea of what I wanted. Something cleaner. Something that didn’t fight you for attention when you were trying to read the icons on each ship in a battle. But I didn’t really know how to get there from where I was, and the first few attempts proved it. I started by redrawing the land, but each time it just looked completely out of place. I’d try a new palette and it would feel cartoonish. I’d ditch the palette and it would feel washed out. This went on for months.
This was the low point. The graphics weren’t the only thing I was working on, but they were the thing I kept coming back to and bouncing off of. I needed my graphics to be a hook. Nobody plays a game if it doesn’t first draw them in with the graphics. I kept at it.

In October something finally clicked. I realized the water had to come first. It dominates every screen, and every change I’d made to the land had looked out of place because the water hadn’t changed styles with it. But changing the water animation was difficult. I eventually wrote a small console app to pull the water animation out of my old tiles so I could lay it as a mostly transparent layer over a solid color tile underneath. That meant I could set the water color to anything I wanted, and I could dial the animation way back so it wasn’t fighting for attention. I loved the result. That was the first sign of hope.
Progress was slow after that. I had to remake beaches. I went with a solid flat color. No texture. No seashells. The wave on the shore was a single line. No details. Next I discovered the land I’d been redrawing all those months ago suddenly fit. By December I was actually moving. Things that had felt impossible in March were coming together now. And I did shadows! More on that later.
I wrapped up the graphics update in May of 2026, fourteen months after I started.
The Principles
Once I knew what was working, I could write down the rules I’d been groping toward. Keep in mind, these were developed over months of trying things until I found what worked.
- Desaturate – I have a natural inclination to fully saturate all my graphics, but the end result is a game that looks like it belongs on the N64, which today feels old and amateurish. By desaturating the colors, I gain a story book feel that feels both professional and valuable.
- Color Scheme – This might be obvious to most people, but it’s not good enough to make the trees green or the water blue. The trees need to be a certain green or, more correctly, on a spectrum between several greens. The colors have to match. Tiles, props, ships, UI, all of it has to live together on the same screen without arguing. I built a color scheme and made sure every asset belongs to it.
- Simplicity – The previous graphics had no solid colors. Everything had texture. The easiest example is the sand. If you zoomed in on the old sand image you’d find a thousand different colors, much like you’d get from taking a picture of real sand. The updated graphics are one color with no texture. There’s still plenty of complexity in the graphics and everything doesn’t look plastic, but I’ve learned that simple colors can work wonders.
- Shadows – Building shadows in a 2D engine is hard, but I always knew that had to do something. Looking at a complex island, it was difficult to understand what was going on without areas of darkness and light. I was determined to fix that, despite the challenge.

More on Shadows
Shadows are deceptively complex. The complexity comes from all the ways land tiles can be arranged next to each other. A tile with land directly to its left doesn’t cast the same shadow as a tile with land to its upper-left, or a tile that’s a corner of a larger landmass, or a tile sitting next to a single jutting rock. Between floor shadows and wall shadows, I drew close to two hundred frames of shadow art to cover the cases. Most of them you’d never notice individually, but together they’re what makes the world look like it’s actually sitting on the ocean instead of floating above it.
The engine also had to learn some new tricks. Props can now be tinted at runtime based on whether they’re sitting in a shadow or not, so a tree next to a wall looks darker than the same tree out in the open. The existing blending allowed me to slowly fade a sprite to black. The tinting allows me to fade a sprite to any color. The color pallet uses a dark blue for the darkest color, so tinting was necessary to make shadows work with the pallet.

Where This Leaves Us
Naturally, the new graphics are prettier, but they’re also foundational to the vision I have for Pirate Code 2. With muted colors, a color scheme, simpler drawings, and proper shadows, the rest of the game has a blueprint to follow. Backgrounds can do more work without crowding out the action.
Fourteen months is a long time to spend on graphics, but it had to be done. The world of Pirate Code 2 looks like a place I want to live in now, and frankly I can’t wait to get back to building the rest of the game. Time to load the cannons!


Leave a Reply