Petri Kings: Devlog 1

Petri Kings is my first complete title which I will be released in beta before the end of this year.
As I write this, I’ve been working on the project for about 3 months which makes this a very late first devlog. However I’m officially feature complete and want to share what I’ve been working on as I move into bug hunting and some closed playtesting before officially posting Beta version 1.0.

Petri Kings will be a single player evolution game inspired by Spore and Agar.io. As the Player you will start with a simple single cell in a petri dish full of other prokaryotes and must consume energy to divide and evolve into the dominant species in the dish. With each cell division, you can use the energy you’ve collected to change the shape and size of your cell, or add new organelles from a branching tech tree, gaining new stats and abilities as you specialize and evolve. The game uses procedural meshes to generate an array of unique enemy cells that you can encounter with each game, as well as granting a wide range of creativity to design your own cells.

Gameplay

The gameplay loop leans into the simplicity of a single celled ecosystem. As the Player you must navigate a dangerous environment and gain energy which you can then use to gain lives and improve your character.
Your main cell moves forward following the direction of the mouse, and consumes nutrient pellets scattered throughout the dish. You must avoid carnivorous cells and toxins in the environment until you collect enough energy to divide and edit your cells.
New cell parts are purchased with collected energy in the cell editor and each one unlocks new abilities or parts, branching into different paths of evolution that mirror the evolution of early prokaryotes here on earth.

Procedural Generation

As with my Procedural Dungeon Generator tool, this project uses procedural generation to create unique encounters for each game, this time focusing on the characters as opposed to the level. The bodies of each cell in the game use procedural meshes with a front, middle, and back segment. These segments can each be stretched in two directions and the body is constructed around these parameters. Any unlocked organelles are then dynamically attached to the generated mesh. This system allows for a great deal of control for players when designing their own cells.
NPC cells also use this system to generate their body structures before selecting their organelles and adaptations from the same tech tree available to the player. This allows for a great deal of variety in NPC cells that players can encounter, as well as creating a unique and dynamic ecosystem for players to navigate and adapt to during the course of gameplay.


Educational Elements

My first introduction to game design was during a high school science project when we were tasked to make a game that taught a concept we’d learned that semester. To honor that project Petri Kings is intended to serve as a light introduction to the concept of evolution and microbiology. Unlike Spore where new parts are randomly encountered in the game, each new part here is unlocked in a branching tech tree which follows the evolution of prokaryotes here on earth. The 1.0 release will include evolutionary branches into simple Bacteria and Archaea. While some cell parts like Ribosomes and Membranes are universal, others like Capsules and some Secretion Systems are only available to specific cell types after specializing, resulting in different playstyles based on the design and evolution of your cell. There are also many examples of convergent evolution where parts have analogs with similar effects on each branch, ensuring successful and potentially overpowered traits aren’t fully locked to a single line of evolution. Descriptions of each cell part and the effects it has on the cell are displayed when hovering over them in the editor before unlocking them.
As the complexity of your cell grows, you’ll require more energy to divide resulting in a steeper difficulty curve the quicker you evolve and unlock new parts.


Challenges / Post Release

Over the last few months I’ve done a lot of research into microbiology and experimented with different gameplay features to make the game as accurate to a life simulation as I could. Unfortunately a good simulation doesn’t always make for exciting gameplay, and as I learned more about the supposedly “simple” single celled world, the scope of the project rapidly got out of hand. In the end the complexity of the simulation and a few pages of features had to be shelved or backlogged for future updates.

One of these features is simulated NPC evolution. Initially NPC Cells started in the same state as the player and evolved naturally over the course of the game. However, during the first round of playtesting this made for extremely boring or frustrating gameplay. In most games the NPCs provided little to no competition or threat to the player early game, but then rapidly caught up and overtook the player later without the time restrictions of manually editing their cells during each division.

Two other features that were unfortunately lost along the way were Multicellular colonies, and Eukaryotic cells. My initial idea was to include Eukaryotes as the third main branch of evolution, and allow all three to grow into colonies or simple multicellular protists. After diving into a number of rabbit holes researching examples of multicellular prokaryotes, the various types of Algae and slime molds, and the enormous complexities and variation in even simple protozoa, both concepts ended up each filling pages of potential features that are beyond out of scope for what I intended to be a side project after work.

With that said, the backlog lives and in it all the features that I want to add, and an ever growing list of notes and ideas. A lot of trimming had to be done to bring the game to a playable state but the first Beta will be very far from the final game and I’m extremely excited to release and learn what it needs most so I can get back to work.

Previous
Previous

Petri Kings: Devlog 2

Next
Next

Procedural Dungeon Generator 3.1