Thanks, I will check that out a bit more in detail and get back to you then!
Regards On 18 September 2012 01:49, Marko Lindqvist <cazf...@gmail.com> wrote: > On 16 September 2012 15:52, Matthias F. Brandstetter <m...@mabra.me> wrote: >> Hi Freeciv Team! >> >> I am a PhD candidate at De Montfort University in UK, working on >> Computational Intelligence for Computer Games. For my current studies >> I am thinking of using Freeciv as test bed for my research on AI in >> games. >> >> On your web site I have seen that you are currently re-writing the AI >> code for v2.4. > > Actually, we've for most part ceased feature development for 2.4 last > November when we branched stable branch to make 2.4 releases from once > it gets stable enough. That AI reorganization was finished before > that, though, and in since then there has been only a litlle bit of > development on this field on trnk (from which next branch will be 2.5) > > That was not so much rewriting the AI code itself than reorganizing > how it gets called. AI code used to be mangled to all server code, now > things are more modular, AI code being separate from the other server > code. It was done in a way that completely new AI implementations can > be introduced as (loadable) modules - distinct players can use > distinct AI implementations. Server calls AI callback functions at > defined situations. Those callback functions for AI module to > implement are listed in common/ai.h. In addition to those callback > functions module needs to define just two functions, one to initialize > it and second to return its capability string for checking > compatibility between the server code and the module while loading the > module. > >> Is there any document describing the "big picture" for >> custom AI's? I have skipped through the latest source code a bit, seen >> the AI stub and ai.* files in the "common" dir, but I am not sure >> about each of these functions in detail,m when they are called, etc. > > I'm afraid the documentation is still quite much lacking - so far > I've only added comments to common/ai.h about when each callback gets > called. > > As AI runs just as part of server binary, it has access to all the > data, freedom to modify it any way it wants, and to call any server > functions. This means that AI module can cheat as much as author dares > to make it to cheat. It also gives AI author responsibility not to > mess game state. > >> Also, I am new to Freeciv dev in general, have not worked on the code >> so far, only played the game in the past. What would be the best way >> of debugging my own development? When writing a new AI for Freeciv, I >> of course want to see how it works bit for bit, so a debugging feature >> would be very handy! > > There's no single catch-it-all feature for debugging. Depending on > what exactly I've wanted to know, I've combined several techniques. In > most cases you want to run autogames (games with no human players) > with predefined random seeds for reproducibility. You can run them in > debugger, collect logs (get familiar with logging macros in > utility/log.h) and compare results between original and modified AI, > creating starting situations in editor. > > That's the most general level view, feel free to ask more detailed > questions once you get yourself familarized with the code. > > > - ML -- Matthias F. Brandstetter m...@mabra.me _______________________________________________ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev