I have a bit of a background in genetic algorithm devlopement, and I couldnt help but think of how it might be used in game. I have tried this kind of method in other games with some success.
A ship evolving program could run thousands of simulated battles with randomly generated ship designs and breed the best designs to create better ones. A player could submit their fleet to challange this program and it could evolve a suitable counter fleet that performs well against the player fleet. Single player games could have a "Nemesis" fleet of evolved ships that counter the player. Obviously this would require a bit of a backend, but I have always been fascinated by the results of these genetic algorithms. YouTube evolving wind turbines for an example of genetic algorithms in action.
I would need an explication of the command line arguments I can make for the game so my program can properly call it. I would need an outline of the ship file structure and, if possible, a way to check if the design is valid before I try to use the design. Ideally a command line argument would allow me to battle a group of designs in a multi player match, write the results to a file, and do that without grapics, eg headless mode. With all of this, assuming I can make a stable random ship generator, it would be possible to evolve ship designs. There is also a possibility that AI behavior could also be included in this evolving AI. A group of AI could do a multi player game and the results could be written to a file. The genetic code of the AI would include ship designs and behavior. The benefit of running a multi player match is it will learn to evolve many ships of varying costs.
Now, this next bit is a bit far reaching, but it is fun to imagine. If player data from an AI evolving program were collected into a database, then the evolving AI could develop behaviors and designs that perform best across all players, a super evolving AI if you will.
Anyways, I have an inretest in this if you are a dev and can guide me on some of the notes above it would make trying it out infinitely easier. Haha.
Cabin Boy
I have a bit of a background in genetic algorithm devlopement, and I couldnt help but think of how it might be used in game. I have tried this kind of method in other games with some success.
A ship evolving program could run thousands of simulated battles with randomly generated ship designs and breed the best designs to create better ones. A player could submit their fleet to challange this program and it could evolve a suitable counter fleet that performs well against the player fleet. Single player games could have a "Nemesis" fleet of evolved ships that counter the player. Obviously this would require a bit of a backend, but I have always been fascinated by the results of these genetic algorithms. YouTube evolving wind turbines for an example of genetic algorithms in action.
I would need an explication of the command line arguments I can make for the game so my program can properly call it. I would need an outline of the ship file structure and, if possible, a way to check if the design is valid before I try to use the design. Ideally a command line argument would allow me to battle a group of designs in a multi player match, write the results to a file, and do that without grapics, eg headless mode. With all of this, assuming I can make a stable random ship generator, it would be possible to evolve ship designs. There is also a possibility that AI behavior could also be included in this evolving AI. A group of AI could do a multi player game and the results could be written to a file. The genetic code of the AI would include ship designs and behavior. The benefit of running a multi player match is it will learn to evolve many ships of varying costs.
Now, this next bit is a bit far reaching, but it is fun to imagine. If player data from an AI evolving program were collected into a database, then the evolving AI could develop behaviors and designs that perform best across all players, a super evolving AI if you will.
Anyways, I have an inretest in this if you are a dev and can guide me on some of the notes above it would make trying it out infinitely easier. Haha.