SummerofCode Aranair

From The Battle for Wesnoth Wiki
Revision as of 14:36, 15 March 2010 by Aranair (talk | contribs) (Created page with '{{SoC2010Student}} =Description= : aranair <br> irc : aranair (will pop by real soon) I am interested in a new implementation of the alliance system where I will intro…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

This is a Summer of Code 2010 student page


Description : aranair
irc : aranair (will pop by real soon)

I am interested in a new implementation of the alliance system where I will introduce the list of parameters that was listed out in the original post in the list of ideas (with modification). My take to this is that they should not be simply set to true or false but rather with more intricate levels to increase the dynamics through simple means...

Discussed this in more details in my page.


1.1) Write a small introduction to yourself.

An easy going person (easiest way to describe oneself lol). I know when to start working, and when to take the time off for breaks. I tend to play more and more games as the stress level increases then when it reaches a certain level, I stop all entertainment to finish up the work I have to complete. I know its a little weird, but that seems to be the very trend of how I work!

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 really wish to know more about open source games and softwares and know exactly how the workflow is. I have been studying programming languages for awhile and it just seems like there is no where I can find a 'use' for this interest for coding. And of course, the attractive amount of money given while I am doing something I like, is just additional lure.

1.5) What are you studying, subject, level and school?

I am currently in my 3rd year majoring in Computer Science at the National University of Singapore. ( I'm not sure if you know Singapore, but many people seem to not know when I tell them in games , its this little dot on the map right south of Malaysia heh. )

1.6) What country are you from, at what time are you most likely to be able to join IRC?

As mentioned above, I am from Singapore. Currently, I am only available at night ( PST 4am onwards? ) due to school and other commitments. However, during the summer, I am usually online in the day as well ( PST night ? )

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 other commitments during the summer period. I was planning to take a short 1 week vacation to perhaps Hong Kong, but it is cancelled because my partner will not be interning instead.

2) Experience

2.1) What programs/software have you worked on before?

(not quite sure if you meant had experience with, or created before but here goes)
Programming languages related:
- Microsoft VS 2005/2008 for C++ and C#
- DrJava, NetBeans for Java.
- JSpin a little right now to model concurrent programming in school.
Non programming languages related:
- Adobe image editting softwares: PS/Illustrator/Dreamweaver
- Solidworks in College awhile ago
- .....and other common programs everyone worked on before.

2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)

- A year ago, worked on a project in a team of 3 to create a software solution for a specific scenario/requirement pre-fixed by school lecturers. It was pretty trivial, in that there was much flexibility regarding the requirements and there wasn't any clients to please at all.

- I am currently working in a team of 6 people, on a game files synchronization software that is planned to be publicly released to the public. It has been ongoing for 8 weeks and will soon see the public in another week or 2 for the beta release.

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 GSoC before. I'm in my third year, the only time I would have attempted would be probably in my 2nd year. In the 1st year, I wouldn't dare to imagine myself working in an industrial/real world environment at all. I probably would have joined, last year (year 2) if I actually heard about it. I only just found out about this when I read my university's digest emails.

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 have not been involved with any open source developement before, and it is the primary reason why I would like to learn all about the workflow.

2.5) Gaming experience - Are you a gamer?

Yes, too much so..

2.5.1) What type of gamer are you?

Avid? I do not go for graphics, I go for more gameplay (strategy and what not)

2.5.2) What type of games?

I play a wide range of games ranging from totally graphicless M.U.Ds (multi-user dungeons) online to almost all Blizzard games. (at least I used to, currently too caught up with my school work to game much :/) Also, upon finding Battle for Wesnoth, I have been trying to find time to look into the game to find out the inner workings of the game.

2.5.3) What type of opponents do you prefer?

Heh. I prefer opponents who are smart, yet not smart enough to beat me (I know, its ego speaking)

2.5.4) Are you more interested in story or gameplay?

Gameplay I believe but usually storyline shouldn't be too far behind if the gameplay is good enough for me.

2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.

Honestly, I have only found out about Wesnoth when I was looking through the 2009 list for GSoC. I have installed the game, and until now, honestly I have only tried the Heir to the Throne campaign on single player. I am also aware that some projects might require a more in-depth knowledge of the game but I will more than willing to spend time on it (as well as the code base behind it of course).

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.

I have not submitted any patches but I am actually looking at one of the "Easy Coding tasks" to begin with, I have svn checked out code (1.6 version I believe) and have started looking at the bug#7470 (MP chat font - small request) just to get a first-hand rough idea of the codes right now.

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 believe I am sufficiently proficient in written English as well as spoken English as English is my primary language in my country and schools.

3.2) What spoken languages are you fluent in?

I am also fluent in Chinese, Cantonese, and conversational in French as well.

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 have been playing interactive games for some time now, so..I do not think communication would be a problem for me.

3.4) Do you give constructive advice?

