Evoli - an official Amethyst showcase game

Published on Jun 2nd 2019 by erlend_sh

Today marks the first stable release of Evoli, an evolution-inspired simulation game made in Amethyst. We’ve successfully completed the MVP spec (and then some) as it was laid out back in February.

What we’ve got so far

Download v0.1.0

As of v0.1.0, the game is non-interactive. You can not manipulate the creatures in any way. All you can do is either slow down or speed up the simulation. Our tiny world currently consists or 3 canonical creatures co-existing in a tenuous equilibrium:

  • Plants
  • Herbivores (plant-eaters)
  • Carnivores (meat-eaters, aka predators)

You’ll also notice an insect-like creature flying around. It is classified as experimental, which means that it does not interact with the canonical creatures. This separation allows us to easily accept new creature contributions without getting blocked by balancing or compatibility concerns.

Why we’re doing this

There’s a longer explanation available, but in short: Evoli is being designed and developed for the purpose of testing and demonstrating a selection of Amethyst’s key capabilities. The game is open source all the way down to the original design specifications and implementation discussions, intended to be as easy as possible for newcomers of Amethyst to jump into, either as a brief learning experience or even as a longer term commitment.

What’s next

In v0.2 we’ll introduce a goal: Don’t let any creature species go extinct!. This will likely remain the goal of the game for many iterations to come, but the interactions available to the player in order to achieve said goal might change drastically over time.

We’ve also got some cleanup to do in subsequent v0.1.x patch releases:

  • We have multiple dispatchers, but the game data dispatcher contains the rendering and user input systems. We should split those up so that we can run the main game state dispatcher between input and rendering.
  • The time control UI could be declared as prefabs.
  • State in the time control UI is ‘hacked’ by mirroring the events. Instead, we could store the current pause state (Play or Pause) in a resource.
  • Move swarm_behaviors and ixies into the experimental folder.

How to get involved

It’s very early days so there’s more rough edges than soft ones, but Evoli already has multiple points of entry for programmers as well as artists interested in contributing.


Roughly in order of first involvement.

Core team:

  • Erlend Sogge Heggen @erlend-sh - Designer & Project Manager
  • Karll Henning @khskarl - Programmer
  • Marco Rotili @marot - Programmer
  • Victor Cornillère @sunreef - Programmer


@khionu, @belovachap, @onbjerg, @Awpteamoose, @jakob_t_r, @nicklasmoeller, @a5huynh, @hbina