SummerOfCodeProposal lfernando

From The Battle for Wesnoth Wiki
Revision as of 16:39, 7 April 2010 by Lfernando (talk | contribs) (Questionnaire)


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


Contents

Description

lfernando - Implement persistent storage of gameworld data between semi-related scenarios

  • In Progress

IRC

lfernando

Questionnaire

Basics

Write a small introduction to yourself.

My name is Luiz Fernando and I'm a 23 years old programmer/gamer/graduate student.

State your preferred email address.

lucifernando@gmail.com

If you have chosen a nick for IRC and Wesnoth forums, what is it?

lfernando

Why do you want to participate in summer of code?

I'm very eager to get involved with the open source world and I want to know how it is to contribute in a big project used by many, many people. GSoC seems like a rewarding way to join an open source project.

What are you studying, subject, level and school?

I'm a master student on UNICAMP(University of Campinas) where I graduated two years ago. My research subject is graph theory.

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

I'm from Brazil(UTC-3) and I may be able to be on IRC mostly any time of the day on weekdays. IRC meet times should mostly depend on my mentor's time schedule.

Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.

I just took a week-long vacation on the last week of March, so I don't plan to take any longer break until September. And besides, we have winter here in Brazil on the June - August period =).

Experience

What programs/software have you worked on before?

I've worked on a music technology institute inside my university called NICS, where I started development for a music experimenting tool/improviser called Chord Jammer. Also, I fixed some bugs for a project called Javox. Both projects were implemented on Java.

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

No! That's one of my main interests to participating on this project, to know how it is to work on a big project. One of my main complaint from the above mentioned projects is that I had to do it by myself

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?

Never participated on any Summer of Code project.

Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.

My first experience with open source is Battle for Wesnoth.

Gaming experience - Are you a gamer?

Yeah!

What type of gamer are you?

Well, I play videogames since I was a little kid(the first game I remember playing was megaman 4 on NES when I was 5 years old). I kept playing until now, so I guess I'm some avid gamer =P. Heck, even while I was fixing the bugs, lots of times I would just take a break and resume playing Httt =P.

What type of games?

Fighting games(Street Fighter, Soul Calibur), strategy games(BfW, Warcraft, Age of Empires, Civilization), rpg's(final fantasy series, chrono trigger, fallout, world of warcraft, lots of other japanese rpgs), action games(mario, castlevania), shooters (Half-Life, Quake),

What type of opponents do you prefer?

The clever, unpredictable ones.

Are you more interested in story or gameplay?

Tough question! But I guess videogames are all about "playing", and some games don't even have a discernible story, so I'll choose gameplay. But some games(Fallout 1/2, Breath of Fire 2, Final Fantasy VII, Mother 3) grabbed me for the story alone if not for the great gameplay.

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

I played mainly singleplayer campaigns on Wesnoth.

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.

Fix for bug #14114, on patch #1538. Reported minor bug #15601, and fixed it on patch #1525. Implemented a small example regarding the persistency idea, recorded on http://wesnoth.pastebin.com/g1hMez2J.

3) Communication skills

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 think my written english is almost on fluent level.

What spoken languages are you fluent in?

Portuguese and English. I know a little bit of French and Japanese.

Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.

Yes, I prefer when the conversation is enjoyable, but I can handle angry complaining and trolling too if needed.

Do you give constructive advice?

Of course.

Do you receive advice well?

I think so. If it's the advice is constructive, I'm very attentious.

Are you good at sorting useful criticisms from useless ones?

Yes.

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?

If it's a simple task I'll do it myself. If it's a bit more complicated, sometimes I'll sketch my idea in an example piece of code or some template files. Then I'll discuss it until I I have a clear idea of what to do. Then I'll code it until it is implemented. Of course, doubts and questions arise as the project flows, and I'm eager to ask them as soon as possible.

Project

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?

Project described below.

Why did you choose this project?

First of all because I enjoyed playing the game =). Also, it is "minimalist" and has concepts which are very simple to grasp. That suggested some kind of elegance. The community is really friendly and present and answered my begginer questions promptly. And finally, when I downloaded the source and started studying it, it felt like it was made by folks with a firm grasp of C++ and I could learn a lot if I could understand the code and hack through it.

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

  • April 26 - May 17: Make persistence work for singleplayer.
  • May 15 - June 4: Make persistence work for multiplayer.
  • June 6 - August 6: Finish the "gamemaster" for MP.And maybe some MP add-on/map that uses this system.

Right now, I'm not enrolled to school disciplines, and I don't have any exams to make. My only time-expensive activity is working on my Master Thesis. I'll keep working on my thesis, but I plan to finish it only by the end of the year. While I'm doing this project, it'll be my first priority to finish it on time.

Include as much technical detail about your implementation as you can

See it on project description below.

What do you expect to gain from this project?

Having fun with open source development. Learning how to work with many people on a big software project. C++ Enlightenment. =)

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

Yes, It'll be a pleasure to help the project whenever I have spare time =)


Practical considerations

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

   * Subversion (used for all commits)

Yes.

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

Yes.

   * STL, Boost, Sdl (C++ libraries used by Wesnoth)

STL and some Boost. Never worked with Sdl before.

   * Python (optional, mainly used for tools)

Wrote mostly little programs with it. Seems a really well designed language, eager to use it more on the future.

   * build environments (eg cmake/autotools/scons)

I know SCons and Autotools. Am using SCons to compile Wesnoth builds as for now.

   * WML (the wesnoth specific scenario language)

Started learning it and guess I know it well enough to understand this problem.

   * Lua (used in combination with WML to create scenarios)

No.

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

Eclipse. Gedit for programming in the small.

What programming languages are you fluent in?

C, C++, Java.

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!

Yeah! You can have my cell phone number and call me when any problem arise. You can have my family house number too, but if you want to call it'd be better be really important because my mother can't understand any english! =-D