MapEditorRewrite

From The Battle for Wesnoth Wiki
Revision as of 00:54, 28 March 2008 by Dlr365 (talk | contribs)

Personal

My name is Doug Rosvick, and I'm currently in my second year of Software Engineering at the University of Calgary (Canada). On IRC/forums/email/etc my username is dlr365. Email is dlr365 {at} gmail.com

I am usually awake from 1500 to 0500 UTC, and would be fine with communicating over IRC/forums/MSN/email/VoIP. The only spoken language I know is English.

Experience

Programming

  • I've been into programming as a hobby since 2001, before that I just poked around some QBasic programs on an old 286 my family had.
  • I'm very comfortable working in C++ and Java. I have never used Python before. I set up my own SVN server a while back, but I didn't end up using it for very long (school got in the way of my hobby project...). Pretty much all my programming knowledge has been self-taught, besides small nuances that I have gleaned from my programming classes.
  • When coding I currently use jEdit, but I have been looking into Eclipse or NetBeans (I used to use VB6's IDE extensively)
  • Back in my QBasic days I extended a game called Hunt the Wumpus to support custom level files, and Nibbles to support up to 4 players simultaneously (it originally only allowed 2).
  • I created a few turn-based games on my TI-83 in high school, one of which was a conversion of an old QBasic game (Minotaur) I had poked around in, complete with a graphical interface.
  • I have (some) experience with SDL through a platformer/RTS concept that I've been working on the last few summers, although it hasn't gotten very far due to schoolwork and previous summer jobs that did not allow much free time. (I have a prototype VB6 version using Windows' GDI if anyone is interested)
  • I have worked on software in a team environment through school projects (very small team size though)
  • I have never been involved in GSoC

Gaming

  • I created many custom Starcraft maps/scenarios in highschool, so I have experience with a commercial level/scenario editor.
  • I love most kinds of games, specifically strategy, first person shooters, and (slightly less so) RPG's.
  • Story vs. gameplay.... very tough question... both are important, but if I had to choose I'd say that good gameplay is needed no matter how good your story is. Any game that excels in both will likely make me lose all track of time :P (examples-- Deus Ex, God of War 1 & 2, Final Fantasy 7, Golden Sun 1 & 2, Warcraft 3)
  • I enjoy playing with highly competitive opponents (Warcraft 3 DotA leagues), but I also enjoy playing games just for fun/relaxing as well (Unreal Tournament at LAN parties)
  • I just recently started playing Wesnoth.


Interest in Summer of Code

I would love to participate in the Summer of Code, as I have been wanting to get involved with an open source project for some time now. Since the Summer of Code is paid, it would allow me to dedicate much more time towards it than if I was trying to develop the map editor in my spare time.

I would like to work on Wesnoth for SoC since I love gaming, I enjoy strategy games, and I like the developer atmosphere and community (from what I have seen on IRC & forums).


GSoC Idea

Rewrite the map editor, and add additional features that are requested by the community. I would eventually like to take the map editor in the direction of a full-fledged scenario editor (likely to be completed after SoC). I admit that since I am new to Wesnoth, I don't know a whole bunch of things that may be useful, but I am motivated and willing to learn the codebase, WML, and talk to the users of the map editor (both serious scenario authors and casual map creators) in order to determine what features should be added. This past week I have been familiarizing myself with the Wesnoth code by working on a patch to the [endlevel] tag.

Details

The current map editor is sufficient, but the code is in a sorry state. I would rewrite the map editor so that it still performs its current functions, but with cleaner, fully-commented C++ code, and an improved interface (using the new GUI toolkit that Mordante is working on, if it is ready). I would modularize the code such that any further improvements would be relatively easy to implement as compared to the current code. Specific ideas for improvement to the map editor itself:

  • opening multiple maps
  • copy-paste of regions of the map
  • terrain changes from holding down the mouse button are considered as one undo step
  • scroll bars
  • custom brushes, with custom shapes and terrain patterns (savable, thus default templates could be created such as a standard castle)
  • random placement functions for terrain elements
  • full-map export to *.png
  • expanded preferences dialog, allowing changes to many nuances of the interface
  • custom terrain import & support

Further Ideas

The map editor would be further extended (time-permitting) by merging scenerio/campaign-editing functionality into it (possibly working together with another SoC project?), which would be much easier if the code were made cleaner. Possible ideas on this front could include:

  • unit placement with custom properties
  • event creation dialogs for simple, commonly used events
  • commonly used WML templates
  • side-by-side WML editing functionality, for more complex scenarios, and with positions/units/etc in WML linked to a graphical icon in the terrain view
  • tree-view based WML editing for larger scenarios

Goal/Rough Timeline

I intend to have a rewritten map editor, with all current functionality, by the end of June. The remainder of the summer would be spent expanding the featureset, and moving towards an integrated map/scenario editor. More specific dates:

  • end of May, possibly earlier : prototype of rewritten map editor, allowing basic map editing
  • June : many prototypes of the editor as features are expanded
  • end of June : rewritten map editor replicates all current functionality
  • July/August : addition of new features and scenario-editing capabilities, and rigorous testing and polishing

After the summer I would continue working on the map editor (and Wesnoth in general) as my spare time allows, as I am already getting involved with Wesnoth development (whether or not I'm accepted for SoC).