Difference between revisions of "User:Gabba"

From The Battle for Wesnoth Wiki
(Open Source Involvement)
(Practical considerations)
Line 84: Line 84:
  
 
==Practical considerations==
 
==Practical considerations==
 
Overall I have a good comprehension of software development as a process, and the various methodologies (agile, RUP) that exist. When designing software I base myself as much as possible on design patterns such as those of the GoF.
 
  
 
I am familiar with most languages and tools used in Wesnoth:
 
I am familiar with most languages and tools used in Wesnoth:

Revision as of 01:53, 28 March 2010

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



Contact

IRC: gabm

  • I'll be on IRC approximately from UTC 15:00 to 22:00.

Wesnoth forums and GNA!: gabba

Languages spoken: French, English, Spanish

Skype: I'll provide my Skype handle on request.

Introduction

I'm on my third year of a four-year bachelor's degree in Software Engineering at École Polytechnique de Montréal, in Québec, Canada. This is my last summer as a student, since I graduate next winter.

I've been itching to contribute to Wesnoth for a long time, but the lack of time and especially the size of the codebase were a serious barrier. The Summer of Code seems like the ideal opportunity to start what I hope to be a long-term commitment.

I have nothing planned for the summer except the GSoC and a two-weeks vacation, which has no set date at this point.

Experience

Google Summer of Code

I haven't participated in a Summer of Code yet.

Work

I've worked a year and a half as assistant webmaster for a large company, so I'm able to deal with tight schedules, dealines, and having to manage several projects at a time.

Last summer I did an internship for a scientific group that does research on product lifecycle analysis. My job was to deploy the Geos-chem (http://acmg.seas.harvard.edu/geos/index.html) software at their site, and then do some modifications to it that were necessary to their research project. The technical side: I worked in Pascal (gasp!), Java, Bash script. Human side: I delt with various on-site experts, with the fine folks at Harvard, and with a few software suppliers.

School

I was team leader on several large-scale school projects, with good results. I also completed successfully a large number of solo projects.

  • Team project: assemble a robot complete with motor, wheels, microcontroller and sensors, and program it to follow lines traced on the ground and detect and avoid obstacles. This was developed in C/C++ under linux, and cross-compiled for the microcontroller.
  • Team project: Program a 3D Pinball game and an editor to create different pinball tables. The choice of technologies was imposed: C++ (for the backend) and Java (for the editor's interface), with JNI and JAWT to glue them together. We used XML to save the pinball tables (using the Xerces library), the Box2D engine for the physics simulation, OpenGL for graphics, FMOD for sound, and a couple smaller libraries for things like calculating the convex shell of a 3D model. We modeled our objects in 3d Studio MAX.
  • Team project: refactoring of our earlier pinball game to add multiplayer gameplay on the network. We chose to implement a client-server architecture where the physics would be calculated on the server; all players share a dome-shaped table and compete for points. Technologies used: the server runs under linux, and we have a Windows XP client and a Windows Mobile 5 (Pocket PC) client. We coded in C++ and C# this time, and we used the RakNet (network), Bullet (physics) and Irrlicht (graphics) libraries.

Open Source Involvement

Battle for Wesnoth: I'm on the forums since 2005. I played a lot, of course, and mainly contributed ideas, especially in the domain of AMLA (units improving beyond their maximum XP level). More recently I submitted a few patches and gained commit access to the wesnoth svn repository.

Submitted patches:

  • https://gna.org/patch/?1528 I added the ability to name hotseat players something else than Anonymous Local Player, which really looked silly especially in dialogs.
  • https://gna.org/patch/?1556 I added an option to activate Delay Shroud Updates on game start.
  • https://gna.org/patch/?1162 I added a WML option for configurable village support. (This was back in 2009 and I had no time to maintain it; it was picked up by someone else but I'm willing to finish the work if the patch gets dropped again)

TA Spring (http://spring.clan-sy.com): Contributed a lot of ideas, many of which were implemented; for instance the terrain map that determines regions of the map that hinder or accelerate unit movements. I also submitted one or two small patches.

Irrlicht engine (http://irrlicht.sourceforge.net/): submitted a patch.

RakNet engine (http://www.jenkinssoftware.com/, public source code but not open-source): submitted a patch.

Gaming experience

I'm very passionate about games, and I like collecting and playing all the classic games in every genre, be they recent or old. I also love playing open-source games and following their development. My favorite genres are strategy games, RPGs, and shooter/RPG hybrids. As far as opponents go, I prefer playing against an AI, however I regularly have LAN parties with my friends (and yes, we play Wesnoth!). I also play online from time to time.

In games, I like a good mix of story and gameplay, but I'm certainly better at creating the gameplay part than the story part of a game.

Wesnoth playing experience

I've played the main campaign (Heir to the Throne) several times, as well as a few others. As said above I regularly have a game of multiplayer Wesnoth.

Communication skills

Language

French is my mother tongue, but I'm perfectly fluent in English, both written and spoken. And I can hold a conversation in Spanish.

Social skills

I'm familiar with forums and the flame wars that can erupt; I generally keep my cool and try to be diplomatic, until people calm down and start reasoning instead of shouting. I give and take constructive advice, but I don't follow every random suggestion that's thrown at me either.

How I work

Overall I'm a very autonomous person, who likes to do a lot of preliminary research. If the specifications are not clear, I'll also discuss a project a lot before getting started on it: I hate wasting effort. This said I recognize the value of risk-management, and I'd rather waste some time prototyping to test several technical alternatives, rather than blindly selecting the first one that I like.

I'm not easily discouraged and I don't drop a project without extremely serious reasons.

Tools are very important for me: I like spending time to set up my development environment, to read enough documentation to use a library properly, and so on. I often make choices that take more time now but will pay off in the long run. Looking back, I'd say this has usually been a good choice.

Practical considerations

I am familiar with most languages and tools used in Wesnoth:

  • Subversion: used on a daily basis. Now I'm trying to get started on git-svn.
  • C++: 3 years of experience
  • STL: I don't see how I'd program without this
  • Boost: Read up on it a lot (especially the various safe pointers), want to use it, haven't used it much yet.
  • Sdl: Never really worked with it
  • Python: Can read/modify it without problems, haven't used it extensively.
  • build environments (eg cmake/autotools/scons): I can write a basic Makefile, and I've compiled Wesnoth with both Scons and Cmake. I've delved a bit into the options for both.
  • WML: I studied savegame WML in detail.
  • Lua: Can read/modify it without problems, haven't used it extensively.

Other languages

I'm also pretty fluent in Java, C#, OpenGL, bash scripting, and I can code in Assembly and Pascal if needed. I can write html and xml, too.

Other libraries

I've worked with Bullet, Raknet, Irrlicht, Box2D, Xerces, FMOD and Apache httpclient and log4cxx, among others.

IDEs

I work with Netbeans, Eclipse, Visual Studio, Notepad++, Kate, Geany and everything except Windows Notepad. Currently I'm using Eclipse + Ubuntu GNU/Linux to hack on Wesnoth, and it works pretty well.