Difference between revisions of "Improve AI"

From The Battle for Wesnoth Wiki
Line 1: Line 1:
 
{{SoC2014Student}}
 
{{SoC2014Student}}
[[Category:SoC_Ideas_Your_Own_Ideas2014]]
+
[[Category:SoC_Ideas_AI_Global_strategy]]
 +
 
 +
=ATTENTION=
 +
This page is not finished yet
 +
 
 +
=Improve_AI Strategy=
 +
 
 +
==Contents==
 +
 
 +
- Description of the projects
 +
- Usefull links
  
 
==Description==
 
==Description==
 
<h4>Vahen Improve_AI </h4>
 
<h4>Vahen Improve_AI </h4>
'''TODO:''' Write a small (1-4 sentences) description of your proposal here.
 
  
'''TODO:''' Add more first-level sections to detail your proposal
+
I would like to improve the AI by implementing Global attack / retreat decision.
 +
 
 +
'''Facts''' : Power of the Units around depending on various factors
 +
 
 +
'''Hypothesis''' : Determine what the enemy is going to do based on the facts .
 +
 
 +
'''Decision''' : Make the best move depending on the hypothesis previously set .
 +
 
 +
To do so I will use probality theory to determine what is best move to do.
 +
 
 +
==Usefull_links==
 +
 
 +
Here are some usefull links about Probality theory .
  
'''TODO:''' Set the proper Category in the top of the page (<nowiki>[[Category:XYZ]]</nowiki>), to match the one you'd like to apply for, from the list on the main summer of code page (e.g.: <nowiki>[[Category:SoC_Ideas_AI_Global_strategy]]</nowiki>). Otherwise your idea will be marked as a new one.
+
:[http://en.wikipedia.org/wiki/Probability_theory Probability theory]
 +
:[http://en.wikipedia.org/wiki/Event_%28probability_theory%29 Event]
 +
:[http://en.wikipedia.org/wiki/Bayes%27_theorem Bayes' theorem]
  
==IRC==
+
=Main_Part=
"Vahen"
 
  
==Questionnaire==
+
=IRC=
 +
Vahen
 +
 
 +
=Questionnaire=
 
1) Basics
 
1) Basics
  
1.1) Write a small introduction to yourself.
+
'''1.1) Write a small introduction to yourself.'''
  
 
I'm a 21 year old student in my 2nd year of Mathematics & Informatic at Paris-est Marne la vallée University
 
I'm a 21 year old student in my 2nd year of Mathematics & Informatic at Paris-est Marne la vallée University
  
1.2) State your preferred email address.
+
'''1.2) State your preferred email address.'''
  
 
chris.xelo.pico@gmail.com
 
chris.xelo.pico@gmail.com
  
1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?
+
'''1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?'''
  
1.4) Why do you want to participate in summer of code?
+
'''1.4) Why do you want to participate in summer of code?'''
  
It would be great to code during the summer while earning money, it will also help me to improve me programming skills while helping other people .
+
It would be great to code during the summer while earning money, it will also help me to improve my programming skills while helping other people .
  
1.5) What are you studying, subject, level and school?
+
'''1.5) What are you studying, subject, level and school?'''
  
Mathematics & Informatic , Informatic , 2nd at Paris-Est Marne la vallée University
+
I'm studying Mathematics ( probality , linear algebra , combinatory ) and computer sciences ( C language , Unix-shell scripts , algorithm, Databases(My Sql) , Php ), second year of License at Paris-Est Marne la vallée University
  
1.6) What country are you from, at what time are you most likely to be able to join IRC?
+
'''1.6) What country are you from, at what time are you most likely to be able to join IRC?'''
  
France , while in summer , 2PM GMT+1 to 2-3AM GM+1
+
France , while in summer , i will be able to join IRC from 12AM GMT+1 to 2-3AM GMT+1
  
1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.
+
'''1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.'''
  
 
I don't have any commitments for the summer period , i'll take some vacation 1 week in August , i still have to decide when exactly
 
I don't have any commitments for the summer period , i'll take some vacation 1 week in August , i still have to decide when exactly
Line 44: Line 69:
 
