After the launch of Unveil (2016), not much time was left in my schedule to pursue a new project, and used my limited time to release the two last Content Patches, for free (Shelters and Sailing) as a thank you to the Unveil community.
However, when I thought I was done with video game development due to exhaustion, the unstoppable itch to create something new kept creeping back in, usually resulting in a prototype. A simulation of some sorts. One thing I usually kept coming back is Nation simulation.
That said, I felt like what makes a Nation interesting is the long term planning and standing among other Nations in the region. A game like that should be online and real time. But some challenges were in the way, that I was finally able to iron out. First, let’s talk about the game itself.
Particle Nation (codename)
Until I decide if this game is entertaining and worthy of a unique name plus completion, we shall call it Particle Nation.
Particle Nation is a real time, cross platform web app, true simulation of Nations. By true I mean this is no Farm Ville in a Nation theme. We are talking about Infrastructure, Policies, Generations, Supply/Demand and other features already implemented and currently under testing.
Infrastructure view UI concept. Where the power icons at the bottom would be different Utilities or Building types (Power, Water, Retail, Industries, etc…) and the items at the center would be the various, say, power plants you can build: how many of them, and how they impact budget, energy, pollution, etc…
If you played SimCity before, I can quickly summarize this game by saying: “It’s like SimCity, minus the city view, plus the National scale” although still quite vague. I could talk about how Supply and Demand works, how Nations affect others, but for now I want to talk about one very cool and rather unique feature to Particle Nation, which is the Generational Simulation.
Normally, city simulators will use slow changing variables or timers to simulate changes over a long period of time. Our approach is to actually simulate each generation of the population in groups of 10 years.
Each Population Segment has it’s own Wealth, Education, Health, and so on. Each produce tax income or take away pension money from the Treasury. Each have different requirements for happiness, and their Education and Health do drop as time goes by.
Allow me now to illustrate how this feature works long term with two examples:
One: Newborns get bigger educational boosts the more educated their parents are. This means that if a Population Segment can gain, say, 40% of it’s education through schooling, it still needs that initial boost from their parents to get to higher values, to then also pass down the total education to their offsprings as a small initial boost. Long term iterations of great education will be the only way for a high education average in the country.
Similar stories can be told about Health, Wealth and other attributes. There is just enough precision to see how the population evolves and how you are truly impacting their lives, for better or worse. This is already working, mind you!
Two: Population booms. High death rate makes a population have more babies just so that some can make it to adulthood, and once the education and health rise up, the natality rate will drop. If this occurs too drastically, though, you will experience a big hit in the Nation’s economy, as the newer generations joining the workforce aren’t as many as their elders, producing less Income Tax making harder to maintain elder’s Pensions.
My point is that the simulation on Particle Nation is not to be dismissed just for being a web based app. I am gathering all my experience in Simulation as developer and consumer to make something I’m proud to distribute, and happy to play.
Very briefly, since this is a real-time simulation, some things will take time to make. You can relate to this as your average mobile game “timers”. Huge power plants are not build in a day, but in several in-game years (roughly some real-life hours, although I am still trying to settle on the best timescale). However this is attempting to be realistic, not sell you “rushes”, so do not expect any of that In-App stuff that makes the experience less valuable.
Besides Buildings, Policies, generational & regional changes that will take time, some other activities will have short term impact, that only arise if you are actively playing the game. In example, a Nation will have different Events occurring that depending on your action (or inaction) will result in changes in the economy or morale of various sectors, or the safety of your citizens to name a few. More on Events on a future entry.
Major technical challenge: Elastic Simulation
Unless you have a geeky spirit, you may skip this section, as I want to talk a bit about a fascinating aspect of the engine built for Particle Nation.
SimCity, one of my favorite simulation games ever, runs on a local computer, which means as long the player has a decent CPU, the simulation will run smoothly regardless of how many players buy the game.
On Particle Nation, each Nation is being simulated on a single server, nonstop. Hundreds of Nations that never go to sleep because they interact and rely on each other. Nations exist physically, always. They don’t have timers, they have simulation cycles just like our previous game Unveil did. So how can we run all of them at once?
It wouldn’t be possible without a technique I call Elastic Simulation.
The underlying engine allows for Simulation Units or Simunits (as in a Building, a population segment, or a Nation) to group up and to compress a whole in-game year worth of simulation into a single cycle, while triggering the correct events normally executed by weekly or monthly cycles with a minimal level of accuracy loss.
Sidenote: I also call this technique Simulation Compression as it resembles to Image Compression in the way that the more you compress, the more memory you save (or in this case, CPU) at the expense of a lower quality image (or in this case, a less precise simulation outcome). However, the word “elastic” also speaks of the ability to quickly shift from low to high compression and back.
This allows to, whenever players are not playing the game or become inactive, to reduce the precision level of their Nation to save up to 80% of CPU usage, allowing for more Nations to coexist. And thanks to a Transactions Queue, Nations can interact with each other asynchronically as they run on different simulation scales or compressions.
There is more to the technical challenges of Particle Nation, but this is by far the most fascinating and interesting to me and I’d love to dig in deeper about it in the future, for anyone interested.
More to come
I will continue to post on the progress of Particle Nation, but I am eager to hear your early opinions and gauge the interest as I am moving forward. One of the best tips for product design I’ve received, is that a designer can have a vision and a feature set list, but users will point out to you what really is worthy and interesting about your product. Listening early saves plenty of time and effort.
Thank you for reading.
Stay up to date with the development by following @ParticleGS on Twitter.