SummerOfCodeProposal Hagaren/

From The Battle for Wesnoth Wiki
Revision as of 23:39, 16 March 2010 by Hagaren (talk | contribs) (created my GSoC Student page)
(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



Hagaren - Allowing use of spritesheets

I am interested in writing module which allow usage of spritesheets and will allow to convert easily old small images into new format.


1) Basics

1.1) Write a small introduction to yourself.

My name is Jakub Skiepko and I am 21 years old. I come from Poland. I like programming and I want to be game developer.

1.2) State your preferred email address.

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

All of them are: Hagaren

1.4) Why do you want to participate in summer of code?

I am going to work as software engineer in future and summer of code is great opportunity to get some experience.

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

I am studying Double Degree Program in Computer Science and Mathematics at University of Warsaw. I am on second year of bachelor studies.

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

I am from Poland. Probably I can be available from 4PM to 9PM (GMT) and after 27.06 it will be possible for me to join IRC earlier.

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

I have no other plans for summer yet, but I believe there can be some in the future.

2) Experience

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

I mainly have worked on projects on my studies. There was a lot of algorithmic problems, but also programs which needed a lot of designing. My last big project was about databases. I was writing a client - server application in python with communication via XML. In my free time I also wrote a little game in SDL with my own object api to the functionalities I needed.

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

I had a subject in which I had to write a program or a library, every two weeks, with another student using svn.

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 never tried to apply for Google Summer of Code.

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


2.5) Gaming experience - Are you a gamer?

2.5.1) What type of gamer are you?

I am a gamer just a little, i like playing multiplayer games, but I do not want to spend a lot of time to master them. Also I like board games much.

2.5.2) What type of games?

Strategy(Westnoth, Civilization), adventure, shooters

2.5.3) What type of opponents do you prefer?

Living humans on the same level in mastering game as me.

2.5.4) Are you more interested in story or gameplay?

It depends on the quality of both factors, but rather 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 first played Wesnoth 1.4. I like this game.

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.

Any patches yet.

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 can communicate quite fluently in English, but I can make a mistake from time to time.

3.2) What spoken languages are you fluent in?

Polish and English

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 will love to speak about my work with anyone who have something to tell.

3.4) Do you give constructive advice?


3.5) Do you receive advice well?


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


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

When coding I like to have a project of what am I doing, I think it is good idea to discuss this project with others. From the other hand I think it is impossible to write a code which will be perfect from the beginning and some parts have to be completely rewritten. I can do most of this things by myself, but it is very helpful when someone points out my mistakes.

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 want to allow usage of spritesheets in Wesnoth.

4.2) If you have invented your own project, please describe the project and the scope.


4.3) Why did you choose this project?

Firstly it is great optimization task and I want to develop my ability to optimize code. Secondly I want to learn by it how Wesnoth works on various levels. At last I want to train more on using spritesheets, because I want to write a game in the future using this technology.

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

I am starting coding as soon as I get accepted and know enough about Wesnoth, in the worst scenario it will be on 24 May. I have exams from 07 Jun to 27 Jun. I also want to have some one week holidays during the summer.

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

I will list here my ideas. When I will think out something else I will add it here.

I will try to make api similar to this which is currently used, to make spritesheets available from code level. Spritesheets should have also information about single icons, it will be hold in XML file. Some tool to convert a lot of small pictures into one will be helpful so I will write it. Module should be flexible so spritesheets shouldn't have fixed properties.

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

Firstly I want to develop my programming skills, and get involved in community of programmers. What is more I will have my name put on authors list.

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

I want to create my own game someday, and adventure with the Wesnoth will be a great experience. The longer it will be the more skill I will gain.

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)
   * 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) 

I have used svn in my school projects, and I like it a lot. I think it is not difficult. C++ is my favourite language and I am quite skilled in using it. Python is the best option for me when I am writing some small programs and want to do it quick, but I realy appreciate the amount of python libraries. I can use most of STL functionalities. The only functionality from Boost which I was using was functional programming. Once I wrote small game in SDL, so I know how it works. I have never used anything but make to my own projects, but I have seen many ones that used autotools or cmake. I am unfamiliar with WML and Lua.

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

I usually use simple tools like kate with konsole plugin and make to compile and test my programs. I like start writing as early as possible, and do not waste time on preparing IDE. However for some of bigger projects I am trying to use tools like Kdevelop or Eclipse.

5.3) What programming languages are you fluent in?

I feel that I can write fluently in C++, Python. I am a bit less fluent in Java, Ocaml and Java Script.

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 have no problem in contacts by phone, I will add my number in my application to Google.