2) Experience
 
2) Experience
  
2.1) What programs/software have you worked on before?
+
'''2.1) What programs/software have you worked on before?'''
  
2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)
+
Projects at my University , little games like Snake , Chomp , a Maze , and lately the Travelling salesman problem .
 +
All in C langage
 +
 
 +
'''2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)'''
  
 
No
 
No
  
2.3) Have you participated to the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?
+
'''2.3) Have you participated to the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?'''
  
Didn't participate , it's my first time
+
I've never participated , it's my first time .
  
2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
+
'''2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.'''
  
2.5) Gaming experience - Are you a gamer?
+
No , but I use open source programs everyday
 +
 
 +
'''2.5) Gaming experience - Are you a gamer?'''
 
Yes
 
Yes
  
2.5.1) What type of gamer are you?
+
'''2.5.1) What type of gamer are you?'''
 
Confirmed , between Casual & Hardcore
 
Confirmed , between Casual & Hardcore
  
2.5.2) What type of games?
+
'''2.5.2) What type of games?'''
 
RTS games , like starcraft
 
RTS games , like starcraft
 
Moba , as Lol
 
Moba , as Lol
Line 68: Line 98:
 
JRPG , final fantasy , chrono trigger etc...
 
JRPG , final fantasy , chrono trigger etc...
 
RPG , like oblivion , skyrim,
 
RPG , like oblivion , skyrim,
FPS  
+
FPS .
 
So all sorts of games
 
So all sorts of games
  
2.5.3) What type of opponents do you prefer?
+
'''2.5.3) What type of opponents do you prefer?'''
  
 
Depends on the type of game , but usually i prefer fighting against an AI
 
Depends on the type of game , but usually i prefer fighting against an AI
Line 81: Line 111:
 
2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
 
2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
  
Sadly no.
+
No.
 
+
But if i played , i would go for single player .
We do not plan to favor Wesnoth players as such, but some particular projects require a good feeling for the game which is hard to get without having played intensively.
 
  
 
2.6) If you have contributed any patches to Wesnoth, please list them below. You can also list patches that have been submitted but not committed yet and patches that have not been specifically written for GSoC. If you have gained commit access to our repository (during the evaluation period or earlier) please state so.
 
2.6) If you have contributed any patches to Wesnoth, please list them below. You can also list patches that have been submitted but not committed yet and patches that have not been specifically written for GSoC. If you have gained commit access to our repository (during the evaluation period or earlier) please state so.
Line 90: Line 119:
 
3) Communication skills
 
3) Communication skills
  
3.1) Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.
+
'''3.1) Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.'''
  
 
I'm fluent with written English ,and if i don't understand a word , i'll just go search for the meaning.
 
I'm fluent with written English ,and if i don't understand a word , i'll just go search for the meaning.
  
3.2) What spoken languages are you fluent in?
+
'''3.2) What spoken languages are you fluent in?'''
 +
 
 +
I'm fluent with French & English
 +
 
 +
'''3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.'''
  
French & English
+
Never tried , but I think i can manage .
  
3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.
+
'''3.4) Do you give constructive advice?'''
  
3.4) Do you give constructive advice?
+
I trie to do so .
  
 
3.5) Do you receive advice well?
 
3.5) Do you receive advice well?
 
Yes  
 
Yes  
  
3.6) Are you good at sorting useful criticisms from useless ones?
+
'''3.6) Are you good at sorting useful criticisms from useless ones?'''
  
3.7) How autonomous are you when developing ? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want
+
Hmmm , if the criticisms isn't constructive , i find it less useless than the contructive ones
  
 +
'''3.7) How autonomous are you when developing ? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want'''
 +
 +
I would rather discuss intensively , i've already done the second option on other projects, but sometimes it can be usefull to do so , to see where my mistakes are and try not to do them again.
  
 
4) Project
 
4) Project
  
4.1) Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on?
+
'''4.1) Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on?'''
 +
 
 +
Yes , I selected " Improve AI by implementing global attack/retreat decision "
 +
I want to improve the AI by helping it doing the best move , depending on many factors .
 +
 
  
 
