Difference between revisions of "SoC Ideas Lua AI"
(→Whom to ask about this: added a list of possible pre-gsoc tasks) |
m (→Possible pre-gsoc tasks) |
||
Line 22: | Line 22: | ||
We want to make it easy to write Lua AI. the best way to ensure that is to try to write some AI components, and see what's easy, what's hard, and what's missing. So, here are a few things that can be done to get you started and to allow to code some useful lua/c++ code which can be included in wesnoth lua ai standard library. | We want to make it easy to write Lua AI. the best way to ensure that is to try to write some AI components, and see what's easy, what's hard, and what's missing. So, here are a few things that can be done to get you started and to allow to code some useful lua/c++ code which can be included in wesnoth lua ai standard library. | ||
− | * Write the AI which can complete Scenario 1 of the | + | * Write the AI which can complete Scenario 1 of the '''Heir to the Throne''' campaign on easy difficulty. |
− | * Write the AI which can complete Scenario 1 of | + | * Write the AI which can complete Scenario 1 of '''Legend of Wesmere''' campaign on easy difficulty. |
− | * Write the AI which can complete Scenario 1 of | + | * Write the AI which can complete Scenario 1 of '''The Hammer of Thursagan''' campaign on easy difficulty. |
* Write a recruitment procedure for the AI which uses with multiple leaders intelligently | * Write a recruitment procedure for the AI which uses with multiple leaders intelligently | ||
* Write a system to attach 'behavior instructions written in lua' to specific units | * Write a system to attach 'behavior instructions written in lua' to specific units |
Revision as of 19:40, 18 March 2010
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 |
Contents
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.
Useful links
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
Possible pre-gsoc tasks
We want to make it easy to write Lua AI. the best way to ensure that is to try to write some AI components, and see what's easy, what's hard, and what's missing. So, here are a few things that can be done to get you started and to allow to code some useful lua/c++ code which can be included in wesnoth lua ai standard library.
- Write the AI which can complete Scenario 1 of the Heir to the Throne campaign on easy difficulty.
- Write the AI which can complete Scenario 1 of Legend of Wesmere campaign on easy difficulty.
- Write the AI which can complete Scenario 1 of The Hammer of Thursagan campaign on easy difficulty.
- Write a recruitment procedure for the AI which uses with multiple leaders intelligently
- Write a system to attach 'behavior instructions written in lua' to specific units
- Write a patrol formula in Lua
- Write a basic attack routine in Lua, make it possible to inject the 'rate attack combination' function into it.
- Re-implement useful formula ai functions in lua.