Giter Club home page Giter Club logo

alife-tournament's People

Contributors

jonahshader avatar rfrost114 avatar ruar-p avatar

Watchers

 avatar  avatar

alife-tournament's Issues

Main Menu

The main menu will have multiple buttons which lead the settings screen, the saved creatures/environments screen, or to the screens related to one of the two main game modes.

Use better weight initialization

Currently, weights are initialized with gaussian noise with mean=0, std=1. This is problematic because larger brains have more connections, leading to higher input variance to each neuron. We want the pre-activation of each neuron to have the same variance regardless of the initial size of the brain to prevent saturation of the activation. I think that the creature's jittery, erratic initial behavior comes from the over saturated activations in the brain (similar to seizures in real brains).

I will try to alter the initialization to reduce over saturation.

Saving User Account

  • Client - When the UserAccountPacket is altered in any way, send it to the server. Basically, every setter method should just do this
  • Server - Make listener to receive UserAccountPacket and save/serialize it

PhysicsObject

PhysicsObject is a class that extends Group. It has a move method that takes in delta time and uses that to integrate acceleration and velocity using euler integration, basically: vel += accel * dt; pos += vel * dt;

Fix Screen Flow

Flow should be

  • Select Single player or Multiplayer
  • Multiplayer ->Server Connect -> login screen -> main menu
  • Single player -> main menu

PhysicsEngine

PhysicsEngine detects collision between PhysicsObjects <-> PhysicsObjects, and Tools -> PhysicsObject

Tournament screen, related code

Need:

  • ChunkSelectScreen, similar to SimScreen but env is paused and there is a ChunkSelect tool
  • Tournament should go to Saved screen but only show environments

leaderboard

add leaderboard tab to (main menu?)
needs server and client listeners

Energy

Add energy to tools, sensors, creature

Generation Screen

Screen right before entering the simulation screen. Should be able to set maximum number of components and other generation constraints for training.

Eye

Need to add the Sensor interface, and then make Eye that implements Sensor.

second user

add new user type

  • only new thing is they can access save testing screen
  • add Boolean field to user account packet to track this
  • move testing screen button to main menu

Saved Entities Screen

The saved entities screen needs an interactive UI with separate tabs for the creature and environments, as well as an information window for a selected entity.

Creature Info HUD

Need to be able to click on a creature and get various information about it, such as a list of components the creature has. The camera should also follow a selected creature as it moves around.

Add skeleton

Add all (initial) interfaces:

  • Brain
  • Tool
  • Sensor
  • Mutable

Bug fixes

The simulation thread doesn't exit properly when the program closes, and offspring inherit health instead of starting from full.

Fill/Automate tables

Need a certain amount (like 40 or something) entries in a table. We can generate random creatures with randomized names and descriptions for this.

Toolbar

Need a toolbar for world building tools and simulation control (speed, pause, nodraw, etc).

Implement SparseBrain

Sparse brain is a graph-based brain. Neurons are connected via weights, which are just floats. Probably should implement the graph using list of edges. The activation function should be configurable.

Horn Component

Add a component called horn that can be attached to a creature. A creature with a horn should then have the ability to do damage to other creatures on collision.

Environment and Food

Create an environment that can spawn food until the total food reaches a maximum limit

DenseBrain

Dense brain is a standard neural network using dense matrix math. Activation function(s) should be configurable somehow. Maybe the constructor takes in a list of layer sizes and activations?

SimScreen

Implement a screen that runs an environment with a spectator camera or something similar. Also would contain some kind of HUD.

make single player tournaments work

need to add several users to assets that will be shipped with the game
each of these users will need a couple chunks associated with them

Chunk Fusion

make a method that fuses 4 chunks together, producing a tournament

Flagella

Implement Flagella, the tool the creature will use to propel itself through the environment.

Shop screen

Make a shop screen in the main menu where a user can purchase various upgrades with currency they earn from winning tournaments.

Mouth

Mouth needs to eat food and increase the creature's energy. Maybe it also regens health?

Creature

Implement the main creature class.

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.