I am not too sure of that myself really. I tend to be more assertive when I give advice I think, and others might be taken aback from the slightly blunt approach. (from feedbacks heh)

3.5) Do you receive advice well?

Constructive ones yes, but I tend to want to reason it out with the person if I feel that it might not be so beneficial to what I am doing. I am quite reasonable in this area in that so as long as there is reason for this advice, I would accept it most definitely.

3.6) Are you good at sorting useful criticisms from useless ones?

I think I am pretty ok in this area, I am working in a team right now and although sometimes I get a little confused as to when I should be changing my designs when my team members give some random comments but in the end I think my judgements are going fine!

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.

Although I am aware that no matter how much planning there is the final product might not be what you perceived it to be, I still prefer to discuss it more intensively before starting to code. Throw-away prototypes are commonly used and I am ok with this technique, but of course if given a choice, I prefer to keep them to the lowest level I can manage.

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 wish to handle the creation of the new alliance system.

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 want to be more involved with the gameplay aspect instead of doing something more technical such as the spritesheets idea, albeit knowing very well that this project requires more knowledge of the game. However, I believe knowing a game isn't something that difficult with my gaming experience, it just takes a little time if you are willing.

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".

May 24th is the first coding day, I would have finished my exams way before that. My exam periods are from 20-24th of April till about 8-9th of May this year. Other than this, I also have a weekly squash competition league that I must be present for, for one night every week.

4.5) Include as much technical detail about your implementation as you can

I am currently still looking at the code in hand, and trying to fix one of the feature request in Easy Coding and gaining as much insight in the game as possible. (Will update this portion more as I gain more knowledge and insight of the game!)

- Since there is already a page on this, along with requirements about how it SHOULD be made, I will discuss the issues that I have identified.

- I propose a addition of a tribute option/privilege to the list of parameters too. Perhaps if you pay a certain tribute you could then join an alliance or gain certain rights to an alliance. The leader of the alliance could set a minimum before anyone can join etc.

- I also think some of the parameters shouldn't be hard 1 or 0. Instead of being just true or false, the healers, or shroud, or fog information, could actually contain percentages to how effective, like how much healers would heal when their units approaches the healers for examples. ( I think there has been talk about units coming to healers instead right? ) There could perhaps be a system of selecting certain healers or certain areas to allow the other players to view/use.

( A simple level of trust instead could also be possible, instead of percentages to each of the parameters, a level of trust parameters could be added in, it defines fixed levels with fixed benefits to other players such as "Friend Status: all healers would heal 30% of capacity", or "Trusted: all healers would then heal 80%". )

In this way, combined with backstabbing it gives a more realistic feeling and would generate more combinations to how players can actually work together or work against each other. I am not entirely sure if the percetages or for parameters are possible to toggle with the current system or it might not fit the "simplicity" motto of the game, but I am more than willing to discuss this in further details to perfect the implementation.

- The shared victory should be enabled in MP, groups of friends could then gather to play together against each other and it would definitely add the game with better team dynamics?

- Certain criterion should be met before such victories are enabled in a MP game to avoid abuse, such as a minimum play time, a minimum number of players playing together to unlock it, a maximum number of times the player could do this with the same group of people etc.

- I have totally no idea about what the sharing of defeat mean really heh. That just didn't sound right to me. I mean if the all the rest of the players have allied for a shared victory, then there wouldn't be any one defeated in theory?

- I particularly like the idea of backstabbing. Not only does it open the field up to undercovers for victory, it also better model the 'real-world' kind of situation in wars where alliances might be temporary and swift.

4.6) What do you expect to gain from this project?

I wish to know as much about open source workflow as possible. I also wish to meet a group of avid developers who are willing to stay as friends even after this period. And of course, add a game I can always return to when I know I am bored.

4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?

The group of people I worked with during the course of the SoC. I think if they were friendly and helpful to me, I wouldn't mind at all, to stay and continue my works for Wesnoth. Of course, that would also depend on the community, whether they want the help from me or not!

5) Practical considerations

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

  • Subversion (used for all commits)

Not just yet, but i will be using subversion for my software's code in 2 days' time. Also I have been tinkering with TortoiseSVN to learn it earlier.

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

I coded in C++ awhile ago for a year roughly in school. Although I do not believe I have the full proficiency to handle the C++ code in Wesnoth yet, with online references and a little reading done, it would not be difficult.

None- for the the following technical skills unfortunately :/

   * STL, Boost, Sdl (C++ libraries used by Wesnoth)
   * Python (optional, mainly used for tools)
   * build environments (eg cmake/autotools/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?

I am currently using Microsoft Visual Studio 2008 for my software development in C#.

I used DrJava for simplicity, instead of NetBeans. I actually prefer typing some things out instead of intellisense or autocomplete kind of feature.

5.3) What programming languages are you fluent in?

Java, C++, C, C#

5.5) 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 am known to be online too much, heh but of course, a number isn't too much to ask I think? I'll add the number when i submit the application to google.