Inspiration

We wanted to find what traits allows for a dinosaur to survive.

What it does

First, this spawns in 25 randomly generated dinosaurs which are spawned in the same environment. These dinosaurs each have individual traits that affect how fast they move, how much energy they can store and can consume, how well they fight other dinosaurs, as well as their individual behaviors. These dinosaur fight and the remaining 4 are parents of most of the next generation. Each offspring randomly takes a trait from the parent as well as the mean of the parent's color value. Additionally, this child has the potential to mutate. This continues until interrupted.

How we built it

We built this on top of Pygame, a simple game development package. Outside of rendering, we hand coded everything else in the simulation including behaviors and combat output calculations.

Challenges we ran into

A large challenge we ran into was figuring out the "Balance" of the simulation, we noticed that at the start some traits were extremely prevalent that are not prevalent in real life dinosaurs. So to remedy this we edited our simulation parameters to ensure traits both have their weaknesses as well as their strengths.

Accomplishments that we're proud of

We are very proud of our behavior logic. We made 14 different behaviors all of which have their own unique way of approaching the simulation and it's own needs. We are also proud of the genetic algorithm we implanted to create the children for the future generations.

What we learned

We learned a ton, for one of our members this was the first time the have used git and GitHub. It was also fun to learn a lot more about pygame, and developing using pygame not just for making games, but for visualizing simulations.

What's next for Datasaur Royale

We could implement a lot more factors into our simulation to make it a lot more realistic. One we really wanted to touch upon but were not able to was how different dinosaurs react to different terrains.

Built With

Share this project:

Updates