Difference between revisions of "NotSoEasyCoding"

From The Battle for Wesnoth Wiki
m (Data Structures)
(Ai improvements to default AI)
Line 29: Line 29:
 
As proposed here: [http://www.wesnoth.org/forum/viewtopic.php?f=15&t=15880]
 
As proposed here: [http://www.wesnoth.org/forum/viewtopic.php?f=15&t=15880]
  
 +
== Improvements to AI ==
 +
=== Village grabbing ===
 +
 +
Improve AI village grabbing algorithm to assign villages that are farther than one turn from current unit location.
 +
Idea how to do would be value villages so that it can filter out villages that belongs to enemies/allies sides.  Those villages are stored in memory and used in 2nd pass that determines how AI should dispatch units to get villages if it should at all in this turn. This should be close to optimal solution with currently available units but performance limits should be taken into account.
 +
Good solution would be that village grabbing value could be calculated with attack ratings and if some village has high value it would make unit go for that village instead
 +
 +
This should help AI in begin of scenario. Currently AI might not grab all of villages that belong to its area which results quite large incoming loses.
 +
In later game enemy might have large number of units in one part of map so village grabbing should be avoided in that are. Single unit would be easy pray for enemy so moving there would result just to loses.
 +
 +
=== leadership ===
 +
 +
Add new AI phase to handle leadership units. AI should be able to use leadership in multiple locations before using that unit in attack.
 +
 
== Data Structures ==
 
== Data Structures ==
 
=== Config Writer ===
 
=== Config Writer ===

Revision as of 22:05, 17 September 2008

Foreword

This page shows projects which are considered a good idea by the developers but which have nobody working on them so far. If you think you've got the required skill for a task go on, implement it and you've got a high chance that it'll be accepted. The remaining barrier will only be that it's done well. :-)

If you are such a person, you should feel free to edit this page.

If you're not, you should post a feature request and discuss your idea on the forum or IRC. A coder with better knowledge of the code might give you the green light to add your feature here.

Anybody should feel free to add "clues" to any tasks, that is entry points, traps to avoid, person to contact to discuss and so on.

If you plan to work on a feature, write your name at the bottom of the feature, with the date. Note that if you are too long at working on a feature I'll "free" it back (that is if you're not working on it. If you have problems implementing it, just tell us....)


Game Engine

Showing "Advantage" In-Game/End-Game

As described here: [1]

Multiplayer and RNG Cheating

As described here: [2]

A more generalised teleporting ability

see [3]

A change to allied healing

As proposed here: [4]

Improvements to AI

Village grabbing

Improve AI village grabbing algorithm to assign villages that are farther than one turn from current unit location. Idea how to do would be value villages so that it can filter out villages that belongs to enemies/allies sides. Those villages are stored in memory and used in 2nd pass that determines how AI should dispatch units to get villages if it should at all in this turn. This should be close to optimal solution with currently available units but performance limits should be taken into account. Good solution would be that village grabbing value could be calculated with attack ratings and if some village has high value it would make unit go for that village instead

This should help AI in begin of scenario. Currently AI might not grab all of villages that belong to its area which results quite large incoming loses. In later game enemy might have large number of units in one part of map so village grabbing should be avoided in that are. Single unit would be easy pray for enemy so moving there would result just to loses.

leadership

Add new AI phase to handle leadership units. AI should be able to use leadership in multiple locations before using that unit in attack.

Data Structures

Config Writer

The speed of saving Wesnoth games is dominated by the time to marshall all the config structures. This involves deep copying them many times as each subsystem returns its config bundle; far better would be to have a "config_writer" class which is handed to each subsystem which iterates through its structures and does the writing (to file or network) directly to the config_writer instance.

Stop by #wesnoth-dev on freenode irc if you want to help with this, or post in the Coder's Corner.

Config memory optimisation

Right now, most of the memory used by wesnoth when using low_memory configuration flag is used by the config object trees. It would be possible to drop unused "branches" of that trees by using boost smart pointers in the config structure

come and discuss that change on #wesnoth-dev. Sirp is the one that knows the most about that...

Improvements to Unit Map

As described here: [5] (cjhopman has submitted a patch on that already)

See Also

Frequently Proposed Good Ideas

Check the B.W.H. list in the Ideas Forum. Be aware that some entries there are old and have already been implemented, so you will need to investigate that before beginning work.