Code Monkey home page Code Monkey logo

lifeengine's People

Contributors

chrispykins avatar dependabot[bot] avatar evaisadev avatar johnbutlergames avatar maxrobinsonthegreat avatar terramaster85 avatar theomgdev avatar trevorsayre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lifeengine's Issues

Hotkeys

Add hotkeys for button controls.

Discussed in #17. Originally posted by Ketok4321

Organisms that are disconnected

Maybe this is intentional, but I don't think that organisms are supposed to be disconnected.
It also makes it very confusing because it looks like two organisms when it is really one.

In the organism editor, you have the ability to create organisms that have disconnected cells. Also, sometimes organisms mutate and become disconnected.

To reproduce the bug, go to the editing menu and add a cell that is not adjacent to the initial mouth cell. Then spawn in the organism and it moves around as normal.

I expected it to give an error message saying you cannot make a disconnected organism, and I also expected it not to mutate into disconnected organisms.

Environment: Desktop

Move range mutate to one.

org.move_range += Math.floor(Math.random() * 4) - 2;
-2..1
-0.5 range per mutate.

After 10-20 mutates range will be 1. With extreme low chance to up.
image

Easier way to remove starter organism

I have to kill it and then use the food icon to clean up the food. Either

  1. Have an option to not include the starting organism after resetting
  2. Have the kill option not turn it into food or have an option for that

Cannot find module 'jquery'

Describe the bug
When I try to build it with npm run build-watch it shows this error message

To Reproduce

  • checkout the repo
  • npm i
  • npm run build-watch

Expected behavior
The project get built and can be run.

StackTrace

npm run build

> [email protected] build E:\Projekte\Privat\LifeEngine
> webpack --mode=production

Hash: 5cae29e5d63478b8e3a1
Version: webpack 4.43.0
Time: 885ms
Built at: 07.06.2022 21:20:21
 1 asset
Entrypoint main = bundle.js
 [0] ./src/Organism/Cell/CellStates.js 2.46 KiB {0} [built]
 [1] ./src/Hyperparameters.js 966 bytes {0} [built]
 [2] ./src/Stats/FossilRecord.js 5.14 KiB {0} [built]
 [5] ./src/Organism/Organism.js 11.4 KiB {0} [built]
 [6] ./src/Utils/SerializeHelper.js 589 bytes {0} [built]
 [7] ./src/Stats/Species.js 1.44 KiB {0} [built]
[10] ./src/Controllers/ControlModes.js 173 bytes {0} [built]
[11] ./src/WorldConfig.js 160 bytes {0} [built]
[12] ./src/Environments/Environment.js 372 bytes {0} [built]
[17] ./src/Engine.js 2.85 KiB {0} [built]
[18] ./src/index.js 2.46 KiB {0} [built]
[19] ./src/Environments/WorldEnvironment.js 8.34 KiB {0} [built]
[32] ./src/Controllers/ControlPanel.js 19.1 KiB {0} [built]
[38] ./src/Environments/OrganismEditor.js 4.24 KiB {0} [built]
[41] ./src/Rendering/ColorScheme.js 1.19 KiB {0} [built]
    + 27 hidden modules

ERROR in ./src/index.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src'
 @ ./src/index.js 1:0-17

ERROR in ./src/Controllers/ControlPanel.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Controllers'
 @ ./src/Controllers/ControlPanel.js 1:0-17
 @ ./src/Engine.js
 @ ./src/index.js

ERROR in ./src/Controllers/EnvironmentController.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Controllers'
 @ ./src/Controllers/EnvironmentController.js 1:0-17
 @ ./src/Environments/WorldEnvironment.js
 @ ./src/Engine.js
 @ ./src/index.js

ERROR in ./src/Controllers/EditorController.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Controllers'
 @ ./src/Controllers/EditorController.js 1:0-17
 @ ./src/Environments/OrganismEditor.js
 @ ./src/Engine.js
 @ ./src/index.js

