SoC2012 Template of Student page

From The Battle for Wesnoth Wiki
Revision as of 16:32, 22 March 2012 by Sasu robert (talk | contribs)


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



This is a Summer of Code 2012 student page


ATTENTION

DO NOT EDIT THIS PAGE, SoC2012_Template_of_Student_Page, - MAKE A COPY!

Description

Sasu Robert - AI: Refactor recruitment algorithm

In general I would make AI improvements for the recruitment algorithm. First a simple greedy method of what we consider the best moves then update the algorithm using minimax trees (preferable negamax, as it is a bit faster), with alpha-beta pruning, if needed.

IRC

robert, _robert, __robert

1) Basics 1.1) Write a small introduction to yourself.

 My name is Robert Sasu and I study Computer Science at Polytechnic
 University of Bucharest, Romania.

1.2) State your preferred email address.

 sasu.robert@gmail.com

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

 robert, sasu_robert

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

 I want to participate in GSoC 2012 to gain as much experience as I can, 

to work in group, and to help opensource communities to develop their product. 1.5) What are you studying, subject, level and school?

 I study Computer Science at Polytehnic University of Bucharest, and this is

my 4th semester. 1.6) What country are you from, at what time are you most likely to be able to join IRC?

 I am from Romania, as I am having a complicated schedule, I can be online 

in general for 2 GMT till 21 GMT. 1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.

 I do not have any commitments for the summer period, I plan to take vacations 

after GSoC, in late August, early September. 2) Experience 2.1) What programs/software have you worked on before?

  Last year I worked at GIMP, I participated to GSoC 2011. 
  Networking and small games for school.
  Now, I am working on a project with 3 other students on making an ant bot 

(aichallenge.com), this is a shool project in Java.

  Rendering stuff for school.
  I was also administrating a Linux server, while being involved in a school project.

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

  I am developing now with 3 other students an ant bot (same problem as this 

year's aichallenge), as part of a school project. 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 have participated to last year's GSoC as a student at GIMP. I was working 

on the project Porting GIMP plug-ins to GEGL operation. I've completed all the tasks successfully. 2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.

  I am not involved in any open source development projects.

2.5) Gaming experience - Are you a gamer?

  When I have spare time then I am, in school time I can not permit to play much.

2.5.1) What type of gamer are you?

  Now I am just playing occasionally, I used to play a lot when I had time.

2.5.2) What type of games?

  Mostly RPG's(Skyrim, Risen ..) or MMORPG's(muonline), adventure games(Prince of 

Persia series), strategy games (Warcraft 3, Red Alert, Starcraft). 2.5.3) What type of opponents do you prefer?

  I prefer to have an opponent who can play well, but I don't really like to lose.

2.5.4) Are you more interested in story or gameplay?

  It is hard to choose, sometimes I am playing for gameplay, other times I am 

fascinated by games with an interesting 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.

  As I am am using Linux everyday(Ubuntu 11.10 currently), I tried a lot of 

games. I played in single-player mode, for 2-3 months. 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 SVN (during the evaluation period or earlier) please state so.

  I haven't committed any patches, yet.

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 have a CAE degree in English, and I am really fluent on it. I am generally 

learning new stuff's in English, as the documentations are best in English. 3.2) What spoken languages are you fluent in?

  English, Romanian, Hungarian.

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

  I've played MMORPG's a lot, so I am able to communicate with every player.

3.4) Do you give constructive advice?

  As far as I can, I am trying to do so.

3.5) Do you receive advice well?

  I do really like if somebody give advice how to play, how to recognize game 

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

  I am totally capable of doing so.

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 try to discuss some basic things, but after that I would code, try, 

optimize, and if the code is not good for anything, start all over again knowing what was wrong in the idea. I would try to code as general as it is possible, to be able to make changes quickly. 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?

  I chose AI: Refactor recruitment algorithm project from your project list. 

First of all, I think the major think to be concentrated on is analyzing the map terrain, with a good evaluation function on the computer's current situation we could really ease the development of a general AI. Then I would concentrate to create the best recruiting missions for the situation which was evaluated. 4.2) If you have invented your own project, please describe the project and the scope. 4.3) Why did you choose this project?

  I am interested in AI programming, I think I have good ideas how to achieve 

a great AI.

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 got an exam session from 21th of May till 7th of June, after that I can work 

as much as the project need, or even more. 4.5) Include as much technical detail about your implementation as you can

  First I would evaluate the current situation of the game, then try a greedy 

algorithm for each situation, creating missions and launching them as recruitment is needed. Then I could implement negaMax trees for a certain depth (small enough to not consume much resources), and choose the next best move. 4.6) What do you expect to gain from this project?

 I would be learning a lot of new things of AI, I would improve my coding skills. 

I would be also a member of an open source community. 4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?

 It depends on how much free time I will have next semester. But I would really 

try to stay in the community and improve the project as much as I can. 5) Practical considerations 5.1) Are you familiar with any of the following tools or languages? Subversion (used for all commits) I generally use git for commits, but I worked with subversion a several times C++ (language used for all the normal source code) Yes, I am using almost every day. STL, Boost, Sdl (C++ libraries used by Wesnoth) Until now I used STL and Sdl. Python (optional, mainly used for tools) I have done some projects in Python. build environments (eg cmake/scons) I have just compiled with them some software's. WML (the wesnoth specific scenario language) No. Lua (used in combination with WML to create scenarios) A little bit. 5.2) Which tools do you normally use for development? Why do you use them?

  I am normally using Eclipse or Netbeans(Java), DrRacket(for Scheme), Hugs(Haskell),

Microsoft Visual Studio 2010.

  It is really easy to work with Eclipse as you can put in the libraries you 

are working for, and you get really much information of any method/object within a big project.

  For communication I am using IRC and pastebin.

5.3) What programming languages are you fluent in? C,C++,Java,Scheme,Assembly,FPS. 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!

  I wouldn't mind, I will provide my telephone number.