Question: I'm pretty new to the world of neural networks, so I'm asking this question, I'll explain in the process all the words used in the title so, if there's something unclear or wrong, I'll edit the question to solve.

I was watching this video <https://youtu.be/WSW-5m8lRMs?t=220> and the author stated that he is using an algorithm called Neat, I looked up on Wikipedia and found out what it's based on, but I couldn't find out how to code it, I'm assuming it's because it's not easy at all.

I've also looked online for how to create one and only found a tutorial on how to use it in python since it's a library, and that cut off all my hopes to code something like that all by myself.

The AI I want to code is for a game on mobile, so I need to use [Dart](https://www.dartlang.org/), and is to guide NPCs on a map to avoid enemies and survive by let's say seeking food.
As far as I was able to understand, the neat algorithm takes:

1. what the player can see
2. the action it can perform
3. a performance indicator.

And then it'll learn to make decisions based on the variables, for example, direct to a food source when the player is hungry or it'll die. So, the ai will be able to see all the food source locations, the other ais locations, and other things.

For the actions it can perform, he will be able to move in a direction defined as vectors of a maximum length, so for example (3, 7) defined in meters. The performance indicator will be how long the AI was able to survive.

So, the model fits the neat way of working quite well. But I cannot use NEAT or any other libraries, so I need to write that code by myself using maths.

Is this possible? And if it is too hard for a beginner, are there any source to learn from or other examples to look up to?

Answer: 
This seems like a fun project. In games though, there's less use of AI approaches than explicitly coded behavior trees or scripted behavior, if only because AIs are less tweakable in terms of matching player skills.

It's not impossible to do, so try it out. After that, try out the reinforcement learning algorithms.
NEAT was my first approach to the world of Neural Networks.

I was like you, not understanding what was going on or what to do. I coded my first NEAT code in Javascript. A couple of months ago I wrote it in Kotlin and finally I decided to move to Python.

As the paper is not very specific in some important details, each library has the author's interpretation of NEAT. I am writing currently my own algorithm based on it, (like this guy also did): <https://towardsdatascience.com/neuro-evolution-on-steroids-82bd14ddc2f6>

The most important part is that you understand how the math works. My first NEAT algorithm on javascript took me around one month, between literature, understanding and finding answers for not very detailed points of the text.

My second implementation took me around 2 weeks, and I moved everything to Python in around 3 days.

So, I recommend you to read the paper and go in depth about how neural networks work. The type of nets that pure NEAT generates have arbitrary topology, which you can't activate in one timestep, but you need multiple activations to take them to the end.

Check also the NEAT users page: <https://www.cs.ucf.edu/~kstanley/neat.html>
It has lots of answers of unanswered questions of the paper.

And I totally recommend you to do it. As I did my whole implementation from scratch (including neural networks) I can be pretty much flexible about what I want to do.