ERROR in ./src/Environments/WorldEnvironment.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Environments'
 @ ./src/Environments/WorldEnvironment.js 1:0-17
 @ ./src/Engine.js
 @ ./src/index.js

ERROR in ./src/Environments/OrganismEditor.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Environments'
 @ ./src/Environments/OrganismEditor.js 1:0-17
 @ ./src/Engine.js
 @ ./src/index.js

ERROR in ./src/Rendering/ColorScheme.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Rendering'
 @ ./src/Rendering/ColorScheme.js 1:0-17
 @ ./src/Engine.js
 @ ./src/index.js

ERROR in ./src/Rendering/Renderer.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Rendering'
 @ ./src/Rendering/Renderer.js 1:0-17
 @ ./src/Environments/WorldEnvironment.js
 @ ./src/Engine.js
 @ ./src/index.js

ERROR in ./src/Stats/StatsPanel.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Stats'
 @ ./src/Stats/StatsPanel.js 1:0-17
 @ ./src/Controllers/ControlPanel.js
 @ ./src/Engine.js
 @ ./src/index.js

ERROR in ./src/Stats/Charts/ChartController.js
Module not found: Error: Can't resolve 'jquery' in 'E:\Projekte\Privat\LifeEngine\src\Stats\Charts'
 @ ./src/Stats/Charts/ChartController.js 1:0-17
 @ ./src/Stats/Charts/PopulationChart.js
 @ ./src/Stats/StatsPanel.js
 @ ./src/Controllers/ControlPanel.js
 @ ./src/Engine.js
 @ ./src/index.js

Environment:

  • Desktop
  • OS Windows
  • Browser chrome

Reproductive overflow [enhancement]

Reproduction is currently very "all or nothing", which greatly favors small, space filling organisms. It's a good evolutionary strategy for organisms in the sim to be small, as this blocks the reproduction of larger organisms and simultaneously lowers it's own reproductive cost. 100% of the food an organism collects to reproduce is lost if it fails.

Instead I'd like to suggest a way to make the amount lost configurable. Either a set %, a proportion to size, or an inverse proportion. An inverse proportion in particular would favor smaller organisms, while a proportion to cell count would favor larger ones, especially larger movers.

Infinite FPS

Describe the bug
actual FPS value is higher than target and sometimes infinite when target fps is set low, though simulation speed seems correct.

To Reproduce
Set fps to low value <60

Expected behavior
Should roughly be the same as target fps or lower

Forgot to read the read me ignore

What a heal cell would do is when you got hit by a kill cell or you are dying from age , it heals a bit , for the cost of some of the food you collected

I'm not skilled enough in codding to make that lamo

Walls can not be taught to organisms with brains, only evolved

Describe the bug
Organisms can evolve to see and recognize walls, but cannot be taught them manually in the editor, making reproducing certain behaviors difficult or impossible

To Reproduce
Line an environment with walls and promote mover development until they have eyes and can recognize the boundaries of their environment.

Expected behavior
Walls should be selectable when constructing an organism

Can't adjust the 3 mutation type probabilities independently.

Describe the bug
When you try to adjust the 3 mutation type probabilities independently, when you edit one of the inputs the other adjust to the left value so you always have one distinct value, and the rest is divided by the other two (so they are equal).

To Reproduce

  1. Go to Simulation controls.
  2. Edit a value of Mutation Type Probabilities.
  3. Edit another different value of Mutation Type Probabilities.
  4. The first value is changed automatically to the same value as the third.

Expected behavior
The first value is left as it is and only the third value is adjusted.

Environment:

  • Desktop
  • Linux
  • Firefox

Firefox Simulation Speed issues

Describe the bug
In firefox, the simulation speed does not work properly, neither slowing down or speeding up.

To Reproduce
Open in firefox, adjust simulation speed.

Expected behavior
Should work exactly as it does in chrome and edge

Environment:

  • Desktop
  • Windows
  • Firefox

