A downloadable game for Windows, macOS, and Linux
This is a football team simulation. You can see a team of wobbly limbed players learn to play football before your own eyes by evolution.
W A S D - Move around.
Z X - Zoom in or out.
R - Simplified rendering
When you open the game, you see the setup of your team. Select the grab tool in the top left corner to grab players and put them in the desired position on the field. With the select tool you can select a player and change it’s properties, like it’s name, length, brain type and inputs. When you are done, click on Start Training.
When you are training a team, you can increase the speed of the game, so that you don’t have to wait forever for evolution to happen. Now you can watch your team become better and better over time.
Turn on hardcore to allow players to knock each other unconscious.
How it works
Each player is controlled by a neural network, it’s brain. The brain receives some inputs, like the location of the nearest team member, or the position of the ball. Then the brain gives an output which controls the player. The training happens by making a couple of copies of the brain each generation, and then letting these brains compete against each other. The better brains are then combined into a new brain for the next generation.
The inputs can be seen when you select a player with the select tool. You can only set properties of a player that hasn’t been trained yet. Indicated by the purple text. The options are:
Nearest team inputs: number of nearest players from it’s own team this player receives information about.
Nearest opp inputs: number of nearest players from the opposing team this player receives information about.
Fixed team inputs: number of fixed players from it’s own team this player receives information about.
Fixed opp inputs: number of fixed players from the opposing team this player receives information about.
Team distance: Whether this player receives the distance to a player.
Team angle: Whether this player receives the angle to a player.
Ball distance/angle: Whether this player receives the distance/angle to the ball.
Ball direction: Whether this player receives the direction the ball is moving in.
Own goal distance/angle: Whether this player receives the distance/angle to it’s own goal.
Opp goal distance/angle: Whether this player receives the distance/angle to the goal of it’s opponent.
Field edge distance/angle: Whether this player receives the distance/angle to the edge of the field.
Brain Type: The neural network structure that is being used.
FFNN: Stands for Feed Forward Neural Network. This network is really simple and can’t form memories.
GRU: Stands for Gated Recurrent Unit. This network is more complicated, but can form memories. This network usually leads to better results.
Layer size: Amount of neurons in a single layer. The GRU network only has one layer, so this is the entire brain size if GRU is selected.
Hidden layers: Only for FFNN. This is the amount of layers in the network. More layers mean more possible behaviors but also a longer training time.
Length: The length of this player. This does not affect it’s abilities.
You can compose a team with different players. The players are then trained in turn. It can be difficult to get good results, so I encourage you to experiment. For instance: when you combine a previously trained player with a new player fresh from the cloning machine, the new player will be much worse. It might be a better strategy for this player to stand in the corner and let the previously trained player do all the work, since the overall team performance is being optimized. To prevent this, you can add 3 previously trained players such that the performance of the new player is relatively more important.
You can save players after training by clicking the save button under settings. The saved players are loaded into the game automatically. To delete a player, throw it into the incinerator at the bottom left.
Click download now to get access to the following files:
Log in with itch.io to leave a comment.
UHH People like running into walls a lot
Oh and also a directed camera that follows the ball or the players in general with automatic zoom maybe would be awesome!
I'm afraid I lost the source code to this project :(. I might rewrite it in my new game engine though, but it will take a while
Hi! Idk if you're still around. I got a couple suggestions. First, adding a slow mo 0.5x. It gets quite chaotic to see it in real time.
Also, allowing you to make the field larger.
Then, maybe change the color to grey once the players die?
And there is a bug where it doesn't let me change the player options such as nearest team inputs or opp goal angle or layer size.
Thanks for this , it's amazing! Have a great day
Why opponent maximum input is stuck at 10 ?, it should be 11.
when i download the game, i do get a map, full of some game data (i guess), but there is no game. nothing i get in a file is a game... why?
You probably don't have Java installed. You can download and install Java. Or if you dont want that you can wait 2-3 months when I have the new version. It will run out of the box without hassle.
I kinda hate having to close down the neural network info after the round ends, anyway you could make it so that you dont have to do that?
it saved my peoples but idk how to load them back in, i have the file for each AI but idk how to load them
how can i run the .jar file i've been searching online but im stumped since i cant find an executable i've also downloaded java