SummerOfCodeProposal Dakmor

From The Battle for Wesnoth Wiki
Revision as of 20:26, 1 April 2010 by Dakmor (talk | contribs)


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


Contents

Description

Dakmor - Porting Wesnoth input framework.

TODO: Add a description of my proposal.

IRC

Dakmor Dakmor_, Dakmor_Z

Questionnaire

Basics

Write a small introduction to yourself.

My name is Luke Drury and I am 21 years old. I am currently in my 2nd year of a 4 year Master of Engineering Degree at the University of Bristol in the UK studying Computer Science. I was home educated for my entire life until the age of 16, after which I attended a technology college for my GCSEs and then a Sixth Form college for my A-Levels.

I have been using computers from the early age of 5 for a variety of tasks such as gaming, webbrowsing, image processing, general text based work, other general day-to-day activities and, of course, programming. I currently have experience working with Java, C, Haskell, Occam and other tools such as Verilog, ANTLR, and Matlab.

State your preferred email address.

ld8192@bristol.ac.uk

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

  • IRC: Dakmor
  • IRC Alternate: Dakmor_ Dakmor_Z
  • Wesnoth forums: Dakmor
  • gna.org: Dakmor

Why do you want to participate in summer of code?

TODO: Experience, skills, knowledge.

What are you studying, subject, level and school?

I am currently studying Computer Science at the University of Bristol in the UK. I am in my second year of a four year masters course and upon completion I will receive the title of 'Master of Engineering'.

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

I live in England, UK and my timezone is GMT/UTC +0. Until mid-June I will be available mostly during the afternoon until late night (1-2am most likely) due to lectures during the day. After this I will be free throughout most of the day, specific times can be easily organised.

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

I currently have no specific summer long commitments. However, I have already signed up to be a crew member for a small festival from the 10th July to the 19th July. This is also doubling as my holiday though, so I will not be taking more time off after this for a vacation. I obviously also have exams but these only run from the 28th May to 7th June (and a period before for revision).


Experience

What programs/software have you worked on before?

I am currently in the middle of a group project for university where we were asked to come up with any projected we wanted to, which was to last from October 2009 to early May 2010. Our project is called BluVu 3D and converts a 2D blueprint image file into a 3D model. This 3D model is then fully customizable by the user. Some key features include: image recognition of walls, doors and symbols; adding, removing, resizing and moving of doors, walls objects and notes; complete 3D navigation of the 3D model; saving and loading of an edited project; etc. This project was written in Java.

Other projects of interest include: A group project programming hardware devices for GUI manipulation, a small graphics game, network interfacing (in C) and creating a compiler.

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

Yes. I have worked on multiple group projects, some of which are listed above. We used CVS as our source code version control system.

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.

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

No, not as of yet. GSoC has definitely gauged my interest though and if my application here is unsuccessful, I will likely try my hand at a broad range of projects to find one that I especially like.

Gaming experience - Are you a gamer?

Yes, I have a lot of experience gaming. As I was home educated by my parents I had a lot of spare time to myself when I wasn't doing structured learning (which to be honest, was a lot of the time), I spent a large portion of this time on the computer.

What type of gamer are you?

Largely competitive, some casual. I enjoy multiplayer and singleplayer and usually finish a game through first and then move to online play. From my extensive experience of playing during my home educated life I don't have that many friends who can best me, so online play provides a much better experience for self-improvement.

What type of games?

Everything. My two main focuses are RTS and FPS but I enjoy anything with an RPG element and I also love casual games such as flash or any old indie game. Some of my favourites are Starcraft (original and I'm on the Beta at the moment), Unreal Tournament, CounterStrike, Half-Life, Dawn of War, Bioshock, Final Fantasy, Painkiller and loads of classics (such as Baldur's Gate, X-Com games, Monkey Island). I've also played a few browser based games, most notibly Utopia, which I played successfully for several ages (using IRC as a constant communication tool). I finished playing just before summer exams last year for revision purpose as I couldn't keep myself away from it!

What type of opponents do you prefer?

Playing online I generally fight against players of all varieties, which gives a good balance of fun. It's rarely fun to just win all the time, but then again it's never fun to lose all the time either. I like playing against people better than me so I can learn from experience, but not so much that I don't stand a chance. I also like playing with friends and guiding them through learning.

Are you more interested in story or gameplay?

Immersion is key in any single player game. Games like Bioshock and Starcraft have great stories combinded with a perfect atmosphere which immerse the gamer completely. I love that. Sometimes though all I want is to wind down or get in a few minutes of intense gaming between work, in which case gameplay is all you need. It would be games like Counter Strike or Unreal Tournament that I'd play for this.

Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.

