Auto-evo algorithm

Not sure if you said this but how straining was this autoevo of yours on your PC? How long did it take for the equivalent to one autoevo session in Thrive to complete?

2 Likes

I ran what is equivalent to one auto-evo session 100 times each with the same starting conditions. The impact on the ever increasing number of species and populations can definitely become measurable over time and until I make it so dynamic start states can be loaded from files I won’t know that impact yet. The average is about 16 ms. All runs were between 10 to 43 ms. Again how the ever increasing number of populations and species that Thrive spawns will impact it much more than Thrive’s own auto-evo system does is currently unknown to me.

as an FYI these are my specs:
Intel Core i7-10850H
16 GB of ram
integrated graphics and Nvidia Quadro T2000

3 Likes

This is why we should test it in the same environment thrive’s autoevo operates in so we get a fair measure of how well it does

1 Like

That is what I’m trying to reach atm

2 Likes

Btw, do not post two posts in a row, edit stuff into your post if it’s the latest post of a thread
If it already happened, copy and then remove the later post and paste the later post into the former post

2 Likes

What was the mode and median of run times? Those stats can also give important information for improvement.

2 Likes

I do not have that data nor will I be able to get that data for now. My current interest is to be able to use auto-evo exports from thrive to have bigger and procedurally generated worlds. Makes the performance hit a little more measurable and comparable.

3 Likes

And after that you’ll move on to an in-game implementation of your system?

2 Likes

Do you already have ideas on how you could further optimize your algorithm, based on what you have observed so far from your data?

2 Likes

Probably will. The version in C was made as a proof of concept and also because that’s the language I’m more comfortable. Now that I have a more concrete idea of what exactly I am doing through an already existing implementation the next logical step is to do the full thing.

3 Likes

How long do you think it’d take you to make the port of this improved autoevo in the game?

2 Likes

Algorithm optimisations is more about reducing the workload. Caching values so the program doesn’t spend time doing unnecessary operations.

2 Likes

Do you think your algorithm would be easily applied to Multicellular and Macroscopic without major changes, or would there be additional major changes needed for those particular stages?

2 Likes

I think this could be of need once we get to the later stages anyhow, no matter which autoevo gets through

2 Likes

It shouldn’t be too difficult. The main hurdle is the representation of what an individual is. Changing it from that means a single cell to something that can represent either single cells or multicellular organisms. The rest is already existent. But macroscopic is a little unknown. It depends on the direction the editor goes so by far the biggest modifications would be systems to handle macroscopic. Again how much depends on how it will work.

3 Likes

Macroscopic, aware and awakening will base on doing stuff with metaballs so they would be the base unit, with some other stuff serving as modifications to those

2 Likes

Well… no more than a few months to get everything that I have in the proof of concept in the game. I’m not entirely sure for the complete compatibility but within that timescale at the least

3 Likes

I’ll be looking forward to this implementation then, I presume you will stay at 1.1.0 with it?

2 Likes

I don’t think I will have much of a choice for the time being. It depends on the underlying changes. If all the information given to auto-evo doesn’t change nor the output expected from it then it shouldn’t be a problem. If there are changes that conflict then I’ll have to stay within specific versions

3 Likes

To begin with, practically everything surrounding auto-evo is in: Thrive/src/auto-evo at master Β· Revolutionary-Games/Thrive Β· GitHub

And some external documentation is in: Thrive/doc/auto_evo.md at master Β· Revolutionary-Games/Thrive Β· GitHub

4 Likes