SoC2012 Tyrannodogg Make lua AI developement easier
From The Battle for Wesnoth Wiki
This page is related to Summer of Code 2012 |
See the list of Summer of Code 2012 Ideas |
This is a Summer of Code 2012 student page |
Contents
Description
Tyrannodogg - Make lua AI development and usage easier
At the moment the parts, which make a lua AI, are scattered around several WML Entities, resulting in a load of boilerplate code.
My approach is to shift more parts of the functionality into lua code, in a way that simple scripts can handle all steps necessary.
This includes wrapping the current default AI for lua usage.
I will also provide scripts for logging and further debugging.
IRC
Tyrannodogg,tyrannodogg
SoC Application
Submitted to google
gna.org
tyrannodogg
In order to get familiar with the codebase i am working on the following patch: https://gna.org/patch/?3240
Further explanation
In the end I'd like to have a luaAI look like the following example and have at least the described capabilities or similar ones
[ai] engine = "lua" code = << -- make all print calls chat messages instead require("wesnoth_debug.chatting_ai") --could also be default_ai.no_actions ai = require("default_ai.all_actions") --add a new action ai.beserk = {} function ai.beserk.evaluation() return 50000 end ai.beserk.execution = require("my_clever_script") --delete a action ai.ca_villages=nil --modify an action local move_eval = ai.ca_move.evaluation function ai.ca_move.evaluation(...) --make move less important local result = move_eval(...) return result / 2 end --for a whole new ai approach even the main loop may be interchangeable ai:register_main_loop(require("default_ai.default_main_loop")) >> [/ai]
This page was last edited on 29 April 2012, at 19:35.