Inspiration

I have loved space for as long as I can remember, and I always wanted to build a space game of my own. For years it stayed a someday thing. Then a friend convinced me that Godot was the engine to build it in, and a few days later I found the Shipaton. That was the push. I sat down and built Haulspar day and night for six days straight, and came out the other side with the game I had been imagining: a space company that grows from one satellite over Earth to working bases - the Moon and Mars at launch, eleven worlds from the Moon to the moons of Jupiter by the end of that week.

What it does

Haulspar puts you in charge of a young space company, hired by the Agency to open up the solar system.

Start small. One launch pad and one satellite. Scan the Moon, win your first contract, buy a Sparrow capsule, crew it, load it with panels, tools and oxygen - and land.

Build a base. Raise an Outpost, then grow it building by building: Hydroponics, a Workshop, a Mining Station, a Fuel Plant, a Radar Station. Your astronauts and workers walk the base between jobs - foot patrols, radar sweeps, expeditions - while rovers drive out to the sites you have charted.

Go further. Research is a ladder: unlock new rocket families, then push each one up to twenty tiers for range and toughness until your ships reach Mars, Venus and Mercury, then the asteroid belt and the moons of Jupiter. Eleven worlds can be landed on and built on, each on the Moon's rules with its own painted surface, its own resources, its own Agency contracts and its own daily and weekly jobs: the Moon; Mars, with four times the ground; Venus, heavy to lift off from and rich in ore under its clouds; Mercury, with the richest ore in the game and ice hiding in its polar craters; Phobos and Deimos, the small stepping stones beside Mars; Ceres, a water world in the asteroid belt; and Jupiter's four big moons - Io, dry and volcanic with rare minerals; Europa, with the richest ice anywhere; Ganymede, the big balanced one; and Callisto, old cratered regolith.

See it all. The map is the real solar system in 3D - every planet, the dwarf planets and the famous moons, with real facts. Spin it, pinch it, tap a world and fly the camera to it. Park a satellite and watch it survey what a world holds, line by line.

Come back to it. Haulspar runs in real time and keeps working while the app is closed. Daily orders on every world, weekly jobs that grow with every world you land on, twenty Google Play Games achievements, and a reminder when something is ready. The tutorial is spoken by your company's AI, and the Agency's director voices your contracts.

Play it your way. Haulspar is free to play and nothing is locked behind money. Space Bucks buy time, never the win - every timer can be finished with bucks or cut by fifteen minutes with an optional ad, and anything with under a minute left finishes free.

How I built it

Godot 4.7 in typed GDScript. Every number and every piece of content - buildings, jobs, recipes, rovers, contracts, worlds - lives in data, so a new world is a data entry, not new code. Every Android plugin is my own Kotlin: RevenueCat for purchases and the subscription, AdMob with Google's consent form and RevenueCat's ad adapter, Play Games sign-in, achievements and cloud saves, OneSignal push, and local reminders that survive a phone restart.

Purchases are settled by a small ledger on Cloudflare Workers that checks every grant with RevenueCat, so a pack is delivered exactly once and a refund takes it back. The game keeps time against a server clock, so winding the phone's clock forward skips nothing. The rules are covered by more than 5,000 automated checks, and a screenshot harness walks the real game before every release.

Challenges I ran into

I built all of it from a phone. No PC - an Android phone, a terminal over SSH to a Linux box, and the Play Console, AdMob, RevenueCat and Devpost dashboards squeezed into a mobile browser. Every build was tested on the same device I was working from, and reading a 3D map on a six-inch screen is its own kind of test.

Two early builds shipped blank because of a single line that only failed on the device, which is why every release now boots the real game before it goes out. The first animated astronauts jittered so badly they were rebuilt from scratch. Each of those was found on the phone, in the game, the way a player would find it.

