SoC Ideas AI Global strategy

From The Battle for Wesnoth Wiki
Revision as of 10:45, 1 March 2014 by Crab (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


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



This is a Summer of Code 2014 Idea



Description

AI: Improve AI by implementing global attack/retreat decision

Page for the idea: SoC_Ideas_AI_Global_strategy

The Wesnoth AI works by making local decisions about moves and attacks. Teach it to determine if it's worth to fight offensively or defensively in a given situation.


There are no submitted student proposals for this idea

Additional Information

Wesnoth has time of day cycles (...-day-day-dusk-night-night-morning-... ), with certain times of day heavily favoring units depending on their alignment. Moreover, new units are constantly trained - so, sometimes the best decision would be to defend and wait or fall back, other times the best decision would be to attack (e.g. with the aim of holding a strategic village until morning, and counter-attacking during morning and day, then falling back with dusk). The AI should learn to adapt its strategy depending on the balance of forces and the current time of day.

Good first steps

Read http://wiki.wesnoth.org/Customizing_AI_in_Wesnoth_1.8#how_AI_works.2C_a_short_developer-oriented_overview. Read http://wiki.wesnoth.org/Customizing_AI_in_Wesnoth_1.8#Customizing_AI_turn_sequence Take a look at some of the 'candidate actions', for example here - https://github.com/wesnoth/wesnoth/blob/master/src/ai/testing/ca.cpp The goal is to understand the AI turn structure, without going far into details of how each individual action works. Ask questions, if you'll have any. it's better to ask on IRC since it'll benefit other students asking the same. During the course of the project, you'll most likely have to add new candidate actions ("IF this DO that WITH PRIORITY such") and modify existing ones.

Whom to ask about this

Crab_ on irc.

This page was last edited on 1 March 2014, at 10:45.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.