A world built entirely by pixels
Every ship, island and trophy made by script rather than by hand — and a head-to-head match that runs straight between two phones.
- Role
- Design, art direction, engineering, release
- When
- Jul — Aug 2026
- Where
- iOS · Godot 4
Challenge
A world worth looking at and a real-time match against another player, with no art team and no budget for servers.
Approach
Generate the art instead of modelling it, and let the two phones run the match between themselves.
Result
Released on the App Store — and launched with empty leaderboards, because the setup behind them was never submitted.




What it is
The short version
Battleship is a strategy game, which makes it a good frame for everything else: a world you want to look at, fleets with real silhouettes, power-ups you have to earn, and a match played straight between two phones.
The art is a pipeline, not a folder. Ships, islands, trophies and the icon all come out of a toolchain, so changing a fleet is an edit rather than a week of modelling.
Get it
Play it yourself
Free on iPhone, in 175 countries. The Android build is in testing and follows.
Process
How it was built
- 01
Generate the world
Every asset comes out of a toolchain rather than a modelling session, which is how the art scales without an art team.
- 02
Let the two phones settle it
The match runs directly between the players, with the defending side judging each shot — which closes the obvious way to cheat.
- 03
Make power-ups cost something
Levels offer them; credits buy them. Separating the two stopped the economy giving away its own content.
- 04
Ship honestly on each platform
Android cannot run the real-time match, so the screens say so rather than the store listing overselling it.
Outcome
Where it landed
Released on the App Store. It also carried a mistake worth recording: seven leaderboards and thirty achievements were built and then never submitted, so launch went out with empty boards.
Lesson
What it cost me to learn
A store saying a game is ready for sale is not the same as a customer being able to use it. Open the app and look.
In testing