User:Shofixti

From The Battle for Wesnoth Wiki
Revision as of 02:12, 27 April 2013 by Shofixti (talk | contribs) (Shofixti's GSOC Proposal: Smarter and more human recruitment algorithm)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


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



This is a Summer of Code 2013 student page


Description

Shofixti - Smarter and more human recruitment algorithm

As I have come to understand it, the current RCA AI recruitment algorithm suffers from a few flaws and a general lack of complexity. Given the chance, i'd like to completely redo this algorithm to allow the AI to factor in more variables and generally behave more like a human opponent than it currently does.

Project Ideas

All of these are broad ideas for the goal of a new re-factored AI, not implementation strategies.

Purpose Driven Recruitment

In order to create the right tool for the right job, it's important the the AI be able to create units for a specific purpose. Scouts for capturing villages in early-game, Sea units for quickly accessing islands, Defensive specialists for when the pressure is on, and Support units when the need arises. The recruitment algorithm would need to assign each created unit a sort of purpose attribute, and perhaps one day down the road these purposes could be implemented by the AI in combat and movement phases.

Relevant Terrain Awareness

As far as I am aware currently the AI only factors in the typical terrain of the map as a whole. This can lead to problems like the AI deciding to produce mermen as foot soldiers in a ground war, only because lots of water happens to exist on the map. I believe that having the AI know, at least in a really general sense, the type of terrain the unit will need to eventually traverse will greatly aid the recruitment decision making process.

Multiple Leader Support

In order to facilitate multiple leaders, it may be necessary to rewrite the recruitment stage to be subdivided between leaders. I imagine that this would be done using a similar Candidate Action Value system, in order to determine which leader should produce when. This approach would allow leaders to work in concert and adapt to each-other, as well as deciding where is physically the better place to recruit at a given time.

Adaptability

It is of the utmost importance that a newly written AI be able to analyze the battle as a whole up to this point and adjust recruitment based on:

1: Heavy losses of a unit type (The AI must know when to fill in missing ranks, and when to take a different approach)

2: The type of unit being favored by the opponent(s)

3: Current need for support units

Limiting the AI

A good AI implementation wouldn't aim to simply improve the AI strategically but also to increase the sense that the player is fighting against a human opponent, not a predictable machine. I would suggest that, if it has not already been done, that this newly re-factored AI would be capable of the following:

1: In fog of war maps, the AI should only be able to decide what counter-units to produce based off the opposing units it has encountered. Otherwise the AI would appear to be omniscient.

2: As mentioned in the list of requirements, the AI should be capable of entering a gold conservation mode, so that it doesn't simply spend everything each chance it gets.

3: Take into account scenario definable unit limits.

IRC

Shofixti

Questionnaire

Please see the following page for the questionnaire: User:Shofixti/Questionnaire