SummerOfCodeProposal jdmunro
Contents
Introduction
Name: James Munro
Age: 21
Gender:Male
Education: Final year Games Computing BSc (Hons), progressing to MSc Advanced Games Computing at the University of Lincoln, UK
Wesnoth Forum ID: jdmunro
IRC ID: jmunro
GNA ID: jdmunro
Email Address: james AT jamesdesign.org
Basics
I am James Munro, a student at the University of Lincoln in the United Kingdom. I am in the final year of Games Computing BSc (Hons) and after graduation I will be taking the MSc Advanced Games Computing award at the same university and department.
I taught myself to program in C++ before attending university, working on personal projects related to game development. Since attending university my skill set has increased and I have learned to employ many different programming languages for different purposes.
In my spare time I like to contribute to open-source projects (with emphasis on games) when I can by testing, bug-reporting and developing code. Recently I had my first patch accepted on the open-source game Teeworlds. This was a proud moment for me and I am thoroughly looking forward to contributing to more games in the future.
I am applying to GSoC so that I may learn and develop my skills. Specifically, I am looking forward to the opportunity of working closely as part of a team and to benefit the open-source/gaming community.
Experience
As previously mentioned, my first accepted patch was for the open-source game Teeworlds. Most of my development time has been focused on university assignments developing a range of game-related implementations. I consider my knowledge of C and C++ to be competent but I am always looking to learn new skills and improve my knowledge of the language.
For my university dissertation I focused on analysing the architecture of open-source game engines, in particular the Quake-series. The practical section consisted on a selection of smaller implementations including bringing concurrency/parallel execution to older engines using OpenMP and also a hard-coded approach. I also investigated enhancing an older engine (Quake II) with modern features such as native 64-bit support.
From this experience I learned a good deal about the architecture of game engines and finding my way around fairly large code bases (approximately 250,000 SLOC). I understand the principles of source/version control systems and have personal experience with SVN and also Git (see http://github.com/jdmunro).
Over the summer of 2008 I worked as a member of the Centre for Research in Open Source Software at my university on the CODEX project. I researched and developed an Ubuntu-based LiveCD for use by university students wishing to develop software for the OLPC XO-1 project and its Sugar interface. The project was successful and subsequently gained mention in the BCS magazine ITNOW and is the subject of a research paper published at The 5th International Conference on Open Source Systems (OSS 2009) in Sweden. Whilst not directly related to games, the CODEX project demonstrates my commitment to open-source and the ability to see a project through from conception to completion.
Communication skills
English is my native language and so I will have no problems communicating efficiently. I am also familiar with IRC communication and have used the protocol for many years.
As a game player myself, I am experienced at communicating with fellow gamers and whilst the scope of this project may not require this, it is still a good skill to posses.
I believe that constructive criticism is the key to improving your own skills and abilities. I genuinely enjoy the process of improving my work and gaining feedback is valuable to this process. I would hope to receive feedback from fellow developers and eventually end-user gamers concerning the results of my implementation.
Gaming Experience
I am a huge fan of gaming and games technology and play many games when time permits. I enjoy a diverse range of games on many platforms as I feel it is important to have a wider understanding, rather than just limiting yourself to the games you like. I have played Battle for Wesnoth and enjoyed working through the single-player campaigns. I do not partake in multiplayer matches as I feel that I would lose frequently!
Project Details
I would like to implement improvements to the WML system to help decrease overall memory usage by Battle for Wesnoth.
First Steps
My first steps would be to identify and understand the process that was used to profile memory usage as identified in this post: http://dave.wesnoth.org/?p=9 in order to replicate the results.
From this starting point I will attempt to identify various areas for optimisation. In addition to WML I will keep my eye out for other potential performance problems (whilst avoiding over-optimisation!) that may have been overlooked.
I may need to spend some time developing my understanding of certain things. In particular I will need to gain better knowledge of the WML component, but also techniques for reducing memory consumption. These are technical areas that I thoroughly enjoy studying, hence the focus on my dissertation.