<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Velory</id>
	<title>The Battle for Wesnoth Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Velory"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/Velory"/>
	<updated>2026-06-14T00:22:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29947</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29947"/>
		<updated>2009-04-06T22:11:13Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_size' attribute'':&lt;br /&gt;
This attribute will hold squad size which is determined with dynamical_partition_squads formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -squad number will independent and will be selected by function- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to squad_size-1.&lt;br /&gt;
&lt;br /&gt;
'' 'dynamically_partition_squads' formula'':&lt;br /&gt;
This formula will be called when starting every game.And will define squad number with looking enemy units and Ai units.This formula will choose which division will best for game with looking sum of units,starting locations etc. and decide how many unit will belong one squad.And this size will refer to squad_size.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows with using Wesnoth GUI ToolKit. That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.But i decide to use GUIToolkit after i talked with mordante.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.&lt;br /&gt;
|-&lt;br /&gt;
| -|| Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.Midterms started... i may not be doing much between 5-10 Apr.&lt;br /&gt;
|-&lt;br /&gt;
| -|| Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| -|| May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
|- || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
|- || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| -|| June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| -|| June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| -|| July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| -|| July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Wesnoth GUIToolkit,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| -|| August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| -|| Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29897</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29897"/>
		<updated>2009-04-04T20:37:15Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_size' attribute'':&lt;br /&gt;
This attribute will hold squad size which is determined with dynamical_partition_squads formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -squad number will independent and will be selected by function- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to squad_size-1.&lt;br /&gt;
&lt;br /&gt;
'' 'dynamically_partition_squads' formula'':&lt;br /&gt;
This formula will be called when starting every game.And will define squad number with looking enemy units and Ai units.This formula will choose which division will best for game with looking sum of units,starting locations etc. and decide how many unit will belong one squad.And this size will refer to squad_size.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows with using Wesnoth GUI ToolKit. That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.But i decide to use GUIToolkit after i talked with mordante.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.Midterms started... i may not be doing much between 5-10 Apr.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Wesnoth GUIToolkit,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29896</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29896"/>
		<updated>2009-04-04T20:36:27Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_size' attribute'':&lt;br /&gt;
This attribute will hold squad size which is determined with dynamical_partition_squads formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -squad number will independent and will be selected by function- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to squad_size-1.&lt;br /&gt;
&lt;br /&gt;
'' 'dynamically_partition_squads' formula'':&lt;br /&gt;
This formula will be called when starting every game.And will define squad number with looking enemy units and Ai units.This formula will choose which division will best for game with looking sum of units,starting locations etc. and decide how many unit will belong one squad.And this size will refer to squad_size.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows with using Wesnoth GUI ToolKit. That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.But i decide to use GUIToolkit after i talked with mordante.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.Midterms started... i may not be doing much between |5-10 Apr|.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Wesnoth GUIToolkit,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29895</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29895"/>
		<updated>2009-04-04T20:35:53Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_size' attribute'':&lt;br /&gt;
This attribute will hold squad size which is determined with dynamical_partition_squads formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -squad number will independent and will be selected by function- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to squad_size-1.&lt;br /&gt;
&lt;br /&gt;
'' 'dynamically_partition_squads' formula'':&lt;br /&gt;
This formula will be called when starting every game.And will define squad number with looking enemy units and Ai units.This formula will choose which division will best for game with looking sum of units,starting locations etc. and decide how many unit will belong one squad.And this size will refer to squad_size.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows with using Wesnoth GUI ToolKit. That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.But i decide to use GUIToolkit after i talked with mordante.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.Midterms started... i may not be doing much.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Wesnoth GUIToolkit,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29894</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29894"/>
		<updated>2009-04-04T20:28:52Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_size' attribute'':&lt;br /&gt;
This attribute will hold squad size which is determined with dynamical_partition_squads formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -squad number will independent and will be selected by function- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to squad_size-1.&lt;br /&gt;
&lt;br /&gt;
'' 'dynamically_partition_squads' formula'':&lt;br /&gt;
This formula will be called when starting every game.And will define squad number with looking enemy units and Ai units.This formula will choose which division will best for game with looking sum of units,starting locations etc. and decide how many unit will belong one squad.And this size will refer to squad_size.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows with using Wesnoth GUI ToolKit. That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.But i decide to use GUIToolkit after i talked with mordante.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Wesnoth GUIToolkit,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29893</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29893"/>
		<updated>2009-04-04T20:28:24Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_size' attribute'':&lt;br /&gt;
This attribute will hold squad size which is determined with dynamical_partition_squads formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -squad number will independent and will be selected by function- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to squad_size-1.&lt;br /&gt;
&lt;br /&gt;
'' 'dynamically_partition_squads' formula'':&lt;br /&gt;
This formula will be called when starting every game.And will define squad number with looking enemy units and Ai units.This formula will choose which division will best for game with looking sum of units,starting locations etc. and decide how many unit will belong one squad.And this size will refer to squad_size.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows with using Wesnoth GUI ToolKit. That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.But i decide to use GUIToolkit after i talked with mordante.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29892</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29892"/>
		<updated>2009-04-04T20:24:25Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_size' attribute'':&lt;br /&gt;
This attribute will hold squad size which is determined with dynamical_partition_squads formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -squad number will independent and will be selected by function- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to squad_size-1.&lt;br /&gt;
&lt;br /&gt;
'' 'dynamically_partition_squads' formula'':&lt;br /&gt;
This formula will be called when starting every game.And will define squad number with looking enemy units and Ai units.This formula will choose which division will best for game with looking sum of units,starting locations etc. and decide how many unit will belong one squad.And this size will refer to squad_size.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29891</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29891"/>
		<updated>2009-04-04T20:09:30Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -squad number will independent and will be selected by function- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'dynamical_partition_squads' formula'':&lt;br /&gt;
This formula will be called when starting every game.And will define squad number with looking enemy units and Ai units.This formula will choose which division will best for game with looking sum of units,starting locations etc. and decide how many unit will belong one squad.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29779</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29779"/>
		<updated>2009-04-03T14:24:41Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Project: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +3 on summer by the way).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29778</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29778"/>
		<updated>2009-04-03T14:21:47Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Experience: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get accepted to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29652</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29652"/>
		<updated>2009-04-02T16:16:30Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) '''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity'''&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29650</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29650"/>
		<updated>2009-04-02T16:12:47Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Project: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity''':&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how can i do..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29649</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29649"/>
		<updated>2009-04-02T16:12:28Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Project: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity''':&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
Ps:If anyone have any doubt about How do i manage my time between internship and this project please contact me in mirc etc. So i can make him sure about how do i..&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29648</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29648"/>
		<updated>2009-04-02T16:09:50Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Project: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity''':&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame,Boost Libraries&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29647</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29647"/>
		<updated>2009-04-02T16:09:01Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity''':&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for Formula AI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29646</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29646"/>
		<updated>2009-04-02T16:05:58Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula AI, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula AI, and create primitive library for Formula AI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1 or 2,3  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
