From The Battle for Wesnoth Wiki
Revision as of 00:30, 27 March 2008 by Xan (talk | contribs) (New page: == Introduction == *Basics **My name is Dominic Bolin and I was born in and reside in the US. I am currently 19 years old, and interested in learning most theoretical and applied science...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


  • Basics
    • My name is Dominic Bolin and I was born in and reside in the US. I am currently 19 years old, and interested in learning most theoretical and applied sciences, especially programming, computer science, and artificial intelligence. I am now in my second year of studying Liberal Arts at Thomas Aquinas College, California. I first learned to program with the help of and by working with my older brothers, three of whom have done programming, both individually and for groups, and one who is a professional programmer with more than ten years of experience. I am interested in participating in the Google Summer of Code program in order to continue learning over the summer and to contribute to the Battle of Wesnoth, as well as to interact with the Wesnoth community, which in my experience has been very enjoyable, and to earn some money. You can contact me either on the forum or IRC, where my nick is Xan, or by email to dbolin_D0T_m_ATT_gmail_D0T_com.
  • Experience
    • What programs/software have you worked on before?
      • I have previously worked on the Battle for Wesnoth, and also many other projects, such as a Latin flashcards program, and a program for viewing and altering 3D geometrical figures.
    • Have you developed software in a team environment before? (As opposed to hacking on something on your own)
      • I have both developed software with my brothers, and with small groups of other people, as well as the Battle for Wesnoth group.
    • Have you participated in the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?
      • This is my first application to the Google Summer of Code.
    • What development model would you use (e.g. keywords: V-model, XP programming, agile programming, iterative; with the help of prototyping, formal specifications, tests, etc.).
      • I prefer extreme programming with an iterative style.
  • Open Source
    • Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
      • I have done some work for the Battle for Wesnoth already, for example, bug fixes and error checking, some performance improvements and profiling, and improvements to the MP server and numerous extensions to WML.
  • Gaming experience
    • Are you a gamer?
      • Yes. I prefer games which emphasize strategic and tactical thinking, as well as puzzles and thing which similarly require deep thought.
    • What type of opponents do you prefer?
      • I prefer to play against human opponents rather than against AI, though I do enjoy finding the patterns to the movements and reactions of the AI, in order to play against them more efficiently.
    • Are you more interested in story or gameplay?
      • I am more interested in gameplay than in the story, though I have to like the story in order to play a single player game, and have only played the mainline campaign of BfW and a couple others.
    • Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
      • I have played Wesnoth since version 0.93, mostly multiplayer games because I enjoy playing with people much more than by myself, and because the strategies used are much more varied.
  • 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 have an above average proficiency in written English, and am able to express my thoughts in a variety of ways.
    • Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.
      • As far as I know, I’ve never had any problems with other players or developers of Wesnoth, and I try to ensure that I understand others’ positions before critiquing or making assertions concerning them. I have also played online a lot, and usually have no problems cooperating with other players.
    • Do you give constructive advice?
      • Before even giving advice, I try to be sure that I fully understand the other person’s position, and when I do give advice, make sure that I am not misunderstood and give the reasons behind my thinking. In my experience, most advice/criticisms I have given have been received well and to the improvement of the other.
    • Do you receive advice well?
      • I always am willing to receive advice from others with experience in the field in question, and if I am wrong about a particular point, I like to be shown that so that I can avoid making the same mistake in the future.
    • Are you good at sorting useful criticisms from useless ones?
      • I believe I am very good at distinguishing useful criticism from useless: there are always reasons for things, and even when the critic does not state the reason for his opinion, usually I can see what he is thinking, and how it applies (if at all) to the subject.
  • Project
    • Did you select a project from our list? If that is the case, what project did you select?
      • I chose to improve the interface of the multiplayer lobby.
    • Why did you choose this project?
      • The MP lobby has always seemed to me to be one of the less polished points of the game, and somewhat clumsy and difficult to use. I would like to rework the lobby, both to extend its capabilities and to apply to it the principle behind the whole development of Wesnoth: simplicity and ease-of-use.
    • Include an estimated timeline for your work on the project
      • The milestones proposed by me are listed below. Since I already have some experience with the multiplayer side of Wesnoth, I will relatively quickly be able to propose particular improvements both in general and a particular implementation, and since I have some experience with the code itself, after a solution is decided upon, I will be able to begin coding it almost immediately.
    • Include as much technical detail about your implementation as you can
      • At this point, I have no concrete implementation in mind for any of the improvements that might be made.
    • What do you expect to gain from this project?
      • Additional experience in C++, networking, and user interface design.
    • What would make you stay in the Wesnoth community after the conclusion of SOC?
      • I have already worked for the Wesnoth community before in various ways, and although now I am very busy throughout the school year, I do have some time free in the summer to contribute and help out with Wesnoth development.
  • Practical considerations
    • Are you familiar with any of the following tools?
      • Subversion
        • Yes, about 3 years of experience.
      • C++
        • I have more than 3 years of C/C++ experience.
      • Python
        • I have occasionally worked with python when it happens to be involved in the projects I have worked on .
    • Which tools do you normally use for development? Why do you use them?
      • I normally develop on Windows, using Dev-c++ , Code::Blocks, or Visual Studio.
    • What programming languages are you fluent in?
      • C/C++, Lua, BASIC, Euphoria.
    • What spoken languages are you fluent in?
      • English.
    • At what hours are you awake (please specify in UTC)
      • Usually I'm awake between 15 and 8 UTC, and will be available on IRC between about 3 and 7 UTC.
    • Would you mind talking with your mentor on telephone / internet phone?
      • I would not mind.

Idea Description

Required knowledge and talent

  • A fair amount of experience with C++ is required, since Wesnoth uses some advanced C++ features and is based on BOOST and SDL: I believe I have sufficient experience of C++ in general, as well as a good understanding of the Wesnoth code itself, as I have done considerable work with it previously.
  • Experience with multiplayer games, in order to have a good idea of what multiplayer lobbies of other games look like, and a good idea of the social behaviors of MP communities: I have played many different games online, some with similar numbers of players to Wesnoth, and others with greater numbers, and have a good idea of what players like and dislike with respect to the interface and usability.


  • Determining the changes to made to the lobby which must be agreed to by most if not all the developers. This will be done by talking to various players and developers about their own opinions on the current state of the lobby and the changes they would like to see, taking into account practical considerations and future scalability, as well as comparison to other multiplayer lobbies/communities.
  • Deciding upon a particular implementation for each of the proposed changes. Again, each of these must be agreed to by the developers. The implementations will be focused on simplicity, ease-of-use, and functionality.
  • Actual code for each change; this is likely to be the bulk of the work to be done, so as particular changes to the lobby are decided upon, multiple milestones may be added for different stages of the improvement of the lobby.