Inspiration
We love god games like WorldBox, but the people in them never feel like people. They wander, they build, they die, and none of it is about you. We wanted a world that notices its god: nations that pray when the harvest fails, love you when you answer and turn on you when you go quiet. And once one planet felt alive, the next question was obvious: what happens when gods meet?
What it does
Arda gives you your own 3D planet. Tiny people spread across it, farm, found villages and grow into rival nations. Each nation is one of five races (humans, goblins, elves, dwarves or lizardfolk) with its own strengths, its own named leader, and its own borders, wars and trade routes.
- Your people react to you. They name themselves, pray to you, and shift their focus between farming, expanding, worshipping, hoarding or rebelling depending on how hungry, faithful and settled they are.
- You act through miracles paid for in devotion: Bless harvest, Send rain, Calm and Smite. You can also answer prayers or step in when a disaster, war or revolution breaks out.
- The world fights back. Every planet type (Verdant, Timberworld, Ironworld, Gilded, Archipelago) is rich in different resources and prone to its own disaster. Nations climb from the Stone Age to the Space Age, build warships, run merchant fleets and fend off pirates.
- Build up your world with upgrades such as Irrigation, Masonry and Grand Temples, bought with what your planet produces.
Once your people reach the Space Age, your planet joins a galaxy of up to five players. You can join a random one, create one, or enter a friend's code. Inside a galaxy you can:
- trade on a shared market, with a live order book and price chart for each resource,
- send trade offers to another god, who has 30 seconds to accept or decline,
- launch invasions: your fleet flies for 30 seconds, and the defender chooses to fight, pay tribute or raise shields.
How we built it
- Next.js + TypeScript + Tailwind, deployed on Vercel.
- react-three-fiber for the globe: about 27,000 triangular tiles, with people, houses, ships and weather drawn as instanced meshes so it stays smooth.
- The whole simulation runs in the browser: tiles, people, nations, needs, eras, navies, disasters and upgrades, all stored in typed arrays and stepped every frame.
- Your people's words come from their situation. The game reads each nation's food, faith, wars and trade, and picks what they say and what they decide to do next.
- Sound is generated live with the Web Audio API, so there are no audio files to download.
- Supabase (Postgres) runs the galaxy. Joining rooms, the order book, trade offers and invasions are all settled inside SQL functions, so two players can never spend the same gold twice.
The database sends back the true totals, which already include anything settled there: a market fill, an accepted offer, or loot from an invasion.
Challenges we ran into
- Two sources of truth. Each game first sent its whole stockpile, which overwrote market fills. When the market stopped accepting those updates, a planet's production never reached the database, and opening the market reset your resources. Syncing only changes fixed both.
- Holding goods while a deal is pending. Offers and market orders take the goods out of your stockpile the moment you commit, and hand them back if the deal is declined, times out, or a player leaves the galaxy.
- Four people, one codebase, one night. Everyone was editing the HUD and galaxy panel at once, so we split them into smaller components and moved to small, separately reviewed pull requests.
- Demo-day surprises. A font loaded from a CDN could blank the whole game on restricted Wi-Fi, and at one point the live site was talking to a different database from the one we'd been updating. We only caught both by testing the deployed site, not our laptops.
What we learned
- Multiplayer state belongs in one place. Making the database the referee made everything else simpler.
- Small pull requests and checking each other's work saved us more time than they cost.
- Test what the judges will actually open, not the version on your machine.
What's next
- Diplomacy between gods: alliances, treaties and betrayals.
- Galaxies that keep running between sessions.
- Leaders who negotiate trades and wars on your behalf.
Built With
- next.js
- supabase
- three.js
- typescript
- vercel