4.2) If you have invented your own project, please describe the project and the scope.
 
4.2) If you have invented your own project, please describe the project and the scope.
  
4.3) Why did you choose this project?
+
'''4.3) Why did you choose this project?'''
  
4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".
+
Sounds like it's fun , and I think it will greatly increase my programming skills in c++
  
4.5) Include as much technical detail about your implementation as you can
+
'''4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".'''
  
4.6) What do you expect to gain from this project?
+
I booked a week-end in Jun for a Medieval Fair , it will be the second or the third week end of Jun.
 +
I also have exams at the end of Mai so i won't be there often during that month .
  
4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
+
'''4.5) Include as much technical detail about your implementation as you can'''
  
 +
'''4.6) What do you expect to gain from this project?'''
 +
 +
Increase skills in C++ programming and teamworking with more than 1 person
 +
 +
'''4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?'''
 +
 +
I would stay if the team is great .
  
 
5) Practical considerations
 
5) Practical considerations
  
5.1) Are you familiar with any of the following tools or languages?
+
'''5.1) Are you familiar with any of the following tools or languages?'''
  
     Git (used for all commits) :
+
     '''Git (used for all commits)''' : No
     C++ (language used for all the normal source code) :
+
     '''C++ (language used for all the normal source code)''' : No , but i'm good with C , so I think C++ will be ok
     STL, Boost, Sdl (C++ libraries used by Wesnoth) :
