SoC2012 Yokipi Total Defense AI

From The Battle for Wesnoth Wiki

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


My sincerest apologies to the team, it looks like I'm going to have to drop my application at this late point in time. Something came up, and I realized I would not have nearly the time I wanted to contribute and invest into this exciting project. The last thing I would want to do is to participate in this in a half-hearted manner. I hope to be able to return next year with more available time and renewed dedication.

I was not very deeply into the application process anyway [no patches submitted, Wiki page incomplete], so I hope I was a minimal waste of time to all the generous reviewers who took the time to present this opportunity. I hope to see everyone again next year!

I apologize once again, but thank you for all the help thus far.

TODO: Organize the mess at the bottom back into a questionnaire format. Also, flesh out the timeline significantly.


Ed Kim - Total Defense AI

Often, the best defense is a good offense. In Wesnoth, lacking either can get you slaughtered. It is particularly important that the AI learn not only to consider immediate gains and losses off a linear formula, but to take other considerations into account, especially some foresight into human reactions and macroscopic army flux. Similar to a chess engine, if the AI could learn to take "next move" heuristics into account as well as consider positional strategies such as defensive formations (line, square) by taking unit relationships into account, the AI would become a much more versatile and formidable foe.


Yokipi, HelloIRC

SoC Application

Submitted to google


   Week                Dates                   Time       Tasks
Week -1 April 7 - April 13 10 hours
Finish completing this project page
Program and submit at least 2 patches to become familiarized with the codebase and current implementations
Investigate the AI component especially
Week 0 April 14 - May 20 ~100 hours
Complete the game, and learn the gameplay inside/out
If necessary, do additional research into other SRPGs or strategies
Become increasingly familiarized with the codebase by continuing to contribute
Week 1 May 21 - May 27 10 hours
Week 2 May 28 - June 3 10 hours
Week 3 June 4 - June 10 10 hours
Week 4 June 11 - June 17 20 hours
Week 5 June 18 - June 24 50 hours
Week 6 June 25 - July 1 20 hours
Week 7 July 2 - July 8 20 hours
Week 8 July 9 - July 15 20 hours
Submit midterm evaluations
Week 9 July 16 - July 22 50 hours
Week 10 July 23 - July 29 20 hours
Week 11 July 30 - August 6 20 hours
Week 12 August 7 - August 13 20 hours
Debug and finalize the code
Final evaluations


My name is Ed Kim, and I am a current Freshman/Sophomore at Northwestern University, with a dual-major in Computer Engineering and the Integrated Science Program (Mathematics, Biology, Chemistry, Physics). As someone whose interests lie primarily in the boundary of computer science and mathematics (potential candidates for additional degrees), my love and passion of programming leans particularly towards the theoretical computer science portions of things. Artificial Intelligence is among my top interests, and definitely a field I would like to explore in the upcoming years. As perhaps typical of many CS majors, intensive gaming has also been my companion throughout the years.

My preferred E-mail address is my university address at ( and I currently go by "HelloIRC" on IRC, though I may pick a more suitable nickname eventually.

My interest in participating in the summer of code, despite a somewhat inconvenient schedule, goes beyond simple education and stems more genuinely from an insatiable thirst of education and experience more than anything else... Being still young to the university, my desire is to approach and experience first-hand what true application can be like as quickly as possible.

I am from the United States, and I will most likely be available (and on IRC) during school post-dinner all the way to midnight. Once school ends mid-June, I have a short summer camp session, but I should still be able to code during that time, as my commitments are limited to evening activities, so that should not offer any interruption. Once my vacation begins in full, I will be available and online all day, so as to devote myself as fully as possible to the project.

Currently, while I participated in numerous programming competitions throughout high school and as much as I could during college, I have very little experience working with a team on major projects, outside of school-required group projects. As both my internship and the majority of my hobby works are small scripting assignments or lesser solo development projects, I feel like this would be a great experience to delve into what could truly be a great cohesive team experience. Having been a bit enthusiastic for such an opportunity in the past, I already have most of the necessary repository software set up and ready.

As for gaming, it has become an important feature of my life, and something that is an inseparable part of my life and my ambitions. While recent priorities, namely academics, over the past years has rendered my playing hours sparse, I still enjoy keeping up with the gaming community, news, and networks and consider myself a hobby gamer when time allows. Originally heavily invested in game design, it is still something that I feel attached to, and games are no less a part of me than my love of math and code. My primary picks for games are of the puzzle and strategy genre, with RPG and adventure also suiting my tastes. I tend to prefer human opponents, due to the misfortune of the common underdeveloped AI, but when the AI trumps what the human can accomplish, in a truly tactical and strategic rather than physical manner, it provokes in me the most greatest sense of awe, fascination, and admiration, most likely leading to my interest in artificial intelligence. To me, gameplay has always been the core of any game, but at the same time, I feel that no game is complete without its moving storytelling elements.

I have played Wesnoth indeed! While our relationship was short, I did enjoy it, and as a fan of such SRPGs (Fire Emblem, Super Robot Wars, Front Mission), it was unique in its own ways, and certainly a lovely experience. While I did not make it far across the single player, I would love the chance to get to play through it again, and this time finish it all the way.

I am fluent in English and spoken Korean, and am capable of reading and understanding Spanish. I am also familiar with basic Japanese.

I feel confident in my capabilities of tolerance, both in dealing with arguments within the team, and any problems that may arise from the public community. I enjoy tossing around ideas when each side has something unique to contribute to the table, and am also rather content purely listening when the influx of commentary becomes great. While I cannot always give immediate sound advice, especially being an amateur in this field, I take pleasure in working together with people to find a conclusion and solution that they are most comfortable with, as an engineer and problem solver. As for receiving advice, I greatly enjoy and desire constructive feedback, and absorb most of what is tossed at me in order to internalize and re-adapt my actions, taking into account the existing circumstances and new feedback.

As for coding, at the moment, I feel more comfortable having a solid footing of knowing the precise direction and structure of the code to write before engaging in the actual coding process, so I believe that active communication will became key to my understanding. Hopefully, I will be able to interact with the development team to a good balance and degree of mutual support.

While the Ideas List is currently a bit intimidating and overwhelming to me, the AI departments look most appealing and interesting to me, and are the cores of what I would be most interested in. Particularly the Total Defense already registers in my mind certain preliminary outlines of possible nodes and algorithms that could be used to implement them... It all seems really interesting!

However, still being so fresh to everything, with only confidence in computer science theory and little practical experience under my belt, what I wish for most is to work with the group to locate the best fit and locale for me to work in, whatever sector of the game that may be in.

I want to work on this project whenever time allows, investing my heart and soul into something like I have not before. During the academic year, which lasts until mid-June for Northwestern, I will have somewhat limited time to contribute, particularly not during classtime and especially not during finals week. However, I should still find a few hours to code each day. Once school ends, I am off to counsel at a camp for a few weeks, during which my evening hours will be occupied, but I yet hope to have the majority of the day to code undisturbed. Once I return home from camp, I will be able to devote the entirety of my time to the project, as much as development allows. I truly hope to gain both the experience of a significant and major project, the education of artificial intelligence and its implementation, and the love of contributing to a nostalgic game that I admired.

I am comfortably fluent in Java and Python, and have a functional knowledge of C++, which I am readily willing to learn more of while handling a given assignment. I normally use Eclipse for the former two, and Visual Express for the latter, preferring to work on Windows but having an Ubuntu VM available on hand.

My personal cellphone number is (512)-919-0698, and I would love to be as accessible as possible to the team, and provide all the service that I can to the development of, Battle for Wesnoth.

This page was last edited on 9 April 2012, at 04:30.