The other challenge was Google's own clock. Rewarded ads sit beside every timer in the game, served by AdMob through RevenueCat's adapter, but AdMob serves nothing until the account's tax forms have been reviewed - identity and payment details are already verified - and that review, like Google Play's own verification and review queues, had not cleared by the deadline. So the ad half of the monetization is built, live in the app and earning nothing yet - not because it fails, but because it is not yet allowed to.

Accomplishments that I'm proud of

Six days from nothing to a published game on Google Play, and a public update every day since - Ceres and Jupiter's four big moons opened on 30 September, eleven worlds to land on and build on, and version 0.1.48 went live on 1 October after two full audits of the game. A full store on RevenueCat with a subscription and free trial, rewarded ads through RevenueCat's adapter, a voiced tutorial and voiced contracts, the whole solar system on the map, eleven worlds with bases, and a purchase ledger that would not look out of place at a much bigger studio.

Advertising started at 6 pm Eastern on 28 September. A Google Ads app-install campaign aimed at India brought about 250 installs in its first six hours that night, 1,030 the next day and 1,950 on the 30th - 3,239 installs for $318, $0.10 an install, 43,900 clicks, 98 % of them on phones, on a budget that filled earlier each day and was raised to $100 a day. A second campaign for Australia, the United Kingdom, Canada and the United States served its first full day on 30 September: 80,446 impressions, 1,383 clicks, 259 installs at $1.55 (United Kingdom 87, Australia 61, United States 60, Canada 51). Together, about 3,500 installs for $720. By the end of the 30th OneSignal counted 1,371 monthly active devices and 581 subscribed to push; by midday on 1 October RevenueCat counted 2,118 new customers - all of them in the six days since the 25 September launch.

What I learned

That a game is a set of rules first and screens second, and when the rules live in data you can change your mind for free. That the phone is a harsher tester than any desktop. That the first stranger who plays your game will find what you stopped seeing. And that a deadline plus a friend's nudge can move a dream from someday to shipped.

What's next for Haulspar

Space stations, and the work is under way now: an orbital station you found at a world and grow module by module - a Hub, docking, refuelling in orbit - so ships refuel in orbit instead of hauling every drop up from a heavy world, and lower-tier ships can work worlds they could never leave on their own. They land about two weeks after the contest. Then more worlds: Saturn's moons and Pluto are already on the map with their surfaces painted, and each new world is the Moon's template with its own numbers and contracts. Company emblems, achievement badges, OneSignal Journeys built on the tags the game already sets, and more of what players ask for on Discord.

Built With

  • admob
  • android
  • cloudflare-workers
  • gdscript
  • godot
  • google-play-billing
  • google-play-games-services
  • javascript
  • kotlin
  • onesignal
  • revenuecat
Share this project:

Updates

posted an update —

Launch to today — a public update every day

  • 25 Sep — Haulspar goes live on Google Play: Earth, the Moon and Mars, satellites, rockets, a voiced tutorial, the RevenueCat store with packs, a Launch Kit and a monthly subscription with a 7-day trial.
  • 26–28 Sep — twelve updates from the first players' feedback: sheets say what things are for, rewarded ads beside every timer, daily and weekly orders, achievements, local reminders, cloud saves.
  • 29 Sep — Venus and Mercury (0.1.39), Phobos and Deimos (0.1.40), every ship says which worlds it reaches (0.1.41).
  • 30 Sep — the new fuel model and queued production (0.1.42), Ceres and Jupiter's four big moons — eleven worlds (0.1.43), the 3D map holds still at every zoom and the gas giants say there is no surface to land on (0.1.44).
  • 1 Oct — the Codex: every resource, ship, building and world explained in-game (0.1.45); fixes from two full audits (0.1.46); Disposable / Reusable ship tabs, a confirm card before a build, x5 on every amount picker (0.1.47); daily orders say where they are done, and a kinder review ask (0.1.48).

Next: space stations, about two weeks after the contest, and more worlds to land on.

Log in or sign up for Devpost to join the conversation.

Submission history