The basic idea of this demo implementation was to get an impression of the following topics, most of them are actually used in the current implementation.
- JavaFX
- Genetic Algorithms
- Crossover Algorithm
- Neural Networks
- Noise Generation
- Procedural World Generation
- Vectors and Movement in 2D
- Collision Detection
- Barycentric Technique
- Separating Axis Theorem
- Color Perception
A rough listing of new features I want to implement in the future.
- implementing a sensor for creatures in view
- display the neural network in the UI
- toggle each sensor (group) in configuration section
During research and implementation of the various topics I found the following resources quite useful.
-
JavaFX
-
Genetic Algorithms
-
Neural Networks
-
Noise Generation
-
Procedural World Generation
-
Vectors and Movement in 2D
-
Collision Detection
- https://www.toptal.com/game/video-game-physics-part-ii-collision-detection-for-solid-objects
- https://www.gamedev.net/forums/topic/295943-is-this-a-better-point-in-triangle-test-2d/
- https://stackoverflow.com/questions/2049582/how-to-determine-if-a-point-is-in-a-2d-triangle
- http://www.java-gaming.org/index.php?topic=15566.0
- https://gamedevelopment.tutsplus.com/tutorials/quick-tip-use-quadtrees-to-detect-likely-collisions-in-2d-space--gamedev-374
- http://www.phailed.me/2011/02/polygonal-collision-detection/
-
Fighting and Damage
-
Color Perception