Hello everyone,
I am building Endstate, a game on Polkadot and would like to gauge the interest of the community about simulation gaming and how I can improve the UX.
why it’s cool ?
You create and name a tribe of one of the 16 space fantasy species on a map of a ringworld with hex tiles containing biomes on it.
As a player, you optimize its supply chain to help your tribe win by giving roles to the tiles of your tribe.
First, you have to choose your starting position on a frontier before coaching your first cell.
Then, you spawn a tribe on it with a role like producer, logistic, military or explorer. The cell will decide to move, scout, raid, gossip and divide, depending on the biome and the surrounding.
Once conquered, a hex is yours and you can assign a role to it. The goal is to create some sort of supply-chain to optimize the efficiency of your tribe.
The dapp listen the events of the parachain and generate tags to explain to the player what is happening by categorizing events or situation.
How it works ?
The rules of the game look like this :
-
species are constituted of cells on a map ;
-
each cell want to prosper and can move, scout, attack, divide and gossip (resources and data) ;
-
16 biomes, each species have an optimal one, represented through the coordinate on a triangle (a TCT) ;
-
all 16 species are defined by the coordinates of their favorite biome ;
-
depending on the situation and the equilibrium of the species on its optimal biome, the cells will react differently to optimize it’s growth’s projection ;
-
3 resources, bio, mineral and flux, each a vertex of the triangle ;
-
each resources contribute differently the growth of the species, that produce population, economy, science and wear on the tile;
-
species’s military archetypes are defined as swarm, fortress and elite, same thing as the coordinate on the triangle ;
-
swarm beats elite who beats fortress who beats swarm (Lanchester model)
I designed the game starting from onchain constraints, the rules are on a crate, this is mostly maths for defensive coding, a turn for a tile is around 100 microseconds.
The guild war decision model (IAUS) was adapted inside the reliakit crate so each species react differently depending of its coordinates in no_sdt.
There is an autoturn that use the hook on the on_initialyze each block and executes 1 000 actions of hexes occupied on the map, so scalability is not an issue, completing a turn will just takes more blocks the bigger the map.
Each turn, the hook read the hex, send its content to the decision model, then if needed read the target of the gossip and get the result of the simulation to apply the effects to the tiles and possibly its target (2R +2W).
Through gossiping, there is osmosis and it organize the cells representing species
The next steps
I’m developing the diplomacy module for player decision through the gossiping between the cells, it will allow local modification of the comportment of the hex for non-aggression or inter species exchange.
After that, probably adding buildings on the hexes to reinforce the supply chain and its visibility by removing roles.
However it’s not as fun as it should be, I’m looking to improve that and look for feedback about what can be fun in a hungry cells simulation before the testnet.
About me :
I am vibecoding hard, did a Jam Implementation in Common Lisp and try to do useful and cool web3 things to bring more people to use crypto.
Before that I was a pencil pusher in the army, so excuse my enthusiasm.