''&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)''&lt;br /&gt;
its like choose function but we can choose order of item.E.g. if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move(e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Formula AI Functions for Less Time Complexity''':&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with QT). That window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned, in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for FAI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29643</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29643"/>
		<updated>2009-04-02T16:01:24Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula Ai, improve them and add new functions for simplifying,modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula Ai, and create primitive library for FAI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack types. Or we can improve candidate move semantic&amp;amp;syntax to ''decide: type: evaluation: attack:'' then what if ''decide'' says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( ''e.g.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range'').&lt;br /&gt;
&lt;br /&gt;
'''General Functions for Less Time Complexity''':&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' or maybe 'distance_list_between' in my patches, cause we can get rid of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU (also i can work with qt).This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for FAI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29642</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29642"/>
		<updated>2009-04-02T15:56:30Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula Ai, improve them and add new functions for simplifying modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula Ai, and create primitive library for FAI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range).&lt;br /&gt;
&lt;br /&gt;
'''General Functions for Less Time Complexity''':&lt;br /&gt;
&lt;br /&gt;
I want to create some general functions for decrease time complexity.This functions may be reachable from some filters and etc. But i saw that a lot of nested structure is increasing time complexity and Formula waiting too much for figure out.So i'm thinking about create some general functions like 'Encapsulate' in my patches, cause we can get away of waiting time with some handy functions in c++.&lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for FAI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29570</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29570"/>
		<updated>2009-04-01T16:11:02Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula Ai, improve them and add new functions for simplifying modularity and general use. Furthermore, I want to implement new types of evaluation for  choosing candidate moves. Also i want to incorporate a debugger tool into Formula Ai, and create primitive library for FAI. &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all units then we can check if the selected unit chose as squad_leader.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine the unit's squad number.Every unit will belong to one squad and they will each have a  number for controlling squads every turn in breaking squad formula. &lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for FAI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29550</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29550"/>
		<updated>2009-04-01T11:15:27Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use. On the other hand I want to implement new types of evaluation for help of choosing candidatemoves.Also i want to implement debugger tool to FormulaAi, and make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for FAI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions also other functions which is for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29549</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29549"/>
		<updated>2009-04-01T11:12:46Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Project: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use. On the other hand I want to implement new types of evaluation for help of choosing candidatemoves.Also i want to implement debugger tool to FormulaAi, and make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for FAI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions other functions that for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.Although my internship subject is Artifical Intelligence for Defense Systems. So this project might be similar (in many ways like designing ai algorithms etc.) and that intern might also give me some improvement ideas and optimizations. And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29502</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29502"/>
		<updated>2009-03-31T17:29:58Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use. On the other hand I want to implement new types of evaluation for help of choosing candidatemoves.Also i want to implement debugger tool to FormulaAi, and make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection And Calculate Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will calculate and return can we live one more turn with percentage value.In this function we will look how many unit we got and their levels etc. then we will look enemy_unit attributes so this function will calculate our poistion in game and return percantage value of how strong we are.(This function for improve and will simplfy recruitment decisions)&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for FAI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions other functions that for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29501</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29501"/>
		<updated>2009-03-31T17:24:30Z</updated>

		<summary type="html">&lt;p&gt;Velory: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use. On the other hand I want to implement new types of evaluation for help of choosing candidatemoves.Also i want to implement debugger tool to FormulaAi, and make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| + ||Mar&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;16 || Meet up with Wesnoth developers Seek google SOC ideas and decide which idea will i choose for GsoC 2009.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;17&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;22 || Familiarize myself with parts of current Wesnoth AI code,read some documents about Formula AI functions and writing your formula from Wesnoth Wiki, play Wesnoth more and learn How is ai working in situations.And implement a patch from easy coding page.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;22&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;23 || Catch bugs in improvement and do some optimization.&lt;br /&gt;
|-&lt;br /&gt;
| + || Mar&amp;amp;nbsp;24&amp;amp;nbsp;-&amp;amp;nbsp;Mar&amp;amp;nbsp;29 || Implement a new patch from easy coding page and create some functions for general use and simplifying.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;b&amp;gt;now&amp;lt;/b&amp;gt; || Mar&amp;amp;nbsp;30&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;3 || Continue improvement patches for FAI , optimize Gsoc proposal and attain final proposal.Gain SVN access.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;4&amp;amp;nbsp;-&amp;amp;nbsp;Apr&amp;amp;nbsp;13 || Implement “Selection idea” functions other functions that for general usage,simplifying and modularity.&lt;br /&gt;
|-&lt;br /&gt;
| || Apr&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;5 || Start and Finish all functions and variables implementation about “Squad division” also “Follower idea” and write a formula for Squad division idea. Test and submit.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;6&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;13 || Catch bugs in Squad division and also other bugs in other implemented functions.And fix that bugs.&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;14&amp;amp;nbsp;-&amp;amp;nbsp;May&amp;amp;nbsp;24 || Some optimizations ( Optimizations about squad leader coosing and Squad promotions etc.) and improvements about Squad Division and also Other formula ideas if needed&lt;br /&gt;
|-&lt;br /&gt;
| || May&amp;amp;nbsp;25&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;7 || ..Final Exams.. So in this 2 weeks i might not work too much..&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;8&amp;amp;nbsp;-&amp;amp;nbsp;June&amp;amp;nbsp;21 || Finish all optimizations and Implement finished formulas to some game scenarios and test in scenarios.&lt;br /&gt;
|-&lt;br /&gt;
| || June&amp;amp;nbsp;21&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;10 || Work with candidate evaluation (moves,attacking) idea especially Decision State. Implement decision idea to Candidate Moves and do some tests.&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;July&amp;amp;nbsp;15 || Catch bugs and do some optimizations about Decision idea&lt;br /&gt;
|-&lt;br /&gt;
| || July&amp;amp;nbsp;16&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;9 || Work with Sdl or GNU,Write a good debugger tool for Formula AI. Do some tests and fix some bugs with this tool.&lt;br /&gt;
|-&lt;br /&gt;
| || August&amp;amp;nbsp;10&amp;amp;nbsp;-&amp;amp;nbsp;August&amp;amp;nbsp;16 || “Pencils down” week. Write/improve documentations , clean codes and fix some bugs if any or write some tests. Start to other improvements.&lt;br /&gt;
|-&lt;br /&gt;
| || Afterwards || Continue improve ai and develop game.&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29475</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29475"/>
		<updated>2009-03-30T22:26:38Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formulas and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use. On the other hand I want to implement new types of evaluation for help of choosing candidatemoves.Also i want to implement debugger tool to FormulaAi, and make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29474</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29474"/>
		<updated>2009-03-30T22:13:12Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formuals and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use.And i also want to make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game. I have a good knowledge about SDL events and SDL window i worked events in my internship(Flight Simulator) also i'm familiar fith gnu window.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29473</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29473"/>
		<updated>2009-03-30T22:08:23Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formuals and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use.And i also want to make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in given range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one,we will choose selected order).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.For example if results from given formula are 80,60,50,40 we can choose any one of them.&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29472</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29472"/>
		<updated>2009-03-30T22:05:34Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formuals and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use.And i also want to make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in giving range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one selected one).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Tool Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29471</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29471"/>
		<updated>2009-03-30T22:05:14Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formuals and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use.And i also want to make primitive library for FAI.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea: '''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea (Strategy) :'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'range()' function'':Range function will allow us to do/trace/control something in giving range.It will take 3 parameters like range(2,7,my_list) and return list[2],list[3],list[4],list[5]... in one list.&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose function we will not highest one selected one).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Candidate Moves,Attacks (Evaluation,Attack) Improvement'''&lt;br /&gt;
&lt;br /&gt;
''Decision State'':&lt;br /&gt;
I'm thinking about adding some new candidate move types for improve deciding state. I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other might gooder then this one. So i think we need decision type for move or attack ypes. Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says to AI, AI may choose that evaluation type (movement or attack).Then with decision's help we can choose gooder type for example suppose that three of our units which need healing immediately are fighting with one enemy...So our healer can go and attack that unit first and after that other units can go near of healer and have their heal.So in this state first decision should choose attack type of evaluation instead of move( f.e.= move -&amp;gt; move near of units heal attack -&amp;gt; attacking unit in range). &lt;br /&gt;
&lt;br /&gt;
'''Debugging Purpose'''&lt;br /&gt;
&lt;br /&gt;
''Debugger Idea:''&lt;br /&gt;
I want to create a debugger GUI for testing and debug purpose of formulas.This gui will carry two new textfield windows which is written by SDL or GNU.This window will be open when we type ./wesnoth -t -d --debugger.After we open game with that command, a window with 2 text boxes and buttons below these textboxes will appear.We will read candidate move from .fai file and write to upper text box and highlight executing one.Then we will read cpp code -that which function is executing now- and write to downer textfield .Then we will stop game, start event loop and wait event handler's event. Reading cpp code will start from inner function and show variables values to us. Then we can scope all variables with that.(First im thinking about just showing highlighted code after that values). We have a Next line button,Run button,Stop button,Exit button. Nextline button will execute just one line and show values etc.,Run button will run game as normal and we can quickly scope which lines are executing. Stop button will stop game again and start to wait for event from event handler. Exit button will quit both window and game.&lt;br /&gt;
&lt;br /&gt;
I have also some recruitment function ideas and recruitment strategy. But i learned in recruitment area Dragonking has really good knowledge and some serious work done by him last year. So i don't think i have a really good knowledge about that subject.So i think i'll be focus on my other approaches :) but i can give information about my ideas if anyone want to look at it.&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29436</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29436"/>
		<updated>2009-03-30T19:20:54Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formuals and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use.I want to create a debugger GUI for testing and debug purpose of formulas. This gui will include candidate move which is executing now and u can see which line is parsing/executing and you have a options to wait in one line or go to next line like C++ debuggers in many IDEs.And i also want to make primitive library for FAI and thinking of adding some new candidate move types for improve deciding state.I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other can be gooder then this one so we need decision type for move or attack etc.Or we can improve candidate move semantic&amp;amp;syntax to decide: type: evaluation: attack: then what if decide says ai will choose type (movement or attack) .&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'while' function'':I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(' found ',i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea(Strategy):'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'unit_price' attribute'':&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'' 'available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'' 'will_available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
''Recruitment Strategy'':&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions and new formula ideas to this area about making attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29433</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29433"/>
		<updated>2009-03-30T19:03:06Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I'd like to work with Formuals and functions in Formula Ai, improve them and add new functions for simplyfying modularity and general use.I want to create a debugger GUI for testing and debug purpose of formulas. This gui will include candidate move which is executing now and u can see which line is parsing/executing and you have a options to wait in one line or go to next line like C++ debuggers in many IDEs.And i also want to make primitive library for FAI and thinking of adding some new candidate move types for improve deciding state.I think move and attack is too limited types and choosing one of them might be ignore other type but choosing other can be gooder then this one so we need decision type for move or attack etc.&lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI and Improvement Formulas''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'while' function'':I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(' found ',i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_number' attribute'':&lt;br /&gt;
This attribute will determine units squad number.Every unit will belong one squad and they have number for controlling squads every turn in breaking squad formula.&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
'' 'breaking squad.fai' formula'':&lt;br /&gt;
This formula will be called in every formula_ai turn.Formula will look unit's squad numbers.If a unit that hasnt got any squad Formula will look like squad_empty_slot[last_number_of_squad] if slot any empty slot there unit will be added this squad. If not formula will create new squad and give him squad_leader promotion.Also there can be some improvements like optimization of squad_leaders etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea(Strategy):'''&lt;br /&gt;
&lt;br /&gt;
I will implement a formula for squad following.This formula will get empty adjacent_locs (we can take hexes in his back which is distance_between(1 or 2 of them ) of leader and move near or back of his squad leader. If leader will attack some unit every unit in his squad will attack if they have enough movement point if not they will go his near or back again.(Also we can push queue structure to their movements and pop them but there is no need for that i think.) &lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'unit_price' attribute'':&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'' 'available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'' 'will_available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
''Recruitment Strategy'':&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions and new formula ideas to this area about making attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29361</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29361"/>
		<updated>2009-03-28T11:10:41Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'while' function'':I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(' found ',i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'push_queue' function'':&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'' 'pop_queue' function'':&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'unit_price' attribute'':&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'' 'available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'' 'will_available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
''Recruitment Strategy'':&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page-poisoning imrovement- and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1145 Patch 1145]]-I've implemented one of Formula AI improvements suggestions on the Easy Coding page-healing improvement- &lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29336</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29336"/>
		<updated>2009-03-27T16:32:40Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'while' function'':I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(' found ',i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'push_queue' function'':&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'' 'pop_queue' function'':&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'unit_price' attribute'':&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'' 'available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'' 'will_available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
''Recruitment Strategy'':&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI improvements suggestions on the EasyCoding page and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1143 Patch 1143]]-I've implemented a new global function named distance_list_between which is allow us to take a list between one specific unit location and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc))But submitted cause i think it might be worthy for general usage.&lt;br /&gt;
&lt;br /&gt;
[[https://gna.org/patch/?1142 Patch 1142]]-I've implemented a new global function named Encapsulate which is comparing two list and return 1 if list1's all elements is also list2's elements.And return -1 if list1's all elements are not in list2.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29278</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29278"/>
		<updated>2009-03-25T17:23:16Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'while' function'':I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(' found ',i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'push_queue' function'':&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'' 'pop_queue' function'':&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'unit_price' attribute'':&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'' 'available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'' 'will_available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
''Recruitment Strategy'':&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[http://pastebin.com/m3b053912 distance_list_between]]-i created a new global function named distance_list_between which is allow us to take a list between one specific unit and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc)) i didnt knew that we can use just ''loc'' in distance_between (me.loc,''loc'') before.So i didnt upload as a patch.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29277</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29277"/>
		<updated>2009-03-25T17:23:00Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'while' function'':I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(' found ',i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'specific_choose' function'':Specific choose function will allow to choose specific items(unlike choose not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'push_queue' function'':&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'' 'pop_queue' function'':&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'squad_leader' attribute'':&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'' 'squad_empty_slot' attribute'':&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'' 'unit_price' attribute'':&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'' 'available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'' 'will_available_recruits' function'':&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'' 'strong_enough' function'':&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
''Recruitment Strategy'':&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[http://pastebin.com/m5cc6b416 distance_list_between]]-i created a new global function named distance_list_between which is allow us to take a list between one specific unit and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc)) i didnt knew that we can use just ''loc'' in distance_between (me.loc,''loc'') before.So i didnt upload as a patch.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29276</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29276"/>
		<updated>2009-03-25T16:40:15Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'while' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'unit_price' attribute:&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'will_available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'strong_enough' function:&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
Recruitment Strategy:&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
[[http://pastebin.com/m5cc6b416 distance_list_between]]-i created a new global function named distance_list_between which is allow us to take a list between one specific unit and other specific -or all- units.But right after i finished this function boucman explained we can already take a list with for example map(my_units,distance_between(me.loc,loc)) i didnt knew that we can use just ''loc'' in distance_between (me.loc,''loc'') before.So i didnt upload as a patch.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29169</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29169"/>
		<updated>2009-03-23T22:31:57Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Project: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'while' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'unit_price' attribute:&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'will_available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'strong_enough' function:&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
Recruitment Strategy:&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29161</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29161"/>
		<updated>2009-03-23T21:15:11Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'while' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'unit_price' attribute:&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'will_available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'strong_enough' function:&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
Recruitment Strategy:&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page and i wrote a scenario to test my improvement,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29150</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29150"/>
		<updated>2009-03-23T19:11:19Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'while' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
&lt;br /&gt;
'unit_price' attribute:&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'will_available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'strong_enough' function:&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
Recruitment Strategy:&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29149</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29149"/>
		<updated>2009-03-23T19:04:50Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'while' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
'''Recruitment idea:'''&lt;br /&gt;
'unit_price' attribute:&lt;br /&gt;
this function will return how many gold we need for recruit unit.&lt;br /&gt;
&lt;br /&gt;
'available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit in current turn.&lt;br /&gt;
&lt;br /&gt;
'will_available_recruits' function:&lt;br /&gt;
This function will return list of units which we can recruit if we wait one turn.Function will calculate how many gold will we have in following turn and looks units prices.&lt;br /&gt;
&lt;br /&gt;
'strong_enough' function:&lt;br /&gt;
This function will return can we live one more turn.In this function we will look how many unit we got and their levels etc. and also we will look enemy_unit attributes so this function will turn 1 or 0 about we can live or not.&lt;br /&gt;
&lt;br /&gt;
Recruitment Strategy:&lt;br /&gt;
In recruitment state we will look if the leader staying at keep.If not, we will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call available_recruits function for learn info about which units we can buy. After that ai call will_available_recruits method which includes if we will wait one turn which units will be available for recruit.At last we will call strong_enough function for look can we live one more turn.So ai will decide to wait or recruit immediately.With this strategy we can have gooder units and we can spend our money to gooder units.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area about makeing attack strategy soon...&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29131</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29131"/>
		<updated>2009-03-23T07:51:55Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
''''Adding Global Functions and variables to Formula AI''''&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'while' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area soon...&lt;br /&gt;
&lt;br /&gt;
'''Strategy(Attacking/Capturing/Moving):'''&lt;br /&gt;
&lt;br /&gt;
There will be makeStrategy method. We will define priority variable. So in makeStrategy method we will list leader's available movement points and take a look at enemies,capture available villages. If any village that we can immediately capture squad will capture this village first after that we will list enemy formation(for example how many unit that we can attack etc.) and we will doAttack method and this method will call isWeak function.isWeak will calculate who is stronger at this state.With this method ai will also look other allied squads for if this squad will attack can other allied squads attack this turn or can other squad come near of this squad for help other turns.Then ai will decide how stronger that we are.If our squad stronger than enemy squad , our squad will attack.If not,  Can our squad be stronger than enemy with help of other allied squads?(can they attack too or can they come near of us).So if decide is we stronger than enemy -lets kill- other hand -retreat.When retreating squad can go near of other squads that far from us. Then squad can merge with other squads in following turns if enemy will follow us.&lt;br /&gt;
&lt;br /&gt;
'''Recruitment:'''&lt;br /&gt;
&lt;br /&gt;
In recruitment state ai will call attemptRecruit method. This method will look if the leader staying at keep.If not method will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call availableRecruits method that includes learn how many gold we have and which units can we recruit with this money. After that ai call willAvailablRecruits method which includes if we wait one turn which units will be available for us. At at last ai will call strongEnough method for can we wait one turn to recruit(i mean do we strong enough to live next turns). After all of this calls ai will decide which strategy is good wait? or recruit now&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29130</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29130"/>
		<updated>2009-03-23T07:51:18Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
=Adding Global Functions and variables to Formula AI=&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'while' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
ps:i will add new functions to this area soon...&lt;br /&gt;
&lt;br /&gt;
'''Strategy(Attacking/Capturing/Moving):'''&lt;br /&gt;
&lt;br /&gt;
There will be makeStrategy method. We will define priority variable. So in makeStrategy method we will list leader's available movement points and take a look at enemies,capture available villages. If any village that we can immediately capture squad will capture this village first after that we will list enemy formation(for example how many unit that we can attack etc.) and we will doAttack method and this method will call isWeak function.isWeak will calculate who is stronger at this state.With this method ai will also look other allied squads for if this squad will attack can other allied squads attack this turn or can other squad come near of this squad for help other turns.Then ai will decide how stronger that we are.If our squad stronger than enemy squad , our squad will attack.If not,  Can our squad be stronger than enemy with help of other allied squads?(can they attack too or can they come near of us).So if decide is we stronger than enemy -lets kill- other hand -retreat.When retreating squad can go near of other squads that far from us. Then squad can merge with other squads in following turns if enemy will follow us.&lt;br /&gt;
&lt;br /&gt;
=Recruitment:=&lt;br /&gt;
&lt;br /&gt;
In recruitment state ai will call attemptRecruit method. This method will look if the leader staying at keep.If not method will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call availableRecruits method that includes learn how many gold we have and which units can we recruit with this money. After that ai call willAvailablRecruits method which includes if we wait one turn which units will be available for us. At at last ai will call strongEnough method for can we wait one turn to recruit(i mean do we strong enough to live next turns). After all of this calls ai will decide which strategy is good wait? or recruit now&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29128</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29128"/>
		<updated>2009-03-23T07:50:16Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
=Adding Global Functions and variables to Formula AI=&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
&lt;br /&gt;
'while' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Strategy(Attacking/Capturing/Moving):'''&lt;br /&gt;
&lt;br /&gt;
There will be makeStrategy method. We will define priority variable. So in makeStrategy method we will list leader's available movement points and take a look at enemies,capture available villages. If any village that we can immediately capture squad will capture this village first after that we will list enemy formation(for example how many unit that we can attack etc.) and we will doAttack method and this method will call isWeak function.isWeak will calculate who is stronger at this state.With this method ai will also look other allied squads for if this squad will attack can other allied squads attack this turn or can other squad come near of this squad for help other turns.Then ai will decide how stronger that we are.If our squad stronger than enemy squad , our squad will attack.If not,  Can our squad be stronger than enemy with help of other allied squads?(can they attack too or can they come near of us).So if decide is we stronger than enemy -lets kill- other hand -retreat.When retreating squad can go near of other squads that far from us. Then squad can merge with other squads in following turns if enemy will follow us.&lt;br /&gt;
&lt;br /&gt;
Recruitment:&lt;br /&gt;
&lt;br /&gt;
In recruitment state ai will call attemptRecruit method. This method will look if the leader staying at keep.If not method will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call availableRecruits method that includes learn how many gold we have and which units can we recruit with this money. After that ai call willAvailablRecruits method which includes if we wait one turn which units will be available for us. At at last ai will call strongEnough method for can we wait one turn to recruit(i mean do we strong enough to live next turns). After all of this calls ai will decide which strategy is good wait? or recruit now&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29127</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29127"/>
		<updated>2009-03-23T07:48:55Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
I've changed my ideas since i learned Formula Ai language.Here's my improvement ideas about breaking squad etc.  &lt;br /&gt;
&lt;br /&gt;
=Adding Global Functions and variables to Formula AI=&lt;br /&gt;
&lt;br /&gt;
'''Loop structure Idea:'''&lt;br /&gt;
'While' function:I think most important requirement for Formula language is loop structures,adding the loop structures will allow run one or more lines of code repetitively.Loops will decrease complexity of codes.And we have a chance to trace all items in lists and add conditional to them.Function syntax will looklike that&lt;br /&gt;
&lt;br /&gt;
while(i=0)(&amp;lt;assignment&amp;gt;,if(found,i = 1,0))&lt;br /&gt;
&lt;br /&gt;
'''Selection Idea:'''&lt;br /&gt;
&lt;br /&gt;
'specific_choose' function:Specific choose function will allow to choose specific items(not highest).Function syntax will look like that &lt;br /&gt;
&amp;lt;result&amp;gt; = choose(&amp;lt;inputl list &amp;gt;,&amp;lt;number&amp;gt;,[&amp;lt;string&amp;gt;,]&amp;lt;formula&amp;gt;)&lt;br /&gt;
its like choose function but we can choose order of item.&lt;br /&gt;
&lt;br /&gt;
'''Follower Idea:'''&lt;br /&gt;
'push_queue' function:&lt;br /&gt;
This function allow us push unit's movements to queue.For example if we want to follow one unit(for example leader of the squad) we will push his movements(movements is coordinates passed from unit when he is moving) to one queue for follower unit.&lt;br /&gt;
&lt;br /&gt;
'pop_queue' function:&lt;br /&gt;
This function allow us pop unit's movements from queue.So after we push one unit's movements(movements is coordinates passed from unit when he is moving),we will pop for follower unit and we let follower unit to follow leader unit.&lt;br /&gt;
&lt;br /&gt;
'''Squad Division Idea:'''&lt;br /&gt;
'squad_leader' attribute:&lt;br /&gt;
I want to implement squad_leader attribute to all variables then we can check if unit is squad_leader choose by AI.(squad_leader can have two value 1 or 0)&lt;br /&gt;
&lt;br /&gt;
'squad_empty_slot' attribute:&lt;br /&gt;
This attribute will contain value which is how many unit needed in squad.In squad idea Ai will divide units to squads -4 people squads- for example if ai side have only 3 men or 13 man maybe ai will break squads but write squad_empty_slot to 1-2,3-  then if we recruit  unit ai will check squads if squad_empty_slot 's value != 0 and if any squads found ai will add unit to this squad if ai cant find any squad which is have empty slot ai will give unit to squad_leader promotion and refer squad_empty_slot to 3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Strategy(Attacking/Capturing/Moving):'''&lt;br /&gt;
&lt;br /&gt;
There will be makeStrategy method. We will define priority variable. So in makeStrategy method we will list leader's available movement points and take a look at enemies,capture available villages. If any village that we can immediately capture squad will capture this village first after that we will list enemy formation(for example how many unit that we can attack etc.) and we will doAttack method and this method will call isWeak function.isWeak will calculate who is stronger at this state.With this method ai will also look other allied squads for if this squad will attack can other allied squads attack this turn or can other squad come near of this squad for help other turns.Then ai will decide how stronger that we are.If our squad stronger than enemy squad , our squad will attack.If not,  Can our squad be stronger than enemy with help of other allied squads?(can they attack too or can they come near of us).So if decide is we stronger than enemy -lets kill- other hand -retreat.When retreating squad can go near of other squads that far from us. Then squad can merge with other squads in following turns if enemy will follow us.&lt;br /&gt;
&lt;br /&gt;
Recruitment:&lt;br /&gt;
&lt;br /&gt;
In recruitment state ai will call attemptRecruit method. This method will look if the leader staying at keep.If not method will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call availableRecruits method that includes learn how many gold we have and which units can we recruit with this money. After that ai call willAvailablRecruits method which includes if we wait one turn which units will be available for us. At at last ai will call strongEnough method for can we wait one turn to recruit(i mean do we strong enough to live next turns). After all of this calls ai will decide which strategy is good wait? or recruit now&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29091</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=29091"/>
		<updated>2009-03-22T20:50:05Z</updated>

		<summary type="html">&lt;p&gt;Velory: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
Here is my ideas to improve AI.I also drew a use-case diagram for my design.If i get some positive criticisms on it im planning to draw squence diagrams also.Its open for comments.  &lt;br /&gt;
&lt;br /&gt;
Breaking Squad:&lt;br /&gt;
&lt;br /&gt;
Ai will choose squads and their leaders with breakSquad method. When Ai call this method, firstly method learn how many unit we got and how many same unit.Then this number will be divide 2 or 4 with looking number of unit.And we will combine them for looking their movement points(Similar movement points will in same group)After divide ai will choose leader for each squad and point them. Following the leader will process with queue structure.We push queue the leaders steps after that we will pop steppes for every unit(for example one unit will pop movement do movement and push again for other unit). So if leader will attack, then everyone will try to attack if they have more movement point and if there is no point left they will try to do attack other turn.Healers cant be leader in squads and when units attacking healers will follow heal leader first approach&lt;br /&gt;
&lt;br /&gt;
Strategy(Attacking/Capturing/Moving):&lt;br /&gt;
&lt;br /&gt;
There will be makeStrategy method. We will define priority variable. So in makeStrategy method we will list leader's available movement points and take a look at enemies,capture available villages. If any village that we can immediately capture squad will capture this village first after that we will list enemy formation(for example how many unit that we can attack etc.) and we will doAttack method and this method will call isWeak function.isWeak will calculate who is stronger at this state.With this method ai will also look other allied squads for if this squad will attack can other allied squads attack this turn or can other squad come near of this squad for help other turns.Then ai will decide how stronger that we are.If our squad stronger than enemy squad , our squad will attack.If not,  Can our squad be stronger than enemy with help of other allied squads?(can they attack too or can they come near of us).So if decide is we stronger than enemy -lets kill- other hand -retreat.When retreating squad can go near of other squads that far from us. Then squad can merge with other squads in following turns if enemy will follow us.&lt;br /&gt;
&lt;br /&gt;
Recruitment:&lt;br /&gt;
&lt;br /&gt;
In recruitment state ai will call attemptRecruit method. This method will look if the leader staying at keep.If not method will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call availableRecruits method that includes learn how many gold we have and which units can we recruit with this money. After that ai call willAvailablRecruits method which includes if we wait one turn which units will be available for us. At at last ai will call strongEnough method for can we wait one turn to recruit(i mean do we strong enough to live next turns). After all of this calls ai will decide which strategy is good wait? or recruit now&lt;br /&gt;
&lt;br /&gt;
http://i62.photobucket.com/albums/h111/brk_seth/AI_use-case.jpg&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
[[https://gna.org/patch/?1138 Patch 1138]]-I've implemented one of Formula AI poisoning improvements suggestions on the EasyCoding page,under the guidance of boucman and with help of Dragonking.&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28881</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28881"/>
		<updated>2009-03-20T12:39:31Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
Here is my ideas to improve AI.I also drew a use-case diagram for my design.If i get some positive criticisms on it im planning to draw squence diagrams also.Its open for comments.  &lt;br /&gt;
&lt;br /&gt;
Breaking Squad:&lt;br /&gt;
&lt;br /&gt;
Ai will choose squads and their leaders with breakSquad method. When Ai call this method, firstly method learn how many unit we got and how many same unit.Then this number will be divide 2 or 4 with looking number of unit.And we will combine them for looking their movement points(Similar movement points will in same group)After divide ai will choose leader for each squad and point them. Following the leader will process with queue structure.We push queue the leaders steps after that we will pop steppes for every unit(for example one unit will pop movement do movement and push again for other unit). So if leader will attack, then everyone will try to attack if they have more movement point and if there is no point left they will try to do attack other turn.Healers cant be leader in squads and when units attacking healers will follow heal leader first approach&lt;br /&gt;
&lt;br /&gt;
Strategy(Attacking/Capturing/Moving):&lt;br /&gt;
&lt;br /&gt;
There will be makeStrategy method. We will define priority variable. So in makeStrategy method we will list leader's available movement points and take a look at enemies,capture available villages. If any village that we can immediately capture squad will capture this village first after that we will list enemy formation(for example how many unit that we can attack etc.) and we will doAttack method and this method will call isWeak function.isWeak will calculate who is stronger at this state.With this method ai will also look other allied squads for if this squad will attack can other allied squads attack this turn or can other squad come near of this squad for help other turns.Then ai will decide how stronger that we are.If our squad stronger than enemy squad , our squad will attack.If not,  Can our squad be stronger than enemy with help of other allied squads?(can they attack too or can they come near of us).So if decide is we stronger than enemy -lets kill- other hand -retreat.When retreating squad can go near of other squads that far from us. Then squad can merge with other squads in following turns if enemy will follow us.&lt;br /&gt;
&lt;br /&gt;
Recruitment:&lt;br /&gt;
&lt;br /&gt;
In recruitment state ai will call attemptRecruit method. This method will look if the leader staying at keep.If not method will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call availableRecruits method that includes learn how many gold we have and which units can we recruit with this money. After that ai call willAvailablRecruits method which includes if we wait one turn which units will be available for us. At at last ai will call strongEnough method for can we wait one turn to recruit(i mean do we strong enough to live next turns). After all of this calls ai will decide which strategy is good wait? or recruit now&lt;br /&gt;
&lt;br /&gt;
http://i62.photobucket.com/albums/h111/brk_seth/AI_use-case.jpg&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28880</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28880"/>
		<updated>2009-03-20T12:38:52Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* AI Improvement Idea */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
Here is my ideas to improve AI.I also drew a use-case diagram for my design.If i get some positive criticisms on it im planning to draw squence diagrams also.Its open for comments.  &lt;br /&gt;
&lt;br /&gt;
Breaking Squad:&lt;br /&gt;
&lt;br /&gt;
Ai will choose squads and their leaders with breakSquad method. When Ai call this method, firstly method learn how many unit we got and how many same unit.Then this number will be divide 2 or 4 with looking number of unit.And we will combine them for looking their movement points(Similar movement points will in same group)After divide ai will choose leader for each squad and point them. Following the leader will process with queue structure.We push queue the leaders steps after that we will pop steppes for every unit(for example one unit will pop movement do movement and push again for other unit). So if leader will attack, then everyone will try to attack if they have more movement point and if there is no point left they will try to do attack other turn.Healers cant be leader in squads and when units attacking healers will follow heal leader first approach&lt;br /&gt;
&lt;br /&gt;
Strategy(Attacking/Capturing/Moving):&lt;br /&gt;
&lt;br /&gt;
There will be makeStrategy method. We will define priority variable. So in makeStrategy method we will list leader's available movement points and take a look at enemies,capture available villages. If any village that we can immediately capture squad will capture this village first after that we will list enemy formation(for example how many unit that we can attack etc.) and we will doAttack method and this method will call isWeak function.isWeak will calculate who is stronger at this state.With this method ai will also look other allied squads for if this squad will attack can other allied squads attack this turn or can other squad come near of this squad for help other turns.Then ai will decide how stronger that we are.If our squad stronger than enemy squad , our squad will attack.If not,  Can our squad be stronger than enemy with help of other allied squads?(can they attack too or can they come near of us).So if decide is we stronger than enemy -lets kill- other hand -retreat.When retreating squad can go near of other squads that far from us. Then squad can merge with other squads in following turns if enemy will follow us.&lt;br /&gt;
&lt;br /&gt;
Recruitment:&lt;br /&gt;
&lt;br /&gt;
In recruitment state ai will call attemptRecruit method. This method will look if the leader staying at keep.If not method will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call availableRecruits method that includes learn how many gold we have and which units can we recruit with this money. After that ai call willAvailablRecruits method which includes if we wait one turn which units will be available for us. At at last ai will call strongEnough method for can we wait one turn to recruit(i mean do we strong enough to live next turns). After all of this calls ai will decide which strategy is good wait? or recruit now&lt;br /&gt;
&lt;br /&gt;
[IMG]http://i62.photobucket.com/albums/h111/brk_seth/AI_use-case.jpg[/IMG]&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28879</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28879"/>
		<updated>2009-03-20T11:45:13Z</updated>

		<summary type="html">&lt;p&gt;Velory: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AI Improvement Idea==&lt;br /&gt;
Here is my ideas to improve AI.I also drew a use-case diagram for my design.If i get some positive criticisms on it im planning to draw squence diagrams also.Its open for comments.  &lt;br /&gt;
&lt;br /&gt;
Breaking Squad:&lt;br /&gt;
&lt;br /&gt;
Ai will choose squads and their leaders with breakSquad method. When Ai call this method, firstly method learn how many unit we got and how many same unit.Then this number will be divide 2 or 4 with looking number of unit.And we will combine them for looking their movement points(Similar movement points will in same group)After divide ai will choose leader for each squad and point them. Following the leader will process with queue structure.We push queue the leaders steps after that we will pop steppes for every unit(for example one unit will pop movement do movement and push again for other unit). So if leader will attack, then everyone will try to attack if they have more movement point and if there is no point left they will try to do attack other turn.Healers cant be leader in squads and when units attacking healers will follow heal leader first approach&lt;br /&gt;
&lt;br /&gt;
Strategy(Attacking/Capturing/Moving):&lt;br /&gt;
&lt;br /&gt;
There will be makeStrategy method. We will define priority variable. So in makeStrategy method we will list leader's available movement points and take a look at enemies,capture available villages. If any village that we can immediately capture squad will capture this village first after that we will list enemy formation(for example how many unit that we can attack etc.) and we will doAttack method and this method will call isWeak function.isWeak will calculate who is stronger at this state.With this method ai will also look other allied squads for if this squad will attack can other allied squads attack this turn or can other squad come near of this squad for help other turns.Then ai will decide how stronger that we are.If our squad stronger than enemy squad , our squad will attack.If not,  Can our squad be stronger than enemy with help of other allied squads?(can they attack too or can they come near of us).So if decide is we stronger than enemy -lets kill- other hand -retreat.When retreating squad can go near of other squads that far from us. Then squad can merge with other squads in following turns if enemy will follow us.&lt;br /&gt;
&lt;br /&gt;
Recruitment:&lt;br /&gt;
&lt;br /&gt;
In recruitment state ai will call attemptRecruit method. This method will look if the leader staying at keep.If not method will look if leader can reach keep in this turn.So if leader cant reach keep, ai will pass recruitment state. But if leader is staying in keep or can reach castle(this method will return true) ai will call availableRecruits method that includes learn how many gold we have and which units can we recruit with this money. After that ai call willAvailablRecruits method which includes if we wait one turn which units will be available for us. At at last ai will call strongEnough method for can we wait one turn to recruit(i mean do we strong enough to live next turns). After all of this calls ai will decide which strategy is good wait? or recruit now&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Basics And Other Questions==&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!. I am using eclipse and qt4 in Linux(for java). When i'm writing c++ or python code on linux i generally use vim editor. On windows i'm using both visual studio and eclipse for developing.&lt;br /&gt;
&lt;br /&gt;
Experienced Languages:&lt;br /&gt;
C,C++,Java,Python,C#,Perl,PhP,Mysql,Javascript,Html,Xml,Action Script 3,(Cinema 4d this is not language but i used for design some 3d objects)&lt;br /&gt;
&lt;br /&gt;
Experienced Libraries and components:&lt;br /&gt;
Sdl,OpenGl,Directx,CiGi,Xna,pyGame(just introduction state)&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=28865</id>
		<title>SummerOfCodeIdeas</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=28865"/>
		<updated>2009-03-19T22:33:27Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* GSoC Student pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a compilation of ideas from ML. Needs to be refined (more detailed description, deliverables, workload estimation?):&lt;br /&gt;
&lt;br /&gt;
== I want to be one of your Google Summer of Code students, what should I do... ==&lt;br /&gt;
&lt;br /&gt;
Here is a quick list of things to do to get you started&lt;br /&gt;
* Create an account on gna.org&lt;br /&gt;
* Create an account on the wesnoth forum, and tell an admin on the IRC channel to mark is as a GSoC Student account (Admins are boucman, Ivanovic, mordante, Shadow_Master, Sirp and Turuk)&lt;br /&gt;
* Join the irc channel (#wesnoth-dev on irc.freenode.net) and introduce yourself. We will not give formal interviews, but we will clearly favor people we have learned to know during the selection process (basically communication via IRC is mandatory for our project! it is the main way of &amp;quot;every day communication&amp;quot; for Wesnoth)&lt;br /&gt;
&lt;br /&gt;
* Start a wiki page about your idea, add a link on the bottom of this page and add this information on it:&lt;br /&gt;
** List your account names (gna, forum, irc nick) so that we can recognize you&lt;br /&gt;
** Fill the questionnaire on this page: [[SoC_Information_for_Google#Does_your_organization_have_an_application_template_you_would_like_to_see_students_use.3F_If_so.2C_please_provide_it_now.| List of questions to answer]]&lt;br /&gt;
** Detail your idea as much as possible, look at other students pages, and please give milestones and studies you've done&lt;br /&gt;
** Add a link to the page at the bottom of this page&lt;br /&gt;
&lt;br /&gt;
* Though not mandatory, it is highly advisable to go to the [[EasyCoding]] and [[NotSoEasyCoding]] pages and implement one of these ideas (or any idea of similar scope) so we have an idea how you work. Be sure to use your gna account when submitting these patches so we know who it is coming from. You can also implement some features from our feature request database at gna. When you implement something, also list it on your own page with a reference to the patch.&lt;br /&gt;
&lt;br /&gt;
* For working on Wesnoth you have to be able to compile trunk. To do so you should have a look at the [[WesnothSVN|page about svn]] and afterwards [[CompilingWesnoth|compile Wesnoth svn]].&lt;br /&gt;
&lt;br /&gt;
* Once you have everything done here and think your idea is okay, go to [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants page at google] to submit your application. You have to submit it before '''Date to be supplied later''' or you have no chance to get in!&lt;br /&gt;
&lt;br /&gt;
== List of Ideas for the Project (Suggestions from the wesnoth developers) ==&lt;br /&gt;
&lt;br /&gt;
Here is only a short description of possible Ideas we have, each has a page of its own with a more detailed version on it.&lt;br /&gt;
&lt;br /&gt;
=== Optimize implementation of WML for memory usage ===&lt;br /&gt;
&lt;br /&gt;
Based on this idea: [http://dave.wesnoth.org/?p=9] optimize WML to minimize its memory usage. High memory usage has been a problem for Wesnoth, and this project will aim to reduce it.&lt;br /&gt;
&lt;br /&gt;
=== Implement campaign statistics reports on stats.wesnoth.org ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has an infrastructure which records details of campaigns that players play into a centralized MySQL database. However, we only have rudimentary reports based on this MySQL database available at this time, at [http://stats.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
This project would involve writing a stats reporting web site which would take the data from the MySQL database and produce reports in chart and table form. Campaign designers would be able to use these reports to gather feedback on their campaigns and get ideas for improvements.&lt;br /&gt;
&lt;br /&gt;
A student could largely make their choice of infrastructure for creating the Website -- whether they prefer Python, Perl, Ruby, PHP, etc. This is a great opportunity for someone who doesn't want to dive into hardcore C++ to make a valuable contribution to Wesnoth.&lt;br /&gt;
&lt;br /&gt;
=== Extending the Multiplayer server ===&lt;br /&gt;
&lt;br /&gt;
Our multiplayer community is generally strong and healthy, but we believe its growth is limited by some problems in the interface of the multiplayer lobby.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Multiplayer server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Addon server ===&lt;br /&gt;
Wesnoth has an addon server which offers users to upload user &lt;br /&gt;
made content (UMC). This allows all other users of Wesnoth&lt;br /&gt;
to easily download and install this content. The server was &lt;br /&gt;
originally written for user-made campaigns but contains a lot&lt;br /&gt;
more types of addons nowadays. Both the server side and the &lt;br /&gt;
client side need to be improved.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Addon Server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== WML validation schemes ===&lt;br /&gt;
Wesnoth uses WML as basic data structure. Over the years&lt;br /&gt;
this language has evolved and got more complex. At the&lt;br /&gt;
moment the WML is validated at runtime and in case of a&lt;br /&gt;
problem the engine stops. With schemes these problems can&lt;br /&gt;
be validated when loading the WML, making it easier to find&lt;br /&gt;
problems before running into them.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Schemes]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Write a primitive library for Formula AI ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has always had a simple C++ based AI. David (our lead developer) has been working on a simple language to write AI in Wesnoth: [[FormulaAI]]&lt;br /&gt;
&lt;br /&gt;
The Wesnoth AI is used as an opponent in most campaigns, and as such is an important piece of code for the Wesnoth project. Unfortunately, because the skills required to understand and modify it are rather arcane, it is also one of the most neglected parts of the Wesnoth code. This is a place where a lot of research and useful work could be done. But keep in mind that [[WhyWritingAWesnothAIIsHard|writing an AI for Wesnoth is difficult]].&lt;br /&gt;
&lt;br /&gt;
Writing a whole AI is so complicated that we believe it can't be done in a single Summer of code. All proposals should keep that in mind and try to identify an interesting subset that would be workable in the limited time of a summer of code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas FormulaAI]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Savegame reorganization ===&lt;br /&gt;
The savegame formats of Wesnoth for single player campaigns&lt;br /&gt;
and multiplayer differ from each other. And they are processed&lt;br /&gt;
differently as well. Now there is an additional request coming&lt;br /&gt;
up: Multiplayer campaigns. The task will be to unify the savegames&lt;br /&gt;
for all types of scenarios in order to provide a maintainable code&lt;br /&gt;
again.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Savegame]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other possible ideas to be fleshed out ===&lt;br /&gt;
A MapGenerator rewrite - better scalable for outdoor maps, plus the possibility to define areas (similar to the caverns in the cave generator) etc.&lt;br /&gt;
&lt;br /&gt;
=== Make your own ideas ===&lt;br /&gt;
If you have your own idea the best thing is to join IRC wesnoth-dev at irc.freenode.net and discuss the idea with the developers there. If the developers think your idea is interesting and like the feature you can start to turn it into a full proposal. Once done discuss it again on IRC so the developers can accept your idea.&lt;br /&gt;
&lt;br /&gt;
== Information about our Project ==&lt;br /&gt;
The information we provided google with about our project can be looked up at the site [[SoC Information for Google]].&lt;br /&gt;
&lt;br /&gt;
Also see the [[DeveloperResources]] link (from the [[Project]] page).&lt;br /&gt;
&lt;br /&gt;
== People to bug on IRC ==&lt;br /&gt;
We have prepared a list of people with their &amp;quot;area of competence&amp;quot;. This is to give you an idea on which areas those people can be of help for you. Of course you should always just ask in the IRC chan, but those are the most likely ones to answer questions in the respective area. And here is the list:&lt;br /&gt;
&lt;br /&gt;
[[SoC People to bug on IRC]]&lt;br /&gt;
&lt;br /&gt;
== GSoC Student pages ==&lt;br /&gt;
&lt;br /&gt;
Please add a link to your wiki page below&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_Velory| Velory - SoC Proposal]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_AI_Improvement_Crab| Crab - SoC Proposal - AI Improvement]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code|*]]&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28861</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28861"/>
		<updated>2009-03-19T21:17:41Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Personal Information/Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' veloryATundreamDOTnet , ghostprocATgmailDOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!&lt;br /&gt;
&lt;br /&gt;
===AI Improvement Idea===&lt;br /&gt;
It's just preparation(brainstorming etc.):(Not whole idea about project)&lt;br /&gt;
&lt;br /&gt;
Im looking forum topics about a week i have a few ideas about improving ai but i dont know if these are possible.&lt;br /&gt;
Generally analysis phase is most important phase.I'm planning to create sequence and use-case diagrams for decrease complexity,choosing algorithm and can separate things easily.On the other hand im taking Automata Theory Lesson this semester and im also planning to learn how to using a Finite State Machine in Ai so i can use to calculate all changeable strategies for AI.And add or edit some needed methods for example breaking to squad with new approaches.I can also work for create whole new library for FAI if needed because of new approaching to AI.&lt;br /&gt;
&lt;br /&gt;
Spesificly&lt;br /&gt;
About breaking the squad and movement: AI can choose leaders which will be leading squad and then his movements will push one queue after that other followers-that in same squad- will follow the leader with poped steppes from queue like Age of Empires and other games when u click follow someone.And leaders selection will be with looking attributes (moving capabilities etc.) First take a list our units If there are more than 5 man(or some number that can be choosed) look their attributes and choose couple of unit that have a similar move point.Seect one of them to leader and push his route to queue.After that pop movement from queue sı others can follow the leader...&lt;br /&gt;
And for candidate moves:We can generate some method like findStrategy that will looking all available movement area for village,enemy or just for walk.We can define Priority attribute for selecting war with enemy,capturing village or just follow some route. Then findStrategy method shall return value with looking Priorities that we defined.After that we can easily do some movement,attack,capture in one method. For instance:If no village or enemy then AI can select random route for going to nearest village or enemy. If some enemy he shall control his state with isEnough method-which is checking all squad members, maybe they all need to be healed before attack-&lt;br /&gt;
&lt;br /&gt;
Ps:By the way if this idea is out of the scope of the project, I am willing to work on whatever idea is accepted.&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28860</id>
		<title>SummerOfCodeProposal Velory</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_Velory&amp;diff=28860"/>
		<updated>2009-03-19T21:16:01Z</updated>

		<summary type="html">&lt;p&gt;Velory: /* Personal Information/Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Personal Information/Introduction===&lt;br /&gt;
&lt;br /&gt;
'''''Name:''''' Burkay Özdemir&lt;br /&gt;
&lt;br /&gt;
'''''Age:''''' 21&lt;br /&gt;
&lt;br /&gt;
'''''Gender:'''''Male&lt;br /&gt;
&lt;br /&gt;
'''''Education:''''' 3 of 4 Year Degree, Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''''Wesnoth Forum ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''IRC ID:''''' Velory&lt;br /&gt;
&lt;br /&gt;
'''''GNA ID:''''' velory&lt;br /&gt;
&lt;br /&gt;
'''''Email Address:''''' velory ATundream DOTnet , ghostproc ATgmail DOTcom'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
===Informal Introduction:===&lt;br /&gt;
I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.&lt;br /&gt;
&lt;br /&gt;
===Experience:===&lt;br /&gt;
I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.&lt;br /&gt;
&lt;br /&gt;
I'm a passionate gamer.My game genres of choices are  Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are  about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.&lt;br /&gt;
&lt;br /&gt;
===Communication skills:===&lt;br /&gt;
My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices. &lt;br /&gt;
&lt;br /&gt;
===Project:===&lt;br /&gt;
From the project ideas that I saw,I thought what I would like to participate in most will be &amp;quot;Write a primitive library for Formula AI&amp;quot;. Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI. &lt;br /&gt;
&lt;br /&gt;
About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.&lt;br /&gt;
&lt;br /&gt;
I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.&lt;br /&gt;
&lt;br /&gt;
Practical considerations:&lt;br /&gt;
&lt;br /&gt;
I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!&lt;br /&gt;
&lt;br /&gt;
===AI Improvement Idea===&lt;br /&gt;
It's just preparation(brainstorming etc.):(Not whole idea about project)&lt;br /&gt;
&lt;br /&gt;
Im looking forum topics about a week i have a few ideas about improving ai but i dont know if these are possible.&lt;br /&gt;
Generally analysis phase is most important phase.I'm planning to create sequence and use-case diagrams for decrease complexity,choosing algorithm and can separate things easily.On the other hand im taking Automata Theory Lesson this semester and im also planning to learn how to using a Finite State Machine in Ai so i can use to calculate all changeable strategies for AI.And add or edit some needed methods for example breaking to squad with new approaches.I can also work for create whole new library for FAI if needed because of new approaching to AI.&lt;br /&gt;
&lt;br /&gt;
Spesificly&lt;br /&gt;
About breaking the squad and movement: AI can choose leaders which will be leading squad and then his movements will push one queue after that other followers-that in same squad- will follow the leader with poped steppes from queue like Age of Empires and other games when u click follow someone.And leaders selection will be with looking attributes (moving capabilities etc.) First take a list our units If there are more than 5 man(or some number that can be choosed) look their attributes and choose couple of unit that have a similar move point.Seect one of them to leader and push his route to queue.After that pop movement from queue sı others can follow the leader...&lt;br /&gt;
And for candidate moves:We can generate some method like findStrategy that will looking all available movement area for village,enemy or just for walk.We can define Priority attribute for selecting war with enemy,capturing village or just follow some route. Then findStrategy method shall return value with looking Priorities that we defined.After that we can easily do some movement,attack,capture in one method. For instance:If no village or enemy then AI can select random route for going to nearest village or enemy. If some enemy he shall control his state with isEnough method-which is checking all squad members, maybe they all need to be healed before attack-&lt;br /&gt;
&lt;br /&gt;
Ps:By the way if this idea is out of the scope of the project, I am willing to work on whatever idea is accepted.&lt;/div&gt;</summary>
		<author><name>Velory</name></author>
		
	</entry>
</feed>