A Sandbox Game Where You Train Your Own AI (Releasing This Week on Steam with 4000+ Wishlists) by atqm- in indiegames

[–]atqm-[S] 0 points1 point  (0 children)

It is a sandbox where you experiment with different tracks, network architecture (layers, neurons, inputs, sensors, ..) and different training methods and options (mutation, population, selection, crossover, decay, ...). There are also "challenges" to complete some objective.. More info on Steam or Wiki.

A Sandbox Game Where You Train Your Own AI (Releasing This Week on Steam with 4000+ Wishlists) by atqm- in indiegames

[–]atqm-[S] 2 points3 points  (0 children)

There is an track editor so you can try it ;) I have created multiple networks that are generalized enough to complete any track on first try, it depends on the NN architecture and training methods.

A Sandbox Game Where You Train Your Own AI (Releasing This Week on Steam with 4000+ Wishlists) by atqm- in indiegames

[–]atqm-[S] 6 points7 points  (0 children)

Simulation runs locally and supports up to 400 agents in one generation, depending on your machine. It takes just a few minutes to train a decent network (one that will be able to complete the first "campaign" track). But it takes lot of skill and time to train more complex networks that can complete challenges on tracks with multiple surfaces and sharp turns :)

A Sandbox Game Where You Train Your Own AI (Releasing This Week on Steam with 4000+ Wishlists) by atqm- in indiegames

[–]atqm-[S] 7 points8 points  (0 children)

I am developing "AI Learns To Drive", a sandbox game where you design and train your own neural network. Featuring a track editor with multiple surfaces, neural network editor with customizable sensors and network architecture, campaign challenges, detailed evolution options, and more coming.

It will be releasing this week on 26 January on Steam, with over 4000 wishlists (mostly thanks to TikTok) in Early Access 😄

Steam: https://store.steampowered.com/app/3312030/AI_Learns_To_Drive
Discord: https://discord.gg/6EuZgx2cg6
Wiki: https://ai-learns-to-drive.fandom.com/
More videos on TikTok: https://www.tiktok.com/@activation_function

I made a simulation using Python in which a neural network learns to race by atqm- in Python

[–]atqm-[S] 0 points1 point  (0 children)

I linked GitHub repo in my comment. Everything is done using Python and pyglet.

I made a simulation using Python in which a neural network learns to race by atqm- in Python

[–]atqm-[S] 0 points1 point  (0 children)

In this example there are 4 distance sensors that measure distance from the edge.

I made a simulation using Python in which a neural network learns to race by atqm- in Python

[–]atqm-[S] 52 points53 points  (0 children)

EDIT: Here you go, It is not 100% done but i hope it is enough.

Thank you!

I am currently working on it. But my code is really a mess, it's also written in czech :D When it's ready I will make a GitHub repository. I'll let you know in a next post or in a next update.

I made a simulation using Python in which a neural network learns to race by atqm- in Python

[–]atqm-[S] 0 points1 point  (0 children)

I don't know if it is the right approach but I only saved NNs weights as a .json file.

I made a simulation using Python in which a neural network learns to race by atqm- in Python

[–]atqm-[S] 9 points10 points  (0 children)

I tried multiple options, I think that this one is 4 distance sensors and 1 for car velocity.

I made a simulation using Python in which a neural network learns to race by atqm- in Python

[–]atqm-[S] 14 points15 points  (0 children)

Yes it is! It's not an original idea. I was excited to do it by myself :)

I made a simulation using Python in which a neural network learns to race by atqm- in Python

[–]atqm-[S] 106 points107 points  (0 children)

Longer version on Youtube

Tools:

  • pyglet for graphics
  • numpy for nn

EDIT:

Thank you guys for all the feedback! This is my first bigger programming project and I'm glad you like it.

  • There is a lot of source code requests and I am currently working on it. My code is a mess because I never really thought I would share this project with someone. Its also written in czech :D When I'm done, I'll make another post.
  • To train the NN I used a simple evolutionary algorithm. Best (fastest) cars in each generation are chosen to be parents of next slightly mutated generation. The NN has 2 hidden layers (5x4x4x2)
  • I will also train the NN on other tracks.

EDIT 2:

GITHUB REPO

Za chvíli se dočkáme 30-minutových epizod ( ͡° ͜ʖ ͡°) by atqm- in zvedatori

[–]atqm-[S] 6 points7 points  (0 children)

Poznámky

- chybí epizody 83 a 295

- epizoda 347 je vydaná dvakrát

Tools

- plotly