How to gather match infos in MUGEN 1.1
#1
Hello to everyone! I'm new on this forum and this is my first post, so thank you in advance for the replies! :)

I'm trying to create a MUGEN AI (currently for a single character) on a unconventional way: by using a Genetic Algorithm called NEAT, which works by creating a custom number of "players" each generation, each of them having random "rules" to follow to make a decision, and by taking the best players and using them as starting point for the next generation; this way each generation is stronger and stronger until it eventually reach godlike performance. 
To do this I can't use the classic .cmd file to build the AI; I need instead to feed the algorithm with some information that the Neural Network can use to make choices (for example the self and enemy respective positions, status, HPs, power bars or if are there some projectile etc) and teach it the player inputs (punches, kicks and moving commands). 
The problem with this approach is that (as far as I know) there is no way to get those or more simple real time informations from the built-in console and debug mode to use, except some infos that are displayed (and that can't be sent to a log file) in the debug mode.


I'm planning to program it with Python but if you know some way that can only work in C/C++/C# feel free to suggest me it (NEAT should be avaliable for the most used programming languages).

If there are some unclear concepts, let me know so I can better help you understand what I would like to do :)
As I said at the beginning, thank you in advance :)
Reply
#2
(29-09-2020, 04:26 PM)Shadowless422 Wrote: for example the self and enemy respective positions, status, HPs, power bars or if are there some projectile etc

All of these should be somewhat easily achieveable with reading the memory of mugen at any given time. An example of this is Arxos' MugenWatcher (shortened mw) which you can find on this very forum with some proper searching. MugenWatcher only reads the win/loss of the characters in the current match, however, so you would need to find the pointers for the other things yourself, from what I know there is currently not a public list of pointers, so you would have to tinker around with that yourself.
Reply