From The Battle for Wesnoth Wiki

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

This is a Summer of Code 2011 student page
Project: SoC_Ideas_LuaAI_2011


Qbunia - AI implementation guy

Hi my name is Jakub Ozga. I like to work on Ai exposing from c++ to lua. First of all i will do pregsoc work to get know which parts of AI are missing. Then I would do through plan which is written here [1].



SoC Application

SoC Application


1) Basics

1.1) Write a small introduction to yourself.
I am 20 years old. I am 2nd year student on Gdansk University. Like video games, also like programming in language that at this time i know, but i love to learn a new things which iam interested in.

1.2) State your preferred email address.
It is

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?
First of all money convices me a lot. I am always motivated to do the job if they pay me well. Also it is a great experience to work on some opensource project. Next reason is that i have a friend who also participate in gsoc so it is wonderful to talk about it and he helps me to get in. He succeded gsoc 2010 so he have some experience that is helpful for newbie like me.

1.5) What are you studying, subject, level and school?
I am studying a computer science. I am on 2nd year and like i said it is a University of Gdansk in Poland.

1.6) What country are you from, at what time are you most likely to be able to join IRC?
I am from Poland. Mostly iam online on irc from morning to evening.

1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.
In the end of July i like to code little slow. It is because I have final exams for 2nd year. Around mid term i would like to take chance of slow coding again if possible. It is because i planned a trip.

2) Experience

2.1) What programs/software have you worked on before?
Codeblocks, Visual studio, Dev, Netbeans,Vi, Matlab, Prolog-swi, SciTe, MSSQL server.

2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)
Unfortunately, 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 have not.Last year, friend tried to convice me but I thought it would be too hard for me etc so i did not try. Now I feel better about my skills and expierience so I am trying to get to gsoc this year.

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, I am not involved in any open source development project.

2.5) Gaming experience - Are you a gamer?

2.5.1) What type of gamer are you?
Last time I played some Quake live, but most of gametime I spend playing League of Legends.

2.5.2) What type of games?
I found that MMORPGs are boring if you play alone without friends. So I do not play mmorpgs like wow linage or similar because they need a lot of time to spend to get high level. I like reflex games and games that includes some thinking. I like getting a new lvl but farming lvls each day is boring.

2.5.3) What type of opponents do you prefer?
Better that I am in sense of skill. I do not get any fun beating some newbie kids. I like competition style like that I and oponnent have almost the same chances,skills or he is better that me so I can test my skills if I am that good to beat him. This brings me a lot of fun.

2.5.4) Are you more interested in story or gameplay?
If the story is based on anime story scheme then I am interested in story more that in other games. In most of games I am into gameplay. Sometimes the game serves a nice anime story so I also enjoy more by playing.L like to go through next levels to know what will happen next in the 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.
Some years ago friend showed me a Wesnoth game. I played the game like 1 month? I lean towards single player why? Never played multiplayer.

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.
Nothing from that.

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 am learning English for more than 14 years so fluency level of my English is quite high.

3.2) What spoken languages are you fluent in?
Polish, English, little German.

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 get used to rough community player. As i recently watch forums of LoL, I see a lot of complaining about no new patches or something else so it is quite normal for me that players are players.

3.4) Do you give constructive advice?
It depends to who I am aiming my words. If it is about someone who is trying to get better in some subject and he needs help of more experienced person for exmaple like me I am always in hand to tell him what he is doing wrong what he should do. I just go in straight words I do not say: it is nice work well done. I use words like: this was bad that was awful i would give u like 6/10 for that work, u can do it better.

3.5) Do you receive advice well?
I am open for any advice even if its shouting or insulting me. I always think about what they adviced me if teachers says it so i know that he have more knowledge than me so i have to listen to him.

3.6) Are you good at sorting useful criticisms from useless ones?
Yes i do. If someone criticised me I always think about it.If i have a proofs or facts that what he said to me is a lie so i take that criticism as usless. If i get to facts and i can proof that this criticism is usefull so i take it as a usefull and keep it on mind.

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

First i have to set a plan for coding. In gsoc i can not write: Hi i like to be AI worker and thats it. I need to look at code files do a research in subject and get to know how everything works how it looks and what I am aiming for. What i want to code. Then i think about what i could code what classes structures and how it would work up generaly. Then i do the coding stuff.

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 would like to work on AI. I want to concentrate on exposing c++ funcitons to Lua. Making lua libs and then if there will be some time i would like to impelement some of my ideas.

4.2) If you have invented your own project, please describe the project and the scope.
I have not invented own project. As I said I like to implement idea of exposing.

4.3) Why did you choose this project?
It is because it looks like a medium difficulty. I do not like much network stuff. I did not have any project on studys that included network stuff so I am not experienced in this subject. First I thought about spritesheets but I have seen that a lot of ppl want to do that. So i thought i will take some more difficult than easy spritesheets. Then i found Ai which is not so hard i think. Plus I do not know why but I am interested somehow in AI even it is all based on if then phrases.

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 told about it above. If I would get to gsoc as a Wesnoth developer I would consult dates with my mentor. Before I will make a plan when I will do each part of the project I need to do more research.
4.5) Include as much technical detail about your implementation as you can
I still need to do more research about how I want to do this. At this time i know how Ai works using WML and engies. I know how to expose functions and classes written in c++ to lua. I am working on writing simple AI that is able to win fist map of Heir to the Throne scenario. I also trying to expose 1 or 2 c++ functions , to use them in lua. After doing those 2 tasks I will focus on planning how i will expose movement map and target list. Last task will be inventing new functions in lua which could be helpful to developers in creating new scenarios, eras. To do all tasks I need more time which I did not have last week. Soon I will update my progress.

  • First simple function exposed! I managed to expose function: get_leader_value. It is now callable from lua!
  • 2nd function exposed!:nearest_keep.
    • Patches
    • How i will do it !! MORE!Updates [2]

4.6) What do you expect to gain from this project?
Experience of course. 2nd is time. I mean I do not want to be bored of going everyday to the beach... I like to do some job like this which I am interested in:)

4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
Archers that dont need to come near enemy to shoot a arrow. It iss most annoying part of game.

5) Practical considerations

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

  • Subversion (used for all commits): Not
  • C++ (language used for all the normal source code): OFC!
  • STL, Boost, Sdl (C++ libraries used by Wesnoth):Not
  • Python (optional, mainly used for tools):Not
  • build environments (eg cmake/scons):Not
  • WML (the wesnoth specific scenario language): Yes last time i get to know what is WML
  • Lua (used in combination with WML to create scenarios): I still learning this but i have learned most of things about it.

5.2) Which tools do you normally use for development? Why do you use them?
Mostly i use C++ It is because i know this language good. I know that python is a great language, I think even better than c++ but on studies we have to code in c++ so that is why I normaly use it.

5.3) What programming languages are you fluent in?
C++, Java
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!
Sure, 0048513149796

This page was last edited on 18 April 2011, at 13:46.