GET-TUDA-CHOPPA / SpelunkBots

An API that allows for AI bots to be written in the original 2009 version of Spelunky.
33 stars 13 forks source link

Better way to handle changing bots and handling testing? #8

Open donaldm opened 9 years ago

donaldm commented 9 years ago

Hello,

I feel that the current approach to creating a bot of putting the Bot code in the Bot solution is ok, but maybe there are some different design strategies that would allow for us to pull in the code being developed and still be able to maintain more of our own solution.

Would it be possible to create a Visual Studio solution with multiple projects and have a "Base" project for the core API for the DLL and then have different projects for the example bots? My thinking is that each Bot could be a different DLL instead of having to use the integer bot number.

Perhaps an ini config file or similar could be created to specify what bot DLL to load? This would make changing out bots easier.

Also would it be possible to include a built version of the spelunkbots.exe that used such a config file? This would prevent developers from having to load Game Maker at all in order to work on their bots. Also could we get a version somehow that has a much reduced startup time? There is an intro that seems to take a while (I know you can skip it by pressing enter).. but it would be nice to have a version that could open straight into a level. Also if the solution could be modified to not pause when focus is lost, this would help machine learning efforts.

While I am at this are the following API functions possible to add:

  1. Determine if game is won/lost
  2. Restart current level
  3. Get number of lives/score?

I apologize if these things are already available, but I feel these additions would help move towards something that could be used with machine learning techniques.

Thank you.

Poliziano commented 9 years ago

Hi donaldm,

I expect that their will be no more major changes to the API between now and the competition close. What you suggest is certainly worth considering and I will bring this up during our next meeting, but any changes like this are unlikely to be implemented until after the competition is over.

As for the additional API functions, I'm sure their implementation can be arranged.

Kind regards.

donaldm commented 9 years ago

Is there any status on this? In my mind the lack of metrics and the lack of ability to run many test iterations means that it is hard to implement modern machine learning approaches to this competition. I am not sure if I will bother to enter this competition if it is impractical to add machine learning to the bots. Hand coding the rules does not seem to be really pushing the boundaries of AI.

Kytie commented 9 years ago

Hello Donaldm,

Work is currently being done to provide metrics for how bots are doing based on the test type and ranking the user has chosen. The ability to provide a set of test levels to repeat as well as get the main Spelunky game to repeat is also being worked on.

We hope to have these additions added to the GET-TUDA-CHOPPA repo by mid August. Based on work I did using Neural Networks and Genetic Algorithms, the additions above should allow for machine learning methods to be implemented.

Hope this helps.