Currently I've only played the tutorial and the first few missions of the campaign. It's exactly the sort of strategy game I'm easily hooked on though. Have a very neat Civilisation feel to it. I haven't given multiplayer a go yet.

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.

N/A.

3) 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.

English is my first language.

What spoken languages are you fluent in?

I am only fluent in English.

Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.

I've got extensive experience with online gaming, forum use and have used IRC a lot in the past. I'm well aware that fellow gamers can sometimes be rude at best, but I'm perfectly happy communicating with both players and the developer community.

Do you give constructive advice?

I take satisfaction in helping guide people in a less knowledgable or experienced position through their goals or learning experience. Most of the time I feel that my advice is well received, although I've obviously given my share of bogus advice in the past.

Do you receive advice well?

I'm always willing to take advice and consider it in whatever endevour I'm currently undertaking, but that doesn't mean I'll necessary use it. Obviously this depends on what type of advice it is. If someone is telling me my way isn't going to work then it'll warrant a definite rethink!

Are you good at sorting useful criticisms from useless ones?

Years of interest in all sorts of strategy games (both physical and virtual) forces you to analyse and heed advice carefully. Logic, intuition and experimentation all play a part in helping me decide if a criticism is actually useful or simply a biased or unknowledgable one.

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 prefer to know what is needed and act on that instead of immediately starting to write code. I understand that this isn't always possible though and sometimes you have to take the initative and start on your own.


Project

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?

The project that I'd like to work on is the 'Porting Wesnoth input framework' project. If I had to pick a specific subproject it would be specifically configuring the input devices. In my mind this would include a GUI for the user, some sort of standardised interface to receive and recognise button presses, and a method to accept and store changes to button assignments. It would also be expected that the user should be able to save multiple setups and easily change between them at any point.

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

N/A.

Why did you choose this project?

I've previously worked on a project that involved interfacing with various hardware devices for input and output purposes. I really enjoyed that project and so expect to enjoy this one too. I am confident I have the necessary skills to help me through the project, but still have plenty to learn while I'm undertaking it. The project also offers itself to me as one that has the potential for some additional exciting work if I manage to finish the core of the project early.

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 still need to research into the project further and discover from the mentors what is specifical expected and disireable from the project before I can start calculating a timeline. TODO: Talk to the mentors and finish this section.

Include as much technical detail about your implementation as you can

TODO: Develop on my knowledge of the project and come up with some specific ideas.

What do you expect to gain from this project?

Experience is a large incentive for me at the moment. I'm coming to the end of my second year of university now and I really want to start getting down-and-dirty with some real world, exciting project. To me GSoC and Wesnoth is a perfect way to achieve this. The opportunity to get officially involved with such a large community of skilled developers will also be a great privilege and an excellent way for me to broaden my skills beyond that of the project itself. I will also be able to reinforce my current skills by helping perhaps less experienced members of the community with their projects as they start off fresh.

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

An enjoyable experience during the summer. By this I don't mean a walk-in-the-park project. Becoming involved with the other developers and getting attached to my area of the project and Wesnoth as a whole will encourage me to stay after GSoC is over. Another definite area that will keep me commited is the fact that there's also more to learn. I love learning new things and expanding on my knowledge and the development of Wesnoth will help me keep doing so alongside my university education.


Practical considerations

Are you familiar with any of the following tools or languages?

   * Subversion (used for all commits)

While I haven't used Subversion specifically I have used CVS for the last year, which is very similar and built upon by Subversion.

   * C++ (language used for all the normal source code)

I have limited experience using C++ currently. But will be working on the Easycoding section of the Wesnoth wiki to build upon my C++ experience in the run up to the GSoC deadline. I have learned a fair few different languages in the last couple of years though including Java, C, Haskell and Occam, and have worked with some other tools such as Verilog, MatLab and ANTLR. So I'm quick to learn new programming languages.

   * STL, Boost, Sdl (C++ libraries used by Wesnoth)

No.

   * Python (optional, mainly used for tools)

No.

   * build environments (eg cmake/autotools/scons)

I have been using cmake over the last few days for compiling the Wesnoth source code and will be using it while I work on bug fixes (etc) for the Easycoding section.

   * WML (the wesnoth specific scenario language)

No. I have used similar tools for other games such as Starcraft, The Elder Scrolls and Unreal Tournament.

   * Lua (used in combination with WML to create scenarios)

No.

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

For C, C++ and Java I have been using Eclipse for the last 2 years. We were suggested a few different IDEs during the start of our university courses but Eclipse was the most appealing to me. The debugger is very useful and for Java I find the in-built javadoc viewer very useful, as well as the autocompletion, formatting and indentation tools.

What programming languages are you fluent in?

C, Java.

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'm fine with that. I'll supply my number on my GSoC application.