Skip to content

Custom Java neural network applied to a Micromachine-like 2D multiplayer car racing game.

License

Notifications You must be signed in to change notification settings

Meight/GeneticDriver

Repository files navigation

GeneticDriver

Preview

20 AI cars learning.

20 AI cars learning how to drive through the use of raycasts.

Player versus AI.

Player versus the best stored AI (all-time best individual from the training phases). Though this individual's car isn't boosted in any way, it's practically almost impossible to beat its nearly perfect trajectories.

Run the application

Grab the latest build here or head to the builds/ folder.

To run the application, simply run one of the root scripts:

  • start.bat for Windows-based platforms;
  • start.sh for Linux-based platforms.

You can check these scripts before running them to ensure they're safe.

In-game controls

  • press SPACE to make your car accelerate;
  • press to turn left and to turn right.

Build the project

You will need Maven to build the project using the preconfigured pom.xml file.

To clean the project from previous builds, including target temporary folder, first run mvn clean.

Then compile, package and assemble the project by running mvn compile package assembly:single.

This will generate .zip and .tag.gz archives in target temporary folder.

Authors

Details

Since the project's goal was more to work around the game's and machine learning logic than its aesthetics, it uses the Slick2D library for rendering purposes, which requires itself a few other libraries such as LWJGL or JInput (hence the .dlls at the project's root).

The cars' "physics" as well as the neural network and the netcode, on which we focused more, are totally hand-made.

About

Custom Java neural network applied to a Micromachine-like 2D multiplayer car racing game.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages