Vjoe Multiplayer Reengineering

From The Battle for Wesnoth Wiki
Revision as of 06:41, 25 March 2011 by Timotei21 (talk | contribs) (modify the template so it will show in the ideas page)


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



This is a Summer of Code 2011 student page
Project: SoC_Ideas_Multiplayer_Improvements_2011



Contents

Description

vjoe - Multiplayer Reengineering

The aim of this project is to unify the single and multiplayer modes with the intend of making the game engine more modular, more efficient and easier to extend.

<Will add an IRC log soon>

IRC

vjoe

Questionnaire

1) Basics

1.1) Write a small introduction to yourself.

Hello,

My name is Hugo I am currently doing an internship in Morgan Stanley's Technology Department which is part of the Computer Science degree I am doing in the University of Manchester.

I have been interested in programing since I was thirteen because of a course I took in an IT learning centre. It only covered basic aspects of C and Visual Basic, but it was enough to make me passionate about what would be my major area of interest.

1.2) State your preferred email address.

hfmduarte at gmail dot com

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

vjoe

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

I think it would be a fantastic experience to develop my coding skills and to contribute to the community. I am sure it will make be a better computer scientist.

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

Computer Science at the University of Manchester. I will do my my 3rd and final year next year.

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

I am from Portugal. Despite living in the UK most of the time, I am spending the summer in Portugal. I can be in IRC pretty much all the time. This will be my main summer ocupation.

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

Not at the moment, but I may take a holiday around my birthday (12th of July).

2) Experience

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

I have contributed to the SMF forum CMS in the past as I used to run a web forum.

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

Yes, in my coure and internship.

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?

No, this would be my first year.

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.

2.5) Gaming experience - Are you a gamer?

Yes, even though recently I haven't had much time.

2.5.1) What type of gamer are you?

I am a very competitive gamer. I prefer to play online.

2.5.2) What type of games?

Mostly FPS and strategy.

2.5.3) What type of opponents do you prefer?

I prefer opponents who are better than me, so I can improve and grow.

2.5.4) Are you more interested in story or gameplay?

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 used to play a lot, specially in the summer holidays. I played mostly multiplayer even though I have played some of the campaigns.

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.

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 in English, both written and spoken.

3.2) What spoken languages are you fluent in?

Portuguese, English and French.

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 believe I have good communication skills. Despite doing a very technical degree, I have always tried to take part in extra-curricular activities to enhance my transferable skills.

3.4) Do you give constructive advice?

Yes. It is highly important to motivate people when advising them.

3.5) Do you receive advice well?

Yes. Advice is helpful for me to improve and grow as a person and a professional. I consider all advice that is given to me.

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

Well, every criticism has a reason and a root cause. The wording of the criticism or the way it was expressed might not have been the best, but perhaps there is an underlying intention and purpose which is valuable for me.

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 think it is important to share the same view and direction across the team, so I would say that constant updates and direction checks are important.

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?

Yes, I would be interested in reengineering the multiplayer engine.

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

4.3) Why did you choose this project?

After speaking to fendrin and Crab_, it was clear this is a massive issue in Wesnoth at the moment and it sets a strong limitation in the development of the project. I cannot think of a most interesting project and one that will have such a tremendous impact on Wesnoth.

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 will be working whenever possible.

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

As I discussed with fendrin and Crab_, it is crucial to guarantee that the new architecture is as modular as possible and that as much code as possible is reused. We discussed about UI integration, global state multiplayer games, etc. Nonetheless, I still need to get myself properly familiarized with the code.

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

Increased self-confidence in my abilities, a huge feeling of self-realization and hopefully some new friends!

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

Well, I play Wesnoth whenever possible, so I would say I am already part of the community!

5) Practical considerations

5.1) 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, basically. STL, Boost, Sdl (C++ libraries used by Wesnoth) slightly Python (optional, mainly used for tools) yes build environments (eg cmake/scons) yes WML (the wesnoth specific scenario language) no Lua (used in combination with WML to create scenarios) no

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

When I can get away with just using a plain editor, I use vim. I find the keybindings very efficient and productive. However, I am happy to use an IDE when I have to. I have used Eclipse and Netbeans in the past.

5.3) What programming languages are you fluent in?

At the moment, at work, I only code in Perl. However, I am still fresh in Java, C and Python from university, as well as PHP.

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!

Sure, I am available.