Difference between revisions of "Improve AI"

From The Battle for Wesnoth Wiki
Line 9: Line 9:
 
==Contents==
 
==Contents==
  
- Description of the projects
+
- Description of the project
 
- Usefull links
 
- Usefull links
  
Line 50: Line 50:
  
 
'''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?'''
 +
 +
Vahen
  
 
'''1.4) Why do you want to participate in summer of code?'''
 
'''1.4) Why do you want to participate in summer of code?'''
Line 57: Line 59:
 
'''1.5) What are you studying, subject, level and school?'''
 
'''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
+
I'm studying Mathematics ( probality , linear algebra , combinatory and mathematical analysis) and computer sciences ( C language , Unix-shell scripts , algorithm, Databases(My Sql) , Php ),i'm in my 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?'''
Line 65: Line 67:
 
'''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 .
  
 
2) Experience
 
2) Experience
Line 71: Line 73:
 
'''2.1) What programs/software have you worked on before?'''
 
'''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 .
+
Projects at my University , little games like a Snake , Chomp , a Maze , and lately the Travelling salesman problem .
 
All in C langage
 
All in C langage
  
Line 103: Line 105:
 
'''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 AI
  
2.5.4) Are you more interested in story or gameplay?
+
'''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 .
 
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.
+
'''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.
 
No.
Line 136: Line 138:
  
 
3.5) Do you receive advice well?
 
3.5) Do you receive advice well?
Yes  
+
Yes , if it helps me improve my skills , I always welcome them .
  
 
'''3.6) Are you good at sorting useful criticisms from useless ones?'''
 
'''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
+
Hmmm , if the criticisms isn't constructive , i find it less usefull 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'''
 
'''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'''
Line 166: Line 168:
  
 
'''4.5) Include as much technical detail about your implementation as you can'''
 
'''4.5) Include as much technical detail about your implementation as you can'''
 +
 +
I would to set a factor of "important" to determine which action is the best .
 +
Like "Would it be better to keep that village or leave it to take other one further on the map and risk loosing it"
 +
I would calculate what is the best for each unit , and depend of the result , the IA will attack or defend .
 +
It can be something like
 +
if(probability_enemyUnit_attacks >= 0.8)
 +
then defend
 +
The "0.8" valor is only there as example .
 +
It relys on many factors .
 +
  
 
'''4.6) What do you expect to gain from this project?'''
 
'''4.6) What do you expect to gain from this project?'''
  
Increase skills in C++ programming and teamworking with more than 1 person
+
Increase my skills in C++ programming ( and maybe others langages ) and teamworking with more than 1 person
  
 
'''4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?'''
 
'''4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?'''

Revision as of 15:00, 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 project - 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?

Vahen

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 mathematical analysis) and computer sciences ( C language , Unix-shell scripts , algorithm, Databases(My Sql) , Php ),i'm in my 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 a 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 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 , if it helps me improve my skills , I always welcome them .

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

Hmmm , if the criticisms isn't constructive , i find it less usefull 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

I would to set a factor of "important" to determine which action is the best . Like "Would it be better to keep that village or leave it to take other one further on the map and risk loosing it" I would calculate what is the best for each unit , and depend of the result , the IA will attack or defend . It can be something like if(probability_enemyUnit_attacks >= 0.8) then defend The "0.8" valor is only there as example . It relys on many factors .


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

Increase my skills in C++ programming ( and maybe others langages ) 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!