+
     '''STL, Boost, Sdl (C++ libraries used by Wesnoth) : '''Never used SDL directly , but a fork from my University , which is easier to use .'''
     Python (optional, mainly used for tools) :
+
     '''Python (optional, mainly used for tools)''' : No
     build environments (eg cmake/scons) :
+
     '''build environments (eg cmake/scons)''' : No
     WML (the wesnoth specific scenario language) :
+
     '''WML (the wesnoth specific scenario language)''' : No
     Lua (used in combination with WML to create scenarios) :
+
     '''Lua (used in combination with WML to create scenarios)''' : '''Had a look at it while looking for Wow addons'''
  
5.2) Which tools do you normally use for development? Why do you use them?
+
'''5.2) Which tools do you normally use for development? Why do you use them?'''
  
 
I usually use Kdevelop 4 on Debian as it's very powerfull and complete .
 
I usually use Kdevelop 4 on Debian as it's very powerfull and complete .
  
5.3) What programming languages are you fluent in?
+
'''5.3) What programming languages are you fluent in?'''
 +
 
 +
I'm fluent in C programming
  
5.4) Would you mind talking with your mentor on telephone / internet phone? We would like to have a backup way for communications for the case that somehow emails and IRC do fail. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably *only* add this number in the application for you submit to google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of "there is no way to contact you" does arise!
+
'''5.4) Would you mind talking with your mentor on telephone / internet phone? We would like to have a backup way for communications for the case that somehow emails and IRC do fail. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably *only* add this number in the application for you submit to google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of "there is no way to contact you" does arise! '''

Revision as of 14:30, 18 March 2014


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



This is a Summer of Code 2014 student page


ATTENTION

This page is not finished yet

Improve_AI Strategy

Contents

- Description of the projects - Usefull links

Description

Vahen Improve_AI

I would like to improve the AI by implementing Global attack / retreat decision.

Facts : Power of the Units around depending on various factors

Hypothesis : Determine what the enemy is going to do based on the facts .

Decision : Make the best move depending on the hypothesis previously set .

To do so I will use probality theory to determine what is best move to do.

Usefull_links

Here are some usefull links about Probality theory .

Probability theory
Event
Bayes' theorem

Main_Part

IRC

Vahen

Questionnaire

1) Basics

1.1) Write a small introduction to yourself.

I'm a 21 year old student in my 2nd year of Mathematics & Informatic at Paris-est Marne la vallée University

1.2) State your preferred email address.

chris.xelo.pico@gmail.com

1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?

1.4) Why do you want to participate in summer of code?

It would be great to code during the summer while earning money, it will also help me to improve my programming skills while helping other people .

1.5) What are you studying, subject, level and school?

I'm studying Mathematics ( probality , linear algebra , combinatory ) and computer sciences ( C language , Unix-shell scripts , algorithm, Databases(My Sql) , Php ), second year of License at Paris-Est Marne la vallée University

1.6) What country are you from, at what time are you most likely to be able to join IRC?

France , while in summer , i will be able to join IRC from 12AM GMT+1 to 2-3AM GMT+1

1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.

I don't have any commitments for the summer period , i'll take some vacation 1 week in August , i still have to decide when exactly

2) Experience

2.1) What programs/software have you worked on before?

Projects at my University , little games like Snake , Chomp , a Maze , and lately the Travelling salesman problem . All in C langage

2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)

No

2.3) Have you participated to the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?

I've never participated , it's my first time .

2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.

No , but I use open source programs everyday

2.5) Gaming experience - Are you a gamer? Yes

2.5.1) What type of gamer are you? Confirmed , between Casual & Hardcore

2.5.2) What type of games? RTS games , like starcraft Moba , as Lol MMORPG , Like world of warcraft JRPG , final fantasy , chrono trigger etc... RPG , like oblivion , skyrim, FPS . So all sorts of games

2.5.3) What type of opponents do you prefer?

Depends on the type of game , but usually i prefer fighting against an AI

2.5.4) Are you more interested in story or gameplay?

It really depends on the type of game , for example , on a RPG , i think they are both important , whereas on a RTS game , i would focus on gameplay before story .

2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.

No. But if i played , i would go for single player .

2.6) If you have contributed any patches to Wesnoth, please list them below. You can also list patches that have been submitted but not committed yet and patches that have not been specifically written for GSoC. If you have gained commit access to our repository (during the evaluation period or earlier) please state so.


3) Communication skills

3.1) Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.

I'm fluent with written English ,and if i don't understand a word , i'll just go search for the meaning.

3.2) What spoken languages are you fluent in?

I'm fluent with French & English

3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.

Never tried , but I think i can manage .

3.4) Do you give constructive advice?

I trie to do so .

3.5) Do you receive advice well? Yes

3.6) Are you good at sorting useful criticisms from useless ones?

Hmmm , if the criticisms isn't constructive , i find it less useless than the contructive ones

3.7) How autonomous are you when developing ? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want

I would rather discuss intensively , i've already done the second option on other projects, but sometimes it can be usefull to do so , to see where my mistakes are and try not to do them again.

4) Project

4.1) Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on?

Yes , I selected " Improve AI by implementing global attack/retreat decision " I want to improve the AI by helping it doing the best move , depending on many factors .


4.2) If you have invented your own project, please describe the project and the scope.

4.3) Why did you choose this project?

Sounds like it's fun , and I think it will greatly increase my programming skills in c++

4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".

I booked a week-end in Jun for a Medieval Fair , it will be the second or the third week end of Jun. I also have exams at the end of Mai so i won't be there often during that month .

4.5) Include as much technical detail about your implementation as you can

4.6) What do you expect to gain from this project?

Increase skills in C++ programming and teamworking with more than 1 person

4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?

I would stay if the team is great .

5) Practical considerations

5.1) Are you familiar with any of the following tools or languages?

   Git (used for all commits) : No
   C++ (language used for all the normal source code) : No , but i'm good with C , so I think C++ will be ok
   STL, Boost, Sdl (C++ libraries used by Wesnoth) : Never used SDL directly , but a fork from my University , which is easier to use .
   Python (optional, mainly used for tools) : No
   build environments (eg cmake/scons) : No
   WML (the wesnoth specific scenario language) : No
   Lua (used in combination with WML to create scenarios) : Had a look at it while looking for Wow addons

5.2) Which tools do you normally use for development? Why do you use them?

I usually use Kdevelop 4 on Debian as it's very powerfull and complete .

5.3) What programming languages are you fluent in?

I'm fluent in C programming

5.4) Would you mind talking with your mentor on telephone / internet phone? We would like to have a backup way for communications for the case that somehow emails and IRC do fail. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably *only* add this number in the application for you submit to google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of "there is no way to contact you" does arise!