'''This proposal is a draft and it will be changed.'''
elf11 - AI Project
TODO: Write a small (1-4 sentences) description of your proposal here.
I am thinking about working on one of the AI projects, the total defense project or the refactoring of the recruitment strategy. I still have to talk with a mentor and write a patch for the project, so after doing that and getting better understanding of the existing code I will update this section.
TODO: Add more first-level sections to detail your proposal
elf11, elf_11, elf__11
1.1) Write a small introduction to yourself.
I'm elf11, a 3rd year ComputerScience student. I have been studying programming for more than 6 years, I like games(playing and also sticking my nose through their source code). I am a Linux and open source suporter, I have also participated in another open source project.
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?
Like I said before I am a suporter of open source and I think that Summer of Code is a good oportunity to join a project and see what everything is about. I was looking through the project ideas and then I saw the Wesnoth project and since I like game programming I gave it a chance. I think this is a good oportunity to leave a mark on something that many other users will enjoy.
1.5) What are you studying, subject, level and school?
I am currently a 3rd year student, at the Politehnica University of Bucharest, Automatic and Computer Science Faculty. In the last 3 years I had a lot of programming courses, some of them are listed below(I will list just those that are relevant to this project, though if asked I will add the full list of subjects I have taken):
* Data Structures and Algorithms
* Analysis of Algorithms(theoretical approach)
* Object Oriented Programming
* Computer Graphics
* Algorithms Programming(hands-on approach)
1.6) What country are you from, at what time are you most likely to be able to join IRC?
any time between 6AM and 11PM 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.
2.1) What programs/software have you worked on before?
I have worked last Summer for a local company developing a game for the iOS system. I have worked with the VisualStudio IDE for that project, using OpenGLES, C++ and the iOS SDK.
2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)
Yes, I did. Besides the project I worked last Summer on - where I worked within a team, I also had different school projects that asked for working in a team.
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 participated in the Google Summer of Code before.
2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
At the moment I am not involved with any open source development projects.
2.5) Gaming experience - Are you a gamer?
Yes, I am.
2.5.1) What type of gamer are you?
I used to play a lot of strategy games, my all time favourite being the now old Age of Empires and Civilization(II was my favourite one). Lately I have been playing more RPG games and MMO games, Diablo and Dota.
2.5.2) What type of games?
Like I said above, I like strategy games, Age of Empires and Civilization, after those 2 I didn't find anything in that style that I liked as much. I also play Victoria 2: A house divided, a simulation strategy game. On Linux I play Wesnoth, being one of the few good games that have been developed for this operating system. I also play Diablo(RPG game) and Dota.
Card games: I am an avid Poker player, also recently I have started learning Bridge.
Board games: I like playing Risk.
Also, sometimes Chess and Backgammon.
2.5.3) What type of opponents do you prefer?
I prefer challenging opponents, the kind of opponent that you do not really know what it will make next. Also, I like those who have a back-up strategy, in strategy games those who attack from more than one direction and do not leave their home town unprotected either.
2.5.4) Are you more interested in story or gameplay?
I think that stroy and gameplay can not be separated one from the other. If a game has a good story, then people would be more inclined to play it, they will wait with baited breath for the next chapter to unfold and will be willing to spend another hour in front of the PC just so they could advance to a higher level and see what waits them there. But, the gameplay is an important part too. If you have a good solid story but the game experience is not the best, the graphics are not at the standard that you are expecting them to be, the AI does not work, not being challenging enough or you can not move your troops as easily as it would be expected then the user experience it will not be great and they might not be convinced to play the game a second time. So, good story and gameplay interleave to make for a great game.
This being said, I consider there are people that are more interested in developing the gameplay and others that want more to develop the story, in this particular case I am more interested in working on the gameplay.
2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
Yes, I did play Wesnoth before hearing about your Google Summer of Code project, I usually play it in the evenings as a relaxation method - it is always a toss between Wesnoth and Mahjong so I do not really know for how long I have played it, but I like more the single player mode.
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.
I am looking through the sources and I want to have a discussion with one of the mentors beforehand :).
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 fluent.
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 am good at interacting with other players and other developers.
3.4) Do you give constructive advice?
I try that every time that I give advice to make it as constructive as possible and for that matter to also make it to the point.
3.5) Do you receive advice well?
Yes, I consider that I still have a long way to go in my development endeavour so advice from developers with more experience is always welcome.
3.6) Are you good at sorting useful criticisms from useless ones
I like to think that I am able to do that, but if I am doubting it then I ask for a 3rd,4th opinion and then I base my decision on that.
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 like to discuss the project at length before hand, to know exactly what it has to be done in order to achieve the goal, after that discussion I will do a raw draft and add on it as I go by. That is why I consider this starting period very important because I will get familiar with the project and the important parts that I should look after. During the project I like to ask question to know exactly what goes on, because I do not think that one can do a through work without seeing the whole picture.
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 am interested in the AI project, especially the total defense strategy or the refactor recruitment algorithm projects. I am not 100% sure which one it will be in the end, since I did not have that discussion with the mentor.
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 and artificial intelligence and I consider that both this project can add an improvement to the gameplay after they will be finished. Also, I worked last Summer as a developer for a game and I think that I will be well suited for this project and will be able to finish it.
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".
4.5) Include as much technical detail about your implementation as you can
4.6) What do you expect to gain from this project?
4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
I plan to be an active developer for Wesnoth regardless the outcome of this Google Summer of Code edition outcome. I consider that it is high time for Linux games to be as competitive as games from other platforms, developers play games too.
5) Practical considerations
5.1) Are you familiar with any of the following tools or languages?
Subversion (used for all commits)
Yes, I am familiar with it, I have used it before - git, svn.
C++ (language used for all the normal source code)
I would rate my C++ knowledge as 8(on a scale from 1 to 10), I am familiar with most of the aspects of this programming language(OOP concepts).
STL, Boost, Sdl (C++ libraries used by Wesnoth)
Not familiar with those libraries, have not used them before but I am willing to learn and I do not think this will hinder my progress on the project.
Python (optional, mainly used for tools)
I would rate my Python language as 7(on a scale from 1 to 10), if we are talking just about the scripting language then it will be higher(8.5), the first rating was done thinking about threads and parallel programming in Python.
build environments (eg cmake/scons)
I am familiar with cmake.
WML (the wesnoth specific scenario language)
I am not familiar with it but I am willing to learn.
Lua (used in combination with WML to create scenarios)
I am not familiar with it but I am willing to learn.
5.2) Which tools do you normally use for development? Why do you use them?
I usually use the vim editor, using Makefiles and creating libraries for most of my assignments. I use vim because I feel comfortable with it and the assignments are not that big in number of files. For compiling and debugging I use gcc and gdb and the linux terminal.
For bigger projects development I use Eclipse/CodeBlocks as an IDE. The IDE has the advantage of files being more easily to administrate and incorporated tools for compiling and debugging.
5.3) What programming languages are you fluent in?
C, C++, Java, Python
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 have nothing against other forms of personal contact, I will list my phone and skype contact details in the final application.