Mutations add or remove cells even with zero propability for that.

Describe the bug
When both Add Cell and Remove Cell are set to 0, both of these types of mutation still seem to occur.
When only Add Cell is set to 0, organisms with added cells do appear.
I did not experience organisms with clearly removed cells if only Remove Cells is set to 0.

I was not able to test if there is a similar bug for Change Cell, as the effect of every change-mutation could be achieved with removing and adding one cell.
Using Global mutation rate set to 0 does not result in a similar bug.

To Reproduce
Before Mutation could occour, under Mutation Type Probabilities, set Add Cell or Remove Cell to 0.

I restarted the enviroment after, to make sure all life would be affected the same.
I did not take these results from the Organism Structure statistic, as it seemed to be flawed.
I instead looked at organisms by selecting them into the Editor window.

Expected behavior
Mutations should not be able to add or remove cells.

Environment:

  • Desktop
  • Windows
  • Firefox

Food decay [enhancement]

The only options we have to control food is producers, randomized spawning and the option "food blocks reproduction"

Unblocking reproduction inevitably results in a highly optimized space filling sedentary producer evolving. With only one or two killer cells they can stop predetation by movers and shape their environment. I call these 'thorns'. They no longer need movers to clear out dead thorns, and can block the reproduction of movers by either killing them or just taking up as much space as possible.

The other binary alternative is to have food block reproduction. This tends to lead to die-outs of vegetive producers. Movers either evolve into omnivores that can prey on both vegetive and mover life, or evolve into "fructivores" that only take excess food produced by plants. Fructivores are exceedingly rare however, as they're only distinguished from omnivores by the presence of a single cell which greatly increases their individual fitness. You can shorten the lifespan of organisms to prevent excessive predetation by movers, but that significantly limits how big organisms can get and consequently works against the rise of fructivores that require complexity.

There's also the rare but possible extinction scenario with 'movers can produce food' of a highly optimized space filling mover gradually covers the map in corpses, running out of space.

I think the solution is a food decay mechanic. Food decay in seconds would allow some predetation by movers without the plants needing them to survive, as they can continuously repopulate decayed regions if movers don't clear it out in time.

Global mutation rate not restored from world save

Describe the bug
After saving a world with "Use evolved mutation rate = off" the value of "Global mutation rate" is not restored from the save file even when "Override Evolution Controls = on".

To Reproduce

  1. Set "Use evolved mutation rate = off"
  2. Set "Global mutation rate = 10"
  3. Save "world.json"
  4. Set "Global mutation rate = 2"
  5. Ensure "Override Evolution Controls = on"
  6. Load the "world.json"
  7. The value "Global mutation rate = 2"

Expected behavior
The value "Global mutation rate = 10"

Environment:

  • Desktop
  • Windows 10 64 bit
  • Browsers:
    • Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0
    • Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.124 Safari/537.36 Edg/102.0.1245.44

Additional context
All other evolution settings seem to be restored properly from world file.

Slow down/crash after several hours

Performance decreases and memory use increases over time even though population does not. I assume that the plotting or something else just keeps accumulating data.

Improve reset/close warning

I hope this counts as an issue

When pressing the Reset Environment button, all walls get removed. Sometimes I forget this will happen and will have to redraw everything.

Why I think this is a bug:
There is a whole button to remove walls (the "Clear all walls" buton) and that asks the user to confirm they are really sure they want to delete the walls. This makes it seem important and that we don't want to accidently remove walls. We could use this button to remove the walls even after a reset. Or if the rest button is pressed while walls are drawn, the same alert could be triggered

To reproduce:

  1. draw walls
  2. press "Reset Environment" button (walls also get removed)
  3. < intentionally left blank >

Expected option 1:

  1. draw walls
  2. press "Reset Environment" button (walls remain)
  3. press "Clear all walls" button to remove walls

Expected option 2:

  1. draw walls
  2. press "Reset Environment" button (walls remain)
  3. click ok on alert asking if walls should be removed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.