Difference between revisions of "EvolutionaryMapEditor"
(→Project) |
(→Project) |
||
Line 25: | Line 25: | ||
**Many of the options in the editor that could be modularized are currently hardcoded - I want to change that. For example: | **Many of the options in the editor that could be modularized are currently hardcoded - I want to change that. For example: | ||
***Brush selection and terrain palette coordinates are hardcoded - these can be made theme-able. | ***Brush selection and terrain palette coordinates are hardcoded - these can be made theme-able. | ||
− | ***The tool-tips are all hardcoded in - these could be modularized | + | ***The tool-tips are all hardcoded in - these could be modularized as well. |
+ | ***The random map generator currently only supports running one map generator, hard coded - I would look at adding functionality to run any generator config that the user would want to use. | ||
*Generally improve/refactor existing code in the map editor. | *Generally improve/refactor existing code in the map editor. | ||
**Obviously, this would involve becoming familiar with Wesnoth coding standards and the Wesnoth code itself (which I have already begun working on). | **Obviously, this would involve becoming familiar with Wesnoth coding standards and the Wesnoth code itself (which I have already begun working on). | ||
− | *Add new features. | + | **There have been complaints about the copy function not working as expected sometimes. |
− | ** | + | **Make sure that everything is rendered exactly the same way as it is in an actual Wesnoth game. |
+ | *Add new features. For more information on this see http://www.wesnoth.org/forum/viewtopic.php?f=15&t=20506. | ||
+ | **Add handling of custom terrain - add functionality to use terrain other than what is loaded in the editor by default. | ||
+ | **Add ability to reload config files without reloading the editor so that users can edit the config files and be able to see the results without completely restarting the editor. | ||
+ | **If time for this summer allows (or after the summer if it does not) I would like to add the ability for the user to have more direct control over the aesthetics of the map from the map editor. From what I understand, this would require making some changes to the terrain generator engine. | ||
− | To summarize, I would start with improving what is already there for two reasons - to bring the existing code up to par with the rest of the project and to become more familiar with what is already there. As the summer progressed, I would discuss new features that could be added with my mentor and the community and work towards implementing them. | + | To summarize, I would start with improving what is already there for two reasons - to bring the existing code up to par with the rest of the project and to become more familiar with what is already there. As the summer progressed, I would discuss new features that could be added with my mentor and the community and work towards implementing them. Two of the features which I could almost certainly complete this summer would be adding the ability to handle custom terrain and adding the ability to reload config files without restarting the editor. |
+ | |||
+ | Tentative Summer Time-line: | ||
+ | *Improve/refactor Existing Code (April 14 - July 7) | ||
+ | **Debug copy functionality. | ||
+ | *Add interfaces for additional random map generator config files (May 26 - June 17) | ||
+ | *Make brush-selection and terrain-palette coordinates theme-able (June 17 - June 27) | ||
+ | *Make tool-tips theme-able (June 27 - July 7) | ||
+ | *Add ability to use "custom terrain" (July 7 - July 24) | ||
+ | *Add ability to reload config files without reloading editor ( July 24 - August 11) | ||
==Practical Considerations== | ==Practical Considerations== |
Revision as of 01:19, 25 March 2008
Contents
General Info
My name is Steven Oxley. My preferred e-mail address is sajo at andrews dot edu, my nick on the forums and in irc is xonev.
I am a Junior computer science major at Andrews University. My main reason for becoming interested in Google Summer of Code is that I would really like some experience doing some actual coding outside of my classes or the odd project I do from time to time and I am eager to supplement all of the learning I have already gained from my classes.
I am a gamer. I play all kinds of games - I especially enjoy first person shooters, but rpgs and strategy games are also up there on the list. I am not a big fan of real-time strategy games as I find that I have trouble keeping a good balance between offense and development. I like a good balance between story and gameplay in my games, but my focus tends to tip towards gameplay. For instance, a game could have a horrible story and great gameplay and I would play it, but a game with a great story and horrible gameplay I would not play. I had not played Wesnoth before I looked it up in the GSoC listing, but I have now and I enjoy it a great deal. It's just the type of strategy game I like. I have not played the multiplayer yet, but I plan on it in the future.
Experience
Most of my experience with writing software has come in the academic environment. I have done some other web-programming work as a side project at my job (computer technician at Andrews), but nothing major professionally. I have never really contributed to an open source project before either although I have been looking for one to get involved with over the past month or so.
I have developed software in a team environment in my Software Engineering group project class. We created a database application to keep track of inventory. I turned out to be one of the key members of the group as I often had to keep the group focused and ended up doing a large amount of the programming. I also worked on an Android project with some of my friends - unfortunately, it pretty much died in the concept phase.
I have never participated in GSoC before, but am hoping to this year ;P
I am a firm believer in the evolutionary model of software development. I am also an advocate of not reinventing what is already available. This, I believe, will greatly influence my proposal as I will attempt not to rewrite the map editor from scratch, but instead work with what is already there and evolve it into something better.
Communication Skills
I am fluent in English - it is my mother tongue. I find that I get along well with everyone I interact with - even if they are not so friendly to begin with. I am usually able to see other people's side of things which greatly helps in communicating with them. I take advice and criticism seriously and usually manage not to get defensive. I think critically about all advice I am given.
Project
The basic overview for my plans at revamping the map editor is this: I want to take what is already there (because it is by no means useless) and improve it one bit at a time in an evolutionary manner. At every point, I want to have a working piece of software.
Some of the changes that I would like to make to the editor are as follows:
- Modularize everything (within reason).
- Many of the options in the editor that could be modularized are currently hardcoded - I want to change that. For example:
- Brush selection and terrain palette coordinates are hardcoded - these can be made theme-able.
- The tool-tips are all hardcoded in - these could be modularized as well.
- The random map generator currently only supports running one map generator, hard coded - I would look at adding functionality to run any generator config that the user would want to use.
- Many of the options in the editor that could be modularized are currently hardcoded - I want to change that. For example:
- Generally improve/refactor existing code in the map editor.
- Obviously, this would involve becoming familiar with Wesnoth coding standards and the Wesnoth code itself (which I have already begun working on).
- There have been complaints about the copy function not working as expected sometimes.
- Make sure that everything is rendered exactly the same way as it is in an actual Wesnoth game.
- Add new features. For more information on this see http://www.wesnoth.org/forum/viewtopic.php?f=15&t=20506.
- Add handling of custom terrain - add functionality to use terrain other than what is loaded in the editor by default.
- Add ability to reload config files without reloading the editor so that users can edit the config files and be able to see the results without completely restarting the editor.
- If time for this summer allows (or after the summer if it does not) I would like to add the ability for the user to have more direct control over the aesthetics of the map from the map editor. From what I understand, this would require making some changes to the terrain generator engine.
To summarize, I would start with improving what is already there for two reasons - to bring the existing code up to par with the rest of the project and to become more familiar with what is already there. As the summer progressed, I would discuss new features that could be added with my mentor and the community and work towards implementing them. Two of the features which I could almost certainly complete this summer would be adding the ability to handle custom terrain and adding the ability to reload config files without restarting the editor.
Tentative Summer Time-line:
- Improve/refactor Existing Code (April 14 - July 7)
- Debug copy functionality.
- Add interfaces for additional random map generator config files (May 26 - June 17)
- Make brush-selection and terrain-palette coordinates theme-able (June 17 - June 27)
- Make tool-tips theme-able (June 27 - July 7)
- Add ability to use "custom terrain" (July 7 - July 24)
- Add ability to reload config files without reloading editor ( July 24 - August 11)
Practical Considerations
Tools
I am familiar with subversion and C++ - I have messed around with Python a very small amount a year ago or so. The development tools I usually use are
- Visual C++ Express Edition for C++ - I use this because it's free and I usually develop in Windows.
- Notepad++ - I use this for any web-based projects I might be working on.
- phpMyAdmin - Again, I use this for web-based database stuff because it recognizes language syntax for all the languages I might need for web-based apps.
- ShaderDesigner - I use this one for writing OpenGL vertex and fragment shaders.
- RenderMonkey - I use this for writing shaders if I don't think I will have to mess around with any application code.
- Eclipse - I have used this for doing some Java stuff.
Languages
The Languages I'm fluent in:
Programming Languages
- C++ - I've used c/c++ a lot in several of my classes.
- PHP - I've probably used this the most.
- GLSL - For those who don't know, it's a gpu shader language.
- Several others I've done some basic stuff with - Java, Javascript, PERL, Python.
Languages
- English - I think my English teacher used to nag me about having outline headings with only one point *shrug*
I am usually awake from 11 utc to 3 utc. I could probably adjust this just about however I wanted if I were to get the GSoC position. I would be perfectly comfortable talking to my mentor via voip, telephone, or whatever.