Giter VIP home page Giter VIP logo

improved-colony-simulation's Introduction

Improved Colony Simulation

This is going to be an improved version of this old project

Why?

Mainly because i was using Unity the wrong way. I wasn't making use of the script binding to a prefab and other stuff. Also i was using the Physics Engine in Unity and thus the performance was really bad (in combination with multiple Neural Nets running every frame)

What is going to be different?

I'm going to try and write my own physics to reduce overhead and increase performance (i hope). Also i'm going to focus more on core features instead of making everything big and fancy.

TODO

  • Fix: Genetic algorithm doesn't seem to be improving over time..
  • Fix: Random stutters
  • Fix: GeneticAlgorithm takes waaay too long to finish
  • Objects are placed relative to zoom value; when zooming in before new round starts, you'll see the objects are placed different than before
  • I think the difference of brain outputs, between different colors, is not great enough (maybe this can be fixed by making the weights 'bigger' ?)
  • Make creatures more focused on a target when they want to follow (now vision() keeps going on and could wander off while following)
  • Add Color to genomes? (aesthetic, to see which creatures are from the same familly)

DONE

  • Build a graph that captures every round and shows if we are actually improving or not
  • Genetic Algorithm
  • Every round takes X seconds in-game time, after that a new round starts
  • Add age, decrease over time
  • Also add "amount of food carrying"
    • This decreases over time (or distance travelled?)
    • Increases when eating food
    • Also increase mass when eating
    • When it reaches 0 you die
    • Add this to the brain inputs (so decisions can be made according to your food Mass levels)
  • Added a seed to Random class. Sadly this does not make the physics completely deterministic (probably has to do with floats not being deterministic)
  • Improve vision, create a "cone" \ / instead of a single straight line (see CreatureBehaviour.cs 125 - vision edges)
    • Hopefully this will also fix the avoid force so that they wont collide while trying to avoid, if not also fix this
  • Added NN input [..., 0-1 Bool wether we see something or not] this is to make a difference between white (RGB,000) and seeing "nothing" (RGB,-1-1-1) which gets translated to 000 by the NN
  • Added NN input [... , Velocity.x, Velocity.y] to get some different outputs even when you are seeing nothing the whole time (otherwise it will always output the same if you keep seeing the same RGB values)
  • Improved Neural Network Feedforward()
  • Make creatures "Wander" if they see nothing
  • Neural Network
    • Input (3): Vision; color of the thing we are seeing, format double[3] {R, G, B}
    • Output (1): Chance to avoid/follow what we see
    • Layers (1): ??
  • Make creatures "look" for food, instead of following the mouse
  • A way to represent objectives like food (maybe tile-based)
  • Basic creatures with basic physics and movement
  • Camera movement (zoom and drag)

improved-colony-simulation's People

Contributors

johnnydeeee avatar

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.