YKanarev AI impl

From The Battle for Wesnoth Wiki

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


This page is not finished yet


ykanarev - AI task implementation

TODO: Write a small (1-4 sentences) description of your proposal here.

TODO: Add more first-level sections to detail your proposal

TODO: Set the proper Category in the top of the page ([[Category:XYZ]]), to match the one you'd like to apply for, from the list on the main summer of code page (e.g.: [[Category:SoC_Ideas_AI_Global_strategy]]). Otherwise your idea will be marked as a new one.




1) Basics

1.1) Write a small introduction to yourself.
Yaroslav Kanaryov. I'm a fourth-year student of Novgorod State University. Also I'm a junior C/C++ developer in SPB TV.

1.2) State your preferred email address.

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?
I want to improve my skills(programming, english). Also it's a good chanse to contribute to open source. And money.

1.5) What are you studying, subject, level and school?
I enrolled in the program Bachelor of Applied Mathematics in Yaroslav-the-Wise Novgorod State University. Main subjects are: all kind of math(mathematical analysis, discrete math, mathematical logic, mathematical statistic, combinatorics, game theory, etc), some of programming(OOP(C++), logic programming(Prolog), functional programmin(Lisp), database, data structures & algorithms) In addition I finished some online courses: Game Theory(coursera), Computer Graphics(edx).

1.6) What country are you from, at what time are you most likely to be able to join IRC?
Velikij Novgorod(UTC+4), Russia.

1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.
Yes, as a full-time developer. I will take a vacation in June/July for SoC.

2) Experience

2.1) What programs/software have you worked on before?
I took part in ACM ICPC. Twice. It's gave me a good knowledge in data structures and algorithms. Also, I participated in Russian AI cup and implemented, as I think, not bad strategy. I was developing TBS game about one year ago, but project finished before release. In resault, I got experience in design and made simple base for TBS game. Also, I have studied Unity3d and C#. At this time, I work in SPB TV as junior C/C++ developer. I take part in improvement of existing project, multimedia transcoder. Here I got a lot of experience in C, a little bit less in C++ and more familiar with linux.

2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)
Yes, in ACM ICPC and SPB TV.

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?
No, I have not. I heard about this program in last year, but too late.

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 used some open source projects.

2.5) Gaming experience - Are you a gamer?
Yes, a little.

2.5.1) What type of gamer are you?
2.5.2) What type of games?
I prefer, strategy(HoMM3, Europa3, Stronghold), but my favorite is TES, particulary Morrowind. Also I played in mmorpg(WoW, betta test TES Online) and ZPG(godville.net). And, of course, Wesnoth is the best:). Also I like Go(Baduk). It's the best after Wesnoth.

2.5.3) What type of opponents do you prefer?
Any kind, but should be fun and interesting.

2.5.4) Are you more interested in story or gameplay?
Balance must be.

2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
I have a little experience with Wesnoth about five years ago. I cannot remember reasons why I stopped. Played only 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.
Ok, but need more practice.

3.2) What spoken languages are you fluent in?

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

3.4) Do you give constructive advice?

3.5) Do you receive advice well?

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
I can develop fairly autonomous, but discuss task and problems is helpful.

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 want to improve AI as it corellates with my experience and interests.

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 good memories of Wesnoth, I think. Also game development is interesting for me.

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".
//fill it later

4.5) Include as much technical detail about your implementation as you can
At first, I plan to investigate sources for deeper understanding AI arciture.

4.6) What do you expect to gain from this project?
Experience and fun, and improved AI.

4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
It will depend from results of SOC.

5) Practical considerations

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

  • Git (used for all commits)


  • C++ (language used for all the normal source code)


  • STL, Boost, Sdl (C++ libraries used by Wesnoth)


  • Python (optional, mainly used for tools)


  • build environments (eg cmake/scons)


  • WML (the wesnoth specific scenario language)


  • Lua (used in combination with WML to create scenarios)


5.2) Which tools do you normally use for development? Why do you use them?
NetBeans. It's a habbit, i think.

5.3) What programming languages are you fluent in?

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 will available by IRC/Skype/phone

This page was last edited on 19 March 2014, at 22:09.