SoC2012 Yokipi Total Defense AI
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 |
TODO: Organize the mess at the bottom back into a questionnaire format. Also, flesh out the timeline significantly.
Description
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.
IRC
Yokipi, HelloIRC
Timeline
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 |
TBD |
Week 2 | May 28 - June 3 | 10 hours |
TBD |
Week 3 | June 4 - June 10 | 10 hours |
TBD |
Week 4 | June 11 - June 17 | 20 hours |
TBD |
Week 5 | June 18 - June 24 | 50 hours |
TBD |
Week 6 | June 25 - July 1 | 20 hours |
TBD |
Week 7 | July 2 - July 8 | 20 hours |
TBD |
Week 8 | July 9 - July 15 | 20 hours |
Submit midterm evaluations |
Week 9 | July 16 - July 22 | 50 hours |
TBD |
Week 10 | July 23 - July 29 | 20 hours |
TBD |
Week 11 | July 30 - August 6 | 20 hours |
TBD |
Week 12 | August 7 - August 13 | 20 hours |
Debug and finalize the code Final evaluations |
Questionnaire
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 (edk@u.northwestern.edu) 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.