SoC Ideas Lua AI

From The Battle for Wesnoth Wiki
Revision as of 21:01, 10 March 2010 by Crab (talk | contribs)


This page is related to Summer of Code 2010
See the list of Summer of Code 2010 Ideas



This is a Summer of Code 2010 Idea


Description

Extend Wesnoth Lua AI Support

Lua AI support was recently added to wesnoth. Expose c++ AI support functions that Wesnoth has, to Lua.

Additional information

It is very important for Wesnoth to have a way of scripting AI without modifying the c++ source code. Some time ago, it was possible to use Python to code AIs, but it was removed due to security issues. Now, we're adding Lua as a new way to script AI. The core capabilities were already added, but we need to integrate Lua AI scripts better.

Wesnoth AI consists of different components. each component is a c++ object, which provides an interface to allow the ai to delegate part of the turn sequence to that c++ object. but, that c++ object can be a proxy for code written in different language, such as formula_ai or lua. So, we have a lua engine - a c++ class which is responsible with creating c++ proxies for lua code snippets. this lua engine must provide access to all the information that the c++ AI knows - caches like 'attacks' and 'possible moves', values of aspects such as 'aggression' and 'caution', etc. So, there's a large number of AI support functions which we need to expose to lua code.

Definition of Done

all information that is possible to use in c++ AI, is possible to use in Lua AI with relatively same level of complexity for AI author.

Whom to ask about this

Ask Crab_ on #wesnoth-dev