SummerOfCodeProposal csaunders

From The Battle for Wesnoth Wiki
Revision as of 21:52, 24 March 2009 by Csaunders (talk | contribs)

Introduction

This is still being worked on

Preferred Email

Nicknames

  • IRC - csaunders
  • Wesnoth Forums - csaunders

Why I want to participate

I've been trying to get involved in Open Source for quite a while. This is my second year trying to get involved. Last year I was a full-time student in the summer and it was in my best interest not to get involved. I am also interested in getting involved because I feel that the mentorship helps make getting involved less imposing on students and those new to the community.

Studies

I am currently a 4th year Computer Science student at the University of Ottawa in Ottawa, Ontario, Canada

Patches

None to date

Experience

Programs / Software

The following is a list of programs and software that I have worked with on previous projects either through school or while on work term

  • Java
    • Lucene - Indexing software
    • LIRE - Tool for Indexing Images
    • Apache Tomcat
    • Apache Xerces
  • C/C++
    • OpenGL API
    • Basic work with pipes and pthreads
  • Ruby
    • Ferret - Indexing Software
    • REXML

Team Environment Experience

While on work term I worked in an Agile software development environment in a relatively small company (approx 16 developers). I was working in a 3 man team for data interpretation from 3rd parties. The data I was working with was in CSV and XML format and I was required to turn it into a standardized form for our application to use. Through that term I was required to use tools like cut quite extensively.

Also in school I have worked in teams from 2 to 4 people for various projects in various roles. These ranged from documentation and requirement analysis to software development.

Previous Summer of Code Experience

As stated earlier I did try to get involved previously. The project in question was Apache Derby, and due to school I was not chosen as a GSoC participant.

Open Source

Involvement

Although I am not involved in development of any open source projects, I have been quite active in making Open Source a viable option to students on my campus. This has included informing our first year students (101ers) of the alternatives to such things as Internet Explorer and MS Office.

Along with my student association we have informed students in both Computer Science (and related fields) as well as other students of how Open Source is possible.

Gaming Experience

I am a gamer and have been playing video games since I was rather young. Most of my gaming has been done on consoles, and I only recently got into online gaming (around 2005).

What type of Gamer

I wouldn't say that I am a hardcore gamer. I appreciate games, and can get quite involved in them but I prefer short sittings (1 - 1.5hrs).

= Game Types

Most of my interest is in turn-based strategy games such as Final Fantasy Tactics, Civilization, Valkyria Chronicles, etc. I also consider myself a somewhat retro gamer, considering my appreciation for most games on the Super Nintendo.

The fact that Westnoth has that retro-like look is what drew me to it initially.

I also have interests in your typical games types like Shooters and RTSs'

Preferred Opponents

Due to how I am rather new to online gaming, I lack an effective strategy for human players. I prefer to play against AI, though will play multi-player games with friends (usually RTS). While playing with friends, I use this time to help develop a better strategy for gaming.

FPS is an exception, I just need to work on my twitch skills :(

Story or Gameplay?

It would have to be a combination of both. A game with an awesome story but horrible gameplay typically isn't of interest to me because of the poor mechanics, thus ruining the immersion.

On the other hand, a game with amazing gameplay and no story typically leaves one feeling with no sense of direction or goal.

I feel that there is a balance that needs to be met in a game that makes it both immersive and provides quality game mechanics to keep that immersion existent.

Have I played Wesnoth

I have played it from time to time. I have not spent an extensive amount of time playing the game, but while playing it I found it to be quite enjoyable.

Communications

English

I am completely fluent in English.

Player Interaction

I tend to get along with players rather well. I usually don't waste my time with players who are disrespectful to people in a game.

I have yet to deal with gamer feedback on a game I have been working on.

Constructive Advice

I try to do my best to provide the best advice possible to people.

Receive Advice?

I try not to take any criticism personally. I understand that most criticism has to do with what is being done in the code and not at me personally.

Sorting out Criticism

I try my best to weed out useless criticism that may lead to dead ends.

Project

Which Project

The project I chose was implementing a Stats Server. I would like to implement a much more user friendly version that is both easy to use and easy to add more features to.

Why

I am interested in dealing with data, and I have on previous occasions done web app development. Sirp talked to me on the IRC and recommended this task to me. After looking at the current implementation and talking to Sirp, I decided that this is indeed a project I would be interested in working on.

Timeline

  • April 15 - April 30
    • Become familiar with the data that is stored in the database and what it looks like
    • Analyze the Perl script that Sirp sent me as an example of how things could possibly look like
    • Set up a basic webapp on my dev machine - most likely to be the Rails framework but open to other ideas
    • Note: I have exams throughout the month of April, so there is no definite way I can get everything done perfectly, but I will try my best given the circumstances.
  • May 1 - May 15
    • Establish a staging server which has either duplicate data from the current implementation or with a large enough subset to be usable for my own purposes
    • Set up a basic framework for extracting the data from the database and displaying it on the page
    • Begin drawing up plans for how the new system will be implemented. This will probably be done in IRC with Sirp and others to help in determining exact requirements as to what needs to be implemented as well as prioritization.
  • May 15 - June 30
    • Continued Definition of Features and their Implementation
      • I want to spend this time implementing as many features that will be required.
      • This is in no way intended to be fully feature complete but should much of the required functionality in place.
      • Bugs will most likely still exist by the end of this iteration.
  • July 1 - Canada Day
  • July 2 - July 30

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?

5) Practical considerations

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

   * Subversion (used for all commits)
   * C++ (language used for all the normal source code)
   * Python (optional, mainly used for tools)
   * build environments (eg cmake/autotools/scons) 

5.2) Which tools do you normally use for development? Why do you use them?

5.3) What programming languages are you fluent in?

5.4) What spoken languages are you fluent in?

5.5) At what hours are you awake and when will you be able to be in IRC (please specify in UTC)

5.6) 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.