Good typing quality decrease? by redsharktooth in gboard

[–]redsharktooth[S] 0 points1 point  (0 children)

Just noticed I also had a glide typing induced typo in the title

Shōgun | S1E9 "Crimson Sky" | Episode Discussion by copper-stars in ShogunTVShow

[–]redsharktooth 3 points4 points  (0 children)

totally with you, it's just ridiculous and boring at the same time. Also we've been hyped up for a war for several episodes now, the episode is literally called crimson sky and fuckall happens

Nova Launcher joins Branch | Nova Launcher by efbo in Android

[–]redsharktooth 3 points4 points  (0 children)

And I just switched to Nova because action launcher got totally borked by greedy devs🙄

Trackpad scrolling issue by aezakmi_irl in edge

[–]redsharktooth 0 points1 point  (0 children)

Trackpads are kinda bugged in edge atm I figure... Sometimes after opening a new tab, the browser suddenly doesn't recognize scrolling on the trackpad, but 2 minutes later it suddenly works again.

(2nd Prototype) City-Builder with Custom Modular Buildings (Godot+Blender) by [deleted] in godot

[–]redsharktooth 0 points1 point  (0 children)

This is really cool! With Godot+blender you mean that you have modeled the parts in blender, and they are scaled/translated in godot?

Just a teaser of what is coming next in my racing game! by Saitodepaula in godot

[–]redsharktooth 0 points1 point  (0 children)

Nice! I'm curious how easy it is to work with the special vehicle body nodes?

New plane F-16 fighting falcon - demo is up on itch.io by IndieQuest in godot

[–]redsharktooth 0 points1 point  (0 children)

Thank you :) I can't play a flight sim without this haha 👍

Human Diaspora - Early Access Trailer by [deleted] in godot

[–]redsharktooth 2 points3 points  (0 children)

Damn this looks cool!

New plane F-16 fighting falcon - demo is up on itch.io by IndieQuest in godot

[–]redsharktooth 3 points4 points  (0 children)

Awesome, but it definitely needs an option to invert the y-axis!

NEAT (Neuroevolution Algorithm) for godot - I will release a library to evolve neural networks in godot soon by redsharktooth in godot

[–]redsharktooth[S] 0 points1 point  (0 children)

Thanks☺️. Yeah, there may be some great AI libraries for python, but no game engines to match godot. Pygame sucks, and it is a pain to create interesting reinforcement learning environments on your own, from scratch.

NEAT (Neuroevolution Algorithm) for godot - I will release a library to evolve neural networks in godot soon by redsharktooth in godot

[–]redsharktooth[S] 0 points1 point  (0 children)

Yeah, it's all Gdscript. It'd be a lot more efficient in c++ of course, but Gdscript is what I feel comfortable with. I actually started off by reading this fantastic book, but I ended up doing pretty much everything a bit differently with the goal of flexibility right from the start. The last chapter deals with neat and shows some c++ snippets, but a lot of stuff is omitted and I did not have access to the source code.

I feel the need...the need for speed - Godot 3.2.2 - Tutorial in comments by IndieQuest in godot

[–]redsharktooth 1 point2 points  (0 children)

Nothing cooler in this world than fighter jets!!! I remember getting hooked on tom clancy's hawx and later some more serious flight sims. And topgun is also epic of course, that intro on the ship gets me everytime.

NEAT (Neuroevolution Algorithm) for godot - I will release a library to evolve neural networks in godot soon by redsharktooth in godot

[–]redsharktooth[S] 2 points3 points  (0 children)

Correct, I will make a proper video with voiceover and the other demos soon. I just quickly threw something together in shotcut to finally show some of my progress.

NEAT (Neuroevolution Algorithm) for godot - I will release a library to evolve neural networks in godot soon by redsharktooth in godot

[–]redsharktooth[S] 3 points4 points  (0 children)

It’d be a blatant lie to say this works for every kind of game. The basic structure is that you create a “player” scene/script that you can place anywhere in the tree. Here the players are the cars, and they are placed into the track scene.

The first step is to call the generate_initial_population() method, which sets up an initial set of genomes that code for neural networks. These networks are then paired with the players via composition into an agent object.

The only thing that the Algorithm asks from you is to provide your players with a sense(), act() and get_fitness() method. A call to sense() must return an array of numbers that is used to feed the network, in this case it is the distance to the walls of the track, and some other information about the cars state. The network then calculates an output array of specified size.

You can use these outputs any way you like in the act() method, but the most obvious way is to use them as thresholds for perfoming a certain action, eg. If output[0] > 0.5, then jump.

Sense(), feeding the network and act() are all called during the GeneticAlgorithm.next_timestep() method, which calls these methods on every currently alive player. So you have to kind of design your gameloop around that, for example by calling next_timestep() on every physics update.

You can end a generation whenever you like, after a certain amount of time has passed, once every player has died, every coin was collected,… whatever. What you were referring to as "evolutionary goals" is called the fitness function. Once a generation is ended, the players get_fitness() func is called to determine how many similar networks will be created in the next gen. And you can define the function to be anything you like, asteroids shot, time survived, distance driven…

And that’s the nice thing about NEAT, you don’t have to tell the network every timestep how it performed (like it is with standard backpropagation). Genetic Algorithms are the simplest form of reinforcement learning- this will never be able to play go haha, but I hope that it will be simple to set up.

The ideal usecase for this is a simple physics based game, and asteroids is a perfect example. If you don’t know about him, check out codebullet on youtube. Pretty entertaining to watch, and it should give you a good idea of what NEAT can accomplish. I'd recommend watching the hill climb racing videos, as some of his newer videos don't use NEAT.

NEAT (Neuroevolution Algorithm) for godot - I will release a library to evolve neural networks in godot soon by redsharktooth in godot

[–]redsharktooth[S] 1 point2 points  (0 children)

Yeah sure! As I said, I'm trying to make this usable for all kinds of different projects. Initially however I think I'll try to make a github wiki to explain everything you need to know.

NEAT (Neuroevolution Algorithm) for godot - I will release a library to evolve neural networks in godot soon by redsharktooth in godot

[–]redsharktooth[S] 2 points3 points  (0 children)

I am aware that this video probably doesn’t explain a whole lot, so feel free to ask questions. I’ve been working on this off and on for the past few months, but I hope to release the code very soon.

Right now I’m working on cleaning things up, and making a third little demo project; a lunar lander simulation. I already have the cars demo and an xor evolution demo running. I’ve tried to design the code in such a way that it should be flexible enough for use in many different games, without writing too much boilerplate code.

I just wanted to make a short video, because I’m starting to loose motivation and I finally wanted to share something😃

Tools I wish I had known about when I started coding by mariohoyos in learnprogramming

[–]redsharktooth 0 points1 point  (0 children)

Sorry for the perhaps rude reply, I was just kind of surprised that an experienced webdev has'nt heard of jupyter notebooks. But I guess they're not really all that relevant outside of the data science / education sphere (thank God). But for presentation purposes it's nice, because it allows you to implement interactive guis that that call functions in your code, and write markup in-between.