<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elfy</id>
	<title>The Battle for Wesnoth Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elfy"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/Elfy"/>
	<updated>2026-05-30T23:31:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=25293</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=25293"/>
		<updated>2008-04-12T11:24:58Z</updated>

		<summary type="html">&lt;p&gt;Elfy: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do some computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here).&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
The timeline estimation for the project is following. Basically the project consists of two parts loosely connected with each other: '''WML editor''' and '''Terrain Editor'''. Though they will form a unite application by the end of development they need distinct methods employed in order to be written. &lt;br /&gt;
=== Phase 1: WML generator ===&lt;br /&gt;
This will be the very base of the project. The goal is to provide simple GUI application capable of creating all common WML structures via a graphical interaction and export them as WML files.&lt;br /&gt;
'''Time estimation''': End of may&lt;br /&gt;
=== Phase 2: WML importer ===&lt;br /&gt;
The second step is allowing WML import. By this point it will just load the script into internal editor structures and then let edit it and generate the output. At this phase the editor is going to be '''WML-destructive'''.&lt;br /&gt;
'''Time estimation''': End of june&lt;br /&gt;
=== Phase 3: Markup keeper ===&lt;br /&gt;
At this phase the internal representation of WML is going to be sharpened, allowing the formatting of input to be saved. Also as an optional feature, program will try to guess the author's style and stylize its generated output. &lt;br /&gt;
'''Time estimation''': Middle of july&lt;br /&gt;
=== Phase 4: Map editor ===&lt;br /&gt;
This phase involves rewritting terrain&amp;amp;unit rendering code to use with Arthur, Qt4's rendering engine. Also paining tools will be implemented and map loading/editing allowed. The code then is going to be merged with WML editor. Easiest part, ever ;-)&lt;br /&gt;
'''Time estimation''': End of july&lt;br /&gt;
=== Phase 5: Map editor features ===&lt;br /&gt;
The most pushed part contains more optional features that are not very critical to implement and also are relatively easy to do. At this phase advanced terrain editor features such as vector shape rasterization and symmetry generator are going to be impemented. If vector technique proves to be usefull --- a separate format for saving unrasterized vector shapes is going to be made.&lt;br /&gt;
'''Time estimation''': End of august&lt;br /&gt;
&lt;br /&gt;
Note: this is a SoC-only timeline and will be expanded as soon as SoC goals are accomplished.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The project I've chosen is the rewrite of wesnoth map editor. &lt;br /&gt;
=== Features ===&lt;br /&gt;
==== Easy to use dialog-driven system to write WML ====&lt;br /&gt;
Since WML controls every aspect of the game it should be given for a user to manipulate in a transparent manner. The IMHO perfect example of such mechanic is '''Warcraft III Map Editor'''(WorldEdit). The users uses a graphical tool to write scenarios and customize units, spells etc. This data is then converted into a JASS script which acts like WML. However the WorldEdit is not that much flexible the Wesnoth editor will be because JASS is more a programming language and not all JASS expressions can be loaded into the Editor. Moreover Blizzard did leave some perks available only to hackers for usage. In the Wesnoth case WML can be easily represented in a graphical way, due to it's structure.&lt;br /&gt;
&lt;br /&gt;
While units are trivial to implement map triggers do cause a bit of challenge in the way of displaying data. Here again my proposal is not to reinvent the wheel and use the time proven Blizzard scheme as displayed on this '''StarEdit''' screenshot:&lt;br /&gt;
&lt;br /&gt;
http://img220.imageshack.us/img220/7162/screnshotkf4.png&lt;br /&gt;
&lt;br /&gt;
The idea is to give the user a tool to create triggers using '''event-conditions-actions''' combo, basically as it is done in map script. For each 'class' of event, condition and action there is a textual template with gaps for user to fill. Filling the gaps involves extensive use of lists, comboboxes etc. to free the user of any writing at all. &lt;br /&gt;
==== Symmetry generator ====&lt;br /&gt;
Symmetry is a critical point when designing melee maps. While some asymmetrical melee maps are known to exist in most strategies they are considered the state of art and are very fragile in terms of modification without breaking balance. A famous example - contest-winning '''(2)Two Rivers''' for WCIII:&lt;br /&gt;
&lt;br /&gt;
http://img230.imageshack.us/img230/2130/tworiverzof6.png&lt;br /&gt;
&lt;br /&gt;
The idea is to let the user select a portion of map(probably radial) and let the editor clone it to generate a symmetrical map. The advantages of such technique are:&lt;br /&gt;
* User is freed from calculating how the portion would look like if rotated. Though Wesnoth uses hexagonal map grid it is a real challenge for people not gifted enough artisticaly to imagine how a region would look like from the other point of view.&lt;br /&gt;
* The user is also freed from routine work repeating basically the same thing he did. Also modifying a thing would need all the copies modified manually which is a potential source of mistakes and a mundane in first place.&lt;br /&gt;
* It provides a editing layer in-between manual map editing and autogeneration taking benefits of both.&lt;br /&gt;
==== Vector-orieded shape editor ====&lt;br /&gt;
Last but not the least there is one more idea on autogeneration tools involved in mapmaking process. Though the idea is very rough and needs severe critics from developpers it's basic is to provide the users a tool to design a vector shape which is then 'rasterized' to hexagons according to the rasterization rules. This includes optional 'gradients' between different terrain types e.g. a line of hills for a transition from rocks to plains. The aims of the idea are:&lt;br /&gt;
* Once again save the user from mundade and requiring tasks when drawing large portions of similar terrain. &lt;br /&gt;
* Let the generator make the terrain more lifelike for example adding occasional forest tiles on plains etc.&lt;br /&gt;
* Make transitions between different terrains more smooth, again freeing the designer from picking each tile by hand. &lt;br /&gt;
In short - most designers do not care of individual hexagons(however this is a matter of faction balance) but tend imagine the general overview of the things they are about to draw. Adding such functionality will allow them to quickly generate the thing that is on mind needing only some retouch after the generation. &lt;br /&gt;
&lt;br /&gt;
As to details IMHO Beziers curves are ideal to fill the role of a tool for defining areas as they provide intuitive and easy to code 'drag-n-bend' feature which most computer users are very familliar with.&lt;br /&gt;
==== Non-destructive WML editor ====&lt;br /&gt;
Last but not the least, the feature which was immediately pointed to by developpers on IRC to anyone willing to write GUI WML editor --- editor must not be destructive existing handwritten files it edits. In other words it must modify a spot in a file but not regenerate it from the scratch. This concerns keeping comments, author's style to identication, paragraph separation, choice of equivalent structures, macros etc. &lt;br /&gt;
&lt;br /&gt;
The whole thing reminds of the traditional argue over HTML editors and is in many ways similar, because of visual likeness of WML to XML. Some editors import the code and regenerate using their own algorithms. The most well know example: '''Microsoft Word''' enlarging the page ten fold when the page is just opened in it and saved to another file. One can speculate that any of editor capable of generating human-readable script is script-destructive. However the guess is false as there are HTML editors capable of keeping author's style. The famous '''Dreamweaver''':&lt;br /&gt;
&lt;br /&gt;
http://www.alanwood.net/unicode/dreamweaver.gif&lt;br /&gt;
&lt;br /&gt;
Dreamweaver was in many ways a compomise between a notepad and fully visual editor, because it allowed to preview the code one writes manually and to edit it visually previewing the code generated. So the program gained popularity among novice web designers as well as among experts because of two way editing it provided. Also the code it generated was much cleaner than that of Word.&lt;br /&gt;
&lt;br /&gt;
Wesnoth editor can have such a feature as well. Though it concerns more a scenario than a webpage, still its WML data can be represented graphically so that it can be visually edited and understood. So the editor will host a feature similar to dreamviewer capable --- the two way editing. Even if one dislikes visual editing and sticks to handwritten code the feature nevertheless will be usefull as it will provide a visually incorrect scheme if one makes a typo or mistake in the code.&lt;br /&gt;
&lt;br /&gt;
=== Technology ===&lt;br /&gt;
==== GUI toolkit ====&lt;br /&gt;
The editor will use Qt4 library for UI operations. Advantages:&lt;br /&gt;
* Arthur engine provides fast and efficient drawing capabilities.&lt;br /&gt;
* Qt allows a complex nonmodal dialog structure to be rapidly developped.&lt;br /&gt;
* No need to code specialized widgets.&lt;br /&gt;
The Qt4 is present in virtually every Linux distribution. As to Windows binary release - Qt dlls can be shipped within the package with ease providing seameless installation for end-user.&lt;br /&gt;
&lt;br /&gt;
==== User Interface ====&lt;br /&gt;
The new editor will feature a vectoral 'select'-like tool including some subvariants similar to the '''Photoshop''' or '''Gimp''' selection mechanics while keeping them as most simple and trivial to use as possible. The selection then can be filled with terrain based on some predefined generation rules (akin to '''gradients''' in raster image editors but more demostrative to use) or cloned to achieve symmetrical formations.&lt;br /&gt;
&lt;br /&gt;
The other thing new is a unit and trigger editor allowing dialog-driven customization of units and map script. The unit editor will be a '''property-value''' scheme based editor in a way like '''Delphi-style''' property editor used in countless visual GUI design IDE's.&lt;br /&gt;
&lt;br /&gt;
The trigger editor will feature tools to create map triggers as well as adjust AI behaviour. In short it will allow to design all the ''dynamic'' map properties while unit editor is more to work with ''static'' ones. As stated above the core element will be a '''gap-filling''' control to compose a logical human-readable sentence. Parameters will be picked from lists or the map itself. For instance to indicate which unit is to be affected one could just click it on the map as opposed to assigning identifiers and writing textual names('f course if the unit is present on the initial map layout). &lt;br /&gt;
==== WML import/export ====&lt;br /&gt;
Also a must-have feature for the editor is the ability to ''modularize'' the map. In other words the user will be given a way to export some units/scripts he created as separate WML files for use in other maps. This will allow a GUI-driven editor to benefit from textual nature of the WML script freeing the user from any repeated actions while maintaining a user-friendly GUI interface. &lt;br /&gt;
==== Non-map based WML ====&lt;br /&gt;
Also the editor will be capable of generic WML generation such as graphical design of themes, units etc. without any map open.&lt;br /&gt;
&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=25292</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=25292"/>
		<updated>2008-04-12T11:10:08Z</updated>

		<summary type="html">&lt;p&gt;Elfy: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do some computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here).&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
The timeline estimation for the project is following. Basically the project consists of two parts loosely connected with each other: '''WML editor''' and '''Terrain Editor'''. Though they will form a unite application by the end of development they need distinct methods employed in order to be written. &lt;br /&gt;
=== Phase 1: WML generator ===&lt;br /&gt;
This will be the very base of the project. The goal is to provide simple GUI application capable of creating all common WML structures via a graphical interaction and export them as WML files.&lt;br /&gt;
'''Time estimation''': End of may&lt;br /&gt;
=== Phase 2: WML importer ===&lt;br /&gt;
The second step is allowing WML import. By this point it will just load the script into internal editor structures and then let edit it and generate the output. At this phase the editor is going to be '''WML-destructive'''.&lt;br /&gt;
'''Time estimation''': End of june&lt;br /&gt;
=== Phase 3: Markup keeper ===&lt;br /&gt;
At this phase the internal representation of WML is going to be sharpened, allowing the formatting of input to be saved. Also as an optional feature, program will try to guess the author's style and stylize its generated output. &lt;br /&gt;
'''Time estimation''': Middle of july&lt;br /&gt;
=== Phase 4: Map editor ===&lt;br /&gt;
This phase involves rewritting terrain&amp;amp;unit rendering code to use with Arthur, Qt4's rendering engine. Also paining tools will be implemented and map loading/editing allowed. The code then is going to be merged with WML editor. Easiest part, ever ;-)&lt;br /&gt;
'''Time estimation''': End of july&lt;br /&gt;
=== Phase 5: Map editor features ===&lt;br /&gt;
The most pushed part contains more optional features that are not very critical to implement and also are relatively easy to do. At this phase advanced terrain editor features such as vector shape rasterization and symmetry generator are going to be impemented. If vector technique proves to be usefull --- a separate format for saving unrasterized vector shapes is going to be made.&lt;br /&gt;
'''Time estimation''': End of august&lt;br /&gt;
&lt;br /&gt;
Note: this is a SoC-only timeline and will be expanded as soon as SoC goals are accomplished.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The project I've chosen is the rewrite of wesnoth map editor. &lt;br /&gt;
=== Features ===&lt;br /&gt;
==== Easy to use dialog-driven system to write WML ====&lt;br /&gt;
Since WML controls every aspect of the game it should be given for a user to manipulate in a transparent manner. The IMHO perfect example of such mechanic is '''Warcraft III Map Editor'''(WorldEdit). The users uses a graphical tool to write scenarios and customize units, spells etc. This data is then converted into a JASS script which acts like WML. However the WorldEdit is not that much flexible the Wesnoth editor will be because JASS is more a programming language and not all JASS expressions can be loaded into the Editor. Moreover Blizzard did leave some perks available only to hackers for usage. In the Wesnoth case WML can be easily represented in a graphical way, due to it's structure.&lt;br /&gt;
&lt;br /&gt;
While units are trivial to implement map triggers do cause a bit of challenge in the way of displaying data. Here again my proposal is not to reinvent the wheel and use the time proven Blizzard scheme as displayed on this '''StarEdit''' screenshot:&lt;br /&gt;
&lt;br /&gt;
http://img220.imageshack.us/img220/7162/screnshotkf4.png&lt;br /&gt;
&lt;br /&gt;
The idea is to give the user a tool to create triggers using '''event-conditions-actions''' combo, basically as it is done in map script. For each 'class' of event, condition and action there is a textual template with gaps for user to fill. Filling the gaps involves extensive use of lists, comboboxes etc. to free the user of any writing at all. &lt;br /&gt;
==== Symmetry generator ====&lt;br /&gt;
Symmetry is a critical point when designing melee maps. While some asymmetrical melee maps are known to exist in most strategies they are considered the state of art and are very fragile in terms of modification without breaking balance. A famous example - contest-winning '''(2)Two Rivers''' for WCIII:&lt;br /&gt;
&lt;br /&gt;
http://img230.imageshack.us/img230/2130/tworiverzof6.png&lt;br /&gt;
&lt;br /&gt;
The idea is to let the user select a portion of map(probably radial) and let the editor clone it to generate a symmetrical map. The advantages of such technique are:&lt;br /&gt;
* User is freed from calculating how the portion would look like if rotated. Though Wesnoth uses hexagonal map grid it is a real challenge for people not gifted enough artisticaly to imagine how a region would look like from the other point of view.&lt;br /&gt;
* The user is also freed from routine work repeating basically the same thing he did. Also modifying a thing would need all the copies modified manually which is a potential source of mistakes and a mundane in first place.&lt;br /&gt;
* It provides a editing layer in-between manual map editing and autogeneration taking benefits of both.&lt;br /&gt;
==== Vector-orieded shape editor ====&lt;br /&gt;
Last but not the least there is one more idea on autogeneration tools involved in mapmaking process. Though the idea is very rough and needs severe critics from developpers it's basic is to provide the users a tool to design a vector shape which is then 'rasterized' to hexagons according to the rasterization rules. This includes optional 'gradients' between different terrain types e.g. a line of hills for a transition from rocks to plains. The aims of the idea are:&lt;br /&gt;
* Once again save the user from mundade and requiring tasks when drawing large portions of similar terrain. &lt;br /&gt;
* Let the generator make the terrain more lifelike for example adding occasional forest tiles on plains etc.&lt;br /&gt;
* Make transitions between different terrains more smooth, again freeing the designer from picking each tile by hand. &lt;br /&gt;
In short - most designers do not care of individual hexagons(however this is a matter of faction balance) but tend imagine the general overview of the things they are about to draw. Adding such functionality will allow them to quickly generate the thing that is on mind needing only some retouch after the generation. &lt;br /&gt;
&lt;br /&gt;
As to details IMHO Beziers curves are ideal to fill the role of a tool for defining areas as they provide intuitive and easy to code 'drag-n-bend' feature which most computer users are very familliar with. &lt;br /&gt;
=== Technology ===&lt;br /&gt;
==== GUI toolkit ====&lt;br /&gt;
The editor will use Qt4 library for UI operations. Advantages:&lt;br /&gt;
* Arthur engine provides fast and efficient drawing capabilities.&lt;br /&gt;
* Qt allows a complex nonmodal dialog structure to be rapidly developped.&lt;br /&gt;
* No need to code specialized widgets.&lt;br /&gt;
The Qt4 is present in virtually every Linux distribution. As to Windows binary release - Qt dlls can be shipped within the package with ease providing seameless installation for end-user.&lt;br /&gt;
&lt;br /&gt;
==== User Interface ====&lt;br /&gt;
The new editor will feature a vectoral 'select'-like tool including some subvariants similar to the '''Photoshop''' or '''Gimp''' selection mechanics while keeping them as most simple and trivial to use as possible. The selection then can be filled with terrain based on some predefined generation rules (akin to '''gradients''' in raster image editors but more demostrative to use) or cloned to achieve symmetrical formations.&lt;br /&gt;
&lt;br /&gt;
The other thing new is a unit and trigger editor allowing dialog-driven customization of units and map script. The unit editor will be a '''property-value''' scheme based editor in a way like '''Delphi-style''' property editor used in countless visual GUI design IDE's.&lt;br /&gt;
&lt;br /&gt;
The trigger editor will feature tools to create map triggers as well as adjust AI behaviour. In short it will allow to design all the ''dynamic'' map properties while unit editor is more to work with ''static'' ones. As stated above the core element will be a '''gap-filling''' control to compose a logical human-readable sentence. Parameters will be picked from lists or the map itself. For instance to indicate which unit is to be affected one could just click it on the map as opposed to assigning identifiers and writing textual names('f course if the unit is present on the initial map layout). &lt;br /&gt;
==== WML import/export ====&lt;br /&gt;
Also a must-have feature for the editor is the ability to ''modularize'' the map. In other words the user will be given a way to export some units/scripts he created as separate WML files for use in other maps. This will allow a GUI-driven editor to benefit from textual nature of the WML script freeing the user from any repeated actions while maintaining a user-friendly GUI interface. &lt;br /&gt;
==== Non-map based WML ====&lt;br /&gt;
Also the editor will be capable of generic WML generation such as graphical design of themes, units etc. without any map open.&lt;br /&gt;
&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24940</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24940"/>
		<updated>2008-03-30T21:26:57Z</updated>

		<summary type="html">&lt;p&gt;Elfy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do some computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here).&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
TODO&lt;br /&gt;
== Description ==&lt;br /&gt;
The project I've chosen is the rewrite of wesnoth map editor. &lt;br /&gt;
=== Features ===&lt;br /&gt;
==== Easy to use dialog-driven system to write WML ====&lt;br /&gt;
Since WML controls every aspect of the game it should be given for a user to manipulate in a transparent manner. The IMHO perfect example of such mechanic is '''Warcraft III Map Editor'''(WorldEdit). The users uses a graphical tool to write scenarios and customize units, spells etc. This data is then converted into a JASS script which acts like WML. However the WorldEdit is not that much flexible the Wesnoth editor will be because JASS is more a programming language and not all JASS expressions can be loaded into the Editor. Moreover Blizzard did leave some perks available only to hackers for usage. In the Wesnoth case WML can be easily represented in a graphical way, due to it's structure.&lt;br /&gt;
&lt;br /&gt;
While units are trivial to implement map triggers do cause a bit of challenge in the way of displaying data. Here again my proposal is not to reinvent the wheel and use the time proven Blizzard scheme as displayed on this '''StarEdit''' screenshot:&lt;br /&gt;
&lt;br /&gt;
http://img220.imageshack.us/img220/7162/screnshotkf4.png&lt;br /&gt;
&lt;br /&gt;
The idea is to give the user a tool to create triggers using '''event-conditions-actions''' combo, basically as it is done in map script. For each 'class' of event, condition and action there is a textual template with gaps for user to fill. Filling the gaps involves extensive use of lists, comboboxes etc. to free the user of any writing at all. &lt;br /&gt;
==== Symmetry generator ====&lt;br /&gt;
Symmetry is a critical point when designing melee maps. While some asymmetrical melee maps are known to exist in most strategies they are considered the state of art and are very fragile in terms of modification without breaking balance. A famous example - contest-winning '''(2)Two Rivers''' for WCIII:&lt;br /&gt;
&lt;br /&gt;
http://img230.imageshack.us/img230/2130/tworiverzof6.png&lt;br /&gt;
&lt;br /&gt;
The idea is to let the user select a portion of map(probably radial) and let the editor clone it to generate a symmetrical map. The advantages of such technique are:&lt;br /&gt;
* User is freed from calculating how the portion would look like if rotated. Though Wesnoth uses hexagonal map grid it is a real challenge for people not gifted enough artisticaly to imagine how a region would look like from the other point of view.&lt;br /&gt;
* The user is also freed from routine work repeating basically the same thing he did. Also modifying a thing would need all the copies modified manually which is a potential source of mistakes and a mundane in first place.&lt;br /&gt;
* It provides a editing layer in-between manual map editing and autogeneration taking benefits of both.&lt;br /&gt;
==== Vector-orieded shape editor ====&lt;br /&gt;
Last but not the least there is one more idea on autogeneration tools involved in mapmaking process. Though the idea is very rough and needs severe critics from developpers it's basic is to provide the users a tool to design a vector shape which is then 'rasterized' to hexagons according to the rasterization rules. This includes optional 'gradients' between different terrain types e.g. a line of hills for a transition from rocks to plains. The aims of the idea are:&lt;br /&gt;
* Once again save the user from mundade and requiring tasks when drawing large portions of similar terrain. &lt;br /&gt;
* Let the generator make the terrain more lifelike for example adding occasional forest tiles on plains etc.&lt;br /&gt;
* Make transitions between different terrains more smooth, again freeing the designer from picking each tile by hand. &lt;br /&gt;
In short - most designers do not care of individual hexagons(however this is a matter of faction balance) but tend imagine the general overview of the things they are about to draw. Adding such functionality will allow them to quickly generate the thing that is on mind needing only some retouch after the generation. &lt;br /&gt;
&lt;br /&gt;
As to details IMHO Beziers curves are ideal to fill the role of a tool for defining areas as they provide intuitive and easy to code 'drag-n-bend' feature which most computer users are very familliar with. &lt;br /&gt;
=== Technology ===&lt;br /&gt;
==== GUI toolkit ====&lt;br /&gt;
The editor will use Qt4 library for UI operations. Advantages:&lt;br /&gt;
* Arthur engine provides fast and efficient drawing capabilities.&lt;br /&gt;
* Qt allows a complex nonmodal dialog structure to be rapidly developped.&lt;br /&gt;
* No need to code specialized widgets.&lt;br /&gt;
The Qt4 is present in virtually every Linux distribution. As to Windows binary release - Qt dlls can be shipped within the package with ease providing seameless installation for end-user.&lt;br /&gt;
&lt;br /&gt;
==== User Interface ====&lt;br /&gt;
The new editor will feature a vectoral 'select'-like tool including some subvariants similar to the '''Photoshop''' or '''Gimp''' selection mechanics while keeping them as most simple and trivial to use as possible. The selection then can be filled with terrain based on some predefined generation rules (akin to '''gradients''' in raster image editors but more demostrative to use) or cloned to achieve symmetrical formations.&lt;br /&gt;
&lt;br /&gt;
The other thing new is a unit and trigger editor allowing dialog-driven customization of units and map script. The unit editor will be a '''property-value''' scheme based editor in a way like '''Delphi-style''' property editor used in countless visual GUI design IDE's.&lt;br /&gt;
&lt;br /&gt;
The trigger editor will feature tools to create map triggers as well as adjust AI behaviour. In short it will allow to design all the ''dynamic'' map properties while unit editor is more to work with ''static'' ones. As stated above the core element will be a '''gap-filling''' control to compose a logical human-readable sentence. Parameters will be picked from lists or the map itself. For instance to indicate which unit is to be affected one could just click it on the map as opposed to assigning identifiers and writing textual names('f course if the unit is present on the initial map layout). &lt;br /&gt;
==== WML import/export ====&lt;br /&gt;
Also a must-have feature for the editor is the ability to ''modularize'' the map. In other words the user will be given a way to export some units/scripts he created as separate WML files for use in other maps. This will allow a GUI-driven editor to benefit from textual nature of the WML script freeing the user from any repeated actions while maintaining a user-friendly GUI interface. &lt;br /&gt;
==== Non-map based WML ====&lt;br /&gt;
Also the editor will be capable of generic WML generation such as graphical design of themes, units etc. without any map open.&lt;br /&gt;
&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24858</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24858"/>
		<updated>2008-03-29T21:54:13Z</updated>

		<summary type="html">&lt;p&gt;Elfy: /* GUI toolkit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here).&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
TODO&lt;br /&gt;
== Description ==&lt;br /&gt;
The project I've chosen is the rewrite of wesnoth map editor. &lt;br /&gt;
=== Features ===&lt;br /&gt;
==== Easy to use dialog-driven system to write WML ====&lt;br /&gt;
Since WML controls every aspect of the game it should be given for a user to manipulate in a transparent manner. The IMHO perfect example of such mechanic is '''Warcraft III Map Editor'''(WorldEdit). The users uses a graphical tool to write scenarios and customize units, spells etc. This data is then converted into a JASS script which acts like WML. However the WorldEdit is not that much flexible the Wesnoth editor will be because JASS is more a programming language and not all JASS expressions can be loaded into the Editor. Moreover Blizzard did leave some perks available only to hackers for usage. In the Wesnoth case WML can be easily represented in a graphical way, due to it's structure.&lt;br /&gt;
&lt;br /&gt;
While units are trivial to implement map triggers do cause a bit of challenge in the way of displaying data. Here again my proposal is not to reinvent the wheel and use the time proven Blizzard scheme as displayed on this '''StarEdit''' screenshot:&lt;br /&gt;
&lt;br /&gt;
http://img220.imageshack.us/img220/7162/screnshotkf4.png&lt;br /&gt;
&lt;br /&gt;
The idea is to give the user a tool to create triggers using '''event-conditions-actions''' combo, basically as it is done in map script. For each 'class' of event, condition and action there is a textual template with gaps for user to fill. Filling the gaps involves extensive use of lists, comboboxes etc. to free the user of any writing at all. &lt;br /&gt;
==== Symmetry generator ====&lt;br /&gt;
Symmetry is a critical point when designing melee maps. While some asymmetrical melee maps are known to exist in most strategies they are considered the state of art and are very fragile in terms of modification without breaking balance. A famous example - contest-winning '''(2)Two Rivers''' for WCIII:&lt;br /&gt;
&lt;br /&gt;
http://img230.imageshack.us/img230/2130/tworiverzof6.png&lt;br /&gt;
&lt;br /&gt;
The idea is to let the user select a portion of map(probably radial) and let the editor clone it to generate a symmetrical map. The advantages of such technique are:&lt;br /&gt;
* User is freed from calculating how the portion would look like if rotated. Though Wesnoth uses hexagonal map grid it is a real challenge for people not gifted enough artisticaly to imagine how a region would look like from the other point of view.&lt;br /&gt;
* The user is also freed from routine work repeating basically the same thing he did. Also modifying a thing would need all the copies modified manually which is a potential source of mistakes and a mundane in first place.&lt;br /&gt;
* It provides a editing layer in-between manual map editing and autogeneration taking benefits of both.&lt;br /&gt;
==== Vector-orieded shape editor ====&lt;br /&gt;
Last but not the least there is one more idea on autogeneration tools involved in mapmaking process. Though the idea is very rough and needs severe critics from developpers it's basic is to provide the users a tool to design a vector shape which is then 'rasterized' to hexagons according to the rasterization rules. This includes optional 'gradients' between different terrain types e.g. a line of hills for a transition from rocks to plains. The aims of the idea are:&lt;br /&gt;
* Once again save the user from mundade and requiring tasks when drawing large portions of similar terrain. &lt;br /&gt;
* Let the generator make the terrain more lifelike for example adding occasional forest tiles on plains etc.&lt;br /&gt;
* Make transitions between different terrains more smooth, again freeing the designer from picking each tile by hand. &lt;br /&gt;
In short - most designers do not care of individual hexagons(however this is a matter of faction balance) but tend imagine the general overview of the things they are about to draw. Adding such functionality will allow them to quickly generate the thing that is on mind needing only some retouch after the generation. &lt;br /&gt;
&lt;br /&gt;
As to details IMHO Beziers curves are ideal to fill the role of a tool for defining areas as they provide intuitive and easy to code 'drag-n-bend' feature which most computer users are very familliar with. &lt;br /&gt;
=== Technology ===&lt;br /&gt;
==== GUI toolkit ====&lt;br /&gt;
The editor will use Qt4 library for UI operations. Advantages:&lt;br /&gt;
* Arthur engine provides fast and efficient drawing capabilities.&lt;br /&gt;
* Qt allows a complex nonmodal dialog structure to be rapidly developped.&lt;br /&gt;
* No need to code specialized widgets.&lt;br /&gt;
The Qt4 is present in virtually every Linux distribution. As to Windows binary release - Qt dlls can be shipped within the package with ease providing seameless installation for end-user.&lt;br /&gt;
&lt;br /&gt;
==== User Interface ====&lt;br /&gt;
The new editor will feature a vectoral 'select'-like tool including some subvariants similar to the '''Photoshop''' or '''Gimp''' selection mechanics while keeping them as most simple and trivial to use as possible. The selection then can be filled with terrain based on some predefined generation rules (akin to '''gradients''' in raster image editors but more demostrative to use) or cloned to achieve symmetrical formations.&lt;br /&gt;
&lt;br /&gt;
The other thing new is a unit and trigger editor allowing dialog-driven customization of units and map script. The unit editor will be a '''property-value''' scheme based editor in a way like '''Delphi-style''' property editor used in countless visual GUI design IDE's.&lt;br /&gt;
&lt;br /&gt;
The trigger editor will feature tools to create map triggers as well as adjust AI behaviour. In short it will allow to design all the ''dynamic'' map properties while unit editor is more to work with ''static'' ones. As stated above the core element will be a '''gap-filling''' control to compose a logical human-readable sentence. Parameters will be picked from lists or the map itself. For instance to indicate which unit is to be affected one could just click it on the map as opposed to assigning identifiers and writing textual names('f course if the unit is present on the initial map layout). &lt;br /&gt;
==== WML import/export ====&lt;br /&gt;
Also a must-have feature for the editor is the ability to ''modularize'' the map. In other words the user will be given a way to export some units/scripts he created as separate WML files for use in other maps. This will allow a GUI-driven editor to benefit from textual nature of the WML script freeing the user from any repeated actions while maintaining a user-friendly GUI interface. &lt;br /&gt;
==== Non-map based WML ====&lt;br /&gt;
Also the editor will be capable of generic WML generation such as graphical design of themes, units etc. without any map open.&lt;br /&gt;
&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=24853</id>
		<title>SummerOfCodeIdeas</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=24853"/>
		<updated>2008-03-29T20:14:24Z</updated>

		<summary type="html">&lt;p&gt;Elfy: /* New generation Map Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a compilation of ideas from ML. Needs to be refined (more detailed description, deliverables, workload estimation?):&lt;br /&gt;
&lt;br /&gt;
== I want to be one of your Google Summer of Code students, what should I do... ==&lt;br /&gt;
&lt;br /&gt;
Here is a quick list of things to do to get you started&lt;br /&gt;
* Create an account on gna.org&lt;br /&gt;
* Create an account on the wesnoth forum&lt;br /&gt;
* Join the irc channel (#wesnoth-dev on irc.freenode.net) and introduce yourself. We will not give formal interviews, but we will clearly favor people we have learnt to know during the selection process&lt;br /&gt;
* Contact one of our SummerOfCode people (Ivanovic, Sirp, Boucman, Mordante) to have your forum nick marked as a Summer of code student&lt;br /&gt;
&lt;br /&gt;
* Start a wiki page about your idea, add a link on the bottom of this page and add this information on it:&lt;br /&gt;
** List your account names (gna, forum, irc nick) so that we can recognize you&lt;br /&gt;
** Fill the questionnaire on this page: [[SoC_Information_for_Google#Does_your_organization_have_an_application_template_you_would_like_to_see_students_use.3F_If_so.2C_please_provide_it_now.| List of questions to answer]]&lt;br /&gt;
** Detail your idea as much as possible, look at other students pages, and please give milestones and studies you've done&lt;br /&gt;
&lt;br /&gt;
* Though not mandatory, it is highly advisable to go to the [[EasyCoding]] and [[NotSoEasyCoding]] pages and implement one of these ideas (or any idea of similar scope) so we have an idea how you work. Be sure to use your gna account when submitting these patches so we know who it is coming from. You can also implement some features from our feature request database at gna. When you implement something, also list it on your own page with a reference to the patch.&lt;br /&gt;
&lt;br /&gt;
* For working on Wesnoth you have to be able to compile trunk. To do so you should have a look at the [[WesnothSVN|page about svn]] and afterwards [[CompilingWesnoth|compile Wesnoth svn]].&lt;br /&gt;
&lt;br /&gt;
* Once you have everything done here and think your idea is okay, go to [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants to page at google] to submit your application. You have to submit it before '''Monday, March 31, 2008''' or you have no chance to get in!&lt;br /&gt;
&lt;br /&gt;
== List of Ideas for the Project (Suggestions from the wesnoth developers) ==&lt;br /&gt;
&lt;br /&gt;
Here is only a short description of possible Ideas we have, each has a page of its own with a more detailed version on it.&lt;br /&gt;
&lt;br /&gt;
=== Writing an AI based on the formula AI ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has always had a simple C++ based AI. David (our lead developer) has been working on a simple language to write AI in Wesnoth: [[FormulaAI]]&lt;br /&gt;
&lt;br /&gt;
The Wesnoth AI is used as an opponent in most campaigns, and as such is an important piece of code for the Wesnoth project. Unfortunately, because the skills required to understand and modify it are rather arcane, it is also one of the most neglected parts of the Wesnoth code. This is a place where a lot of research and useful work could be done. But keep in mind that [[WhyWritingAWesnothAIIsHard|writing an AI for Wesnoth is difficult]].&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas FormulaAI]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Extending the Multiplayer server ===&lt;br /&gt;
&lt;br /&gt;
Our multiplayer community is generally strong and healthy, but we believe its growth is limited by some problems in the interface of the multiplayer lobby.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Multiplayer server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Scenario/Campaign editor ===&lt;br /&gt;
&lt;br /&gt;
Currently, in order to create campaign or multiplayer scenarios, it is necessary to manually edit WML files - XML-like configuration files. The goal of this project would be to create a graphical editor to make the creative process easier.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Scenario and Campaign Editor]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Addon server ===&lt;br /&gt;
Wesnoth has an addon server which offers users to upload user &lt;br /&gt;
made content (UMC). This allows all other users of Wesnoth&lt;br /&gt;
to easily download and install this content. The server was &lt;br /&gt;
originally written for user-made campaigns but contains a lot&lt;br /&gt;
more types of addons nowadays. Both the server side and the &lt;br /&gt;
client side need to be improved.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Addon Server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Map editor ===&lt;br /&gt;
The map editor in Wesnoth serves two goals, making it easy to create&lt;br /&gt;
a new map and helping the terrain artists to test their new terrains.&lt;br /&gt;
&lt;br /&gt;
[[SoC_Ideas_Map_Editor]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Other possible ideas to be fleshed out ===&lt;br /&gt;
A MapGenerator rewrite - better scalable for outdoor maps, plus the possibility to define areas (similar to the caverns in the cave generator) etc.&lt;br /&gt;
&lt;br /&gt;
=== Make your own ideas ===&lt;br /&gt;
If you have your own idea the best thing is to join IRC wesnoth-dev at irc.freenode.net and discuss the idea with the developers there. If the developers think your idea is interesting and like the feature you can start to turn it into a full proposal. Once done discuss it again on IRC so the developers can accept your idea.&lt;br /&gt;
&lt;br /&gt;
== Information about our Project ==&lt;br /&gt;
The information we provided google with about our project can be looked up at the site [[SoC Information for Google]].&lt;br /&gt;
&lt;br /&gt;
Also see the [[DeveloperResources]] link (from the [[Project]] page).&lt;br /&gt;
&lt;br /&gt;
== People to bug on IRC ==&lt;br /&gt;
We have prepared a list of people with their &amp;quot;area of competence&amp;quot;. This is to give you an idea on which areas those people can be of help for you. Of course you should always just ask in the IRC chan, but those are the most likely ones to answer questions in the respective area. And here is the list:&lt;br /&gt;
&lt;br /&gt;
[[SoC People to bug on IRC]]&lt;br /&gt;
&lt;br /&gt;
== GSoC Student Applicant Ideas == &lt;br /&gt;
&lt;br /&gt;
Every student interested to work on Wesnoth as part of Summer of Code should create a page of his own where several things should be listed. Here is a short list of what should be mentioned on the list (the more info for us, the better...):&lt;br /&gt;
&lt;br /&gt;
* Who are you? Please list your IRC and forum nickname in here and describe yourself so that we get you to know.&lt;br /&gt;
* What do you want to work on? Please flesh out your personal ideas, so that we get to know what you plan to work on.&lt;br /&gt;
* If you already submitted patches, please list those so that we have a reference.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas FormulaAI|Formula AI]]===&lt;br /&gt;
====[[FormulaAIandAdaptation]] (Alesis-Novik) ====&lt;br /&gt;
The new idea and aproach using strategic and inside game knowledge&lt;br /&gt;
&lt;br /&gt;
==== [[FormulaAIandDynamicScripting]] (barbarianhero) ====&lt;br /&gt;
This project idea uses Formula AI and Dynamic Scripting to create a tunable and adaptive AI.&lt;br /&gt;
&lt;br /&gt;
====[[FormulaAIBaseAI]] (Dragonking) ====&lt;br /&gt;
Developing smart and pluggable AI, which would be really easy tweakable by Scenario and Campaign Developers &lt;br /&gt;
&lt;br /&gt;
====[[Building A Strategic Planner with Formula AI|FormulaAIPlanner]] (TVincent) ====&lt;br /&gt;
This project idea uses (and maybe extends) Formula AI to create a strategic, responsive AI of the Planner model.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Multiplayer server|Multiplayer Server]]===&lt;br /&gt;
====[[ExtendingMultiplayerServer]] (dudegaurav) ====&lt;br /&gt;
This project proposal incorporates several ideas on how to refine the current Multiplayer Server !&lt;br /&gt;
====[[MultiplayerServerLobbyInterface]] (Xan) ====&lt;br /&gt;
Improving the Multiplayer Lobby, with an emphasis on simplicity, ease-of-use, and scalability&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Scenario and Campaign Editor|Scenario/Campaign Editor]]===&lt;br /&gt;
====[[ExtensibleScenarioEditor]] (david.hilton) ====&lt;br /&gt;
On a conceptual level, this idea combines a finite state machine editor with a code generator to create scenarios.&lt;br /&gt;
&lt;br /&gt;
====[[pyQTScenarioEditor]] (Malle) ====&lt;br /&gt;
That's me!&lt;br /&gt;
&lt;br /&gt;
====[[RujasuScenarioEditor]] (rujasu) ====&lt;br /&gt;
Scenario editor that will coordinate with the look and feel of the Wesnoth game.&lt;br /&gt;
&lt;br /&gt;
====[[CampaignEditor]] (jkiv) ====&lt;br /&gt;
&lt;br /&gt;
Click and drag! CLICK! AND! DRAG!&lt;br /&gt;
&lt;br /&gt;
====[[IntuitiveScenarioEditor]] (cjhopman) ====&lt;br /&gt;
An intuitive to use but still extensible Scenario Editor.&lt;br /&gt;
&lt;br /&gt;
====[[User:Elfy/SoC_Questionnaire#Description|New generation Map Editor (Elfy)]]====&lt;br /&gt;
Scenario+Map+Unit editor designed to cover all WML editing tasks&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Addon Server|Addon Server]]===&lt;br /&gt;
====[[AddonServerSocial]] (lao) ====&lt;br /&gt;
Improving addon Server/Client by adding some social content.&lt;br /&gt;
&lt;br /&gt;
====[[AddonServer]] (giebfried) ====&lt;br /&gt;
This project is to improve the server and client sides of the addon server, as suggested above.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Map Editor|Map Editor]]===&lt;br /&gt;
====[[EvolutionaryMapEditor]] (xonev) ====&lt;br /&gt;
An evolutionary approach to improving the map editor.&lt;br /&gt;
&lt;br /&gt;
====[[VimzardMapEditor]] (vimzard) ====&lt;br /&gt;
A better random map generator, some essential features and a tie-in with the Scenario Editor.&lt;br /&gt;
&lt;br /&gt;
====[[NewMapEditor]] (Cecen) ====&lt;br /&gt;
This is basically a rewrite of the current map editor with various added features and tweaks to both increase the versatility of the editor and make it easier for the user to create maps with.&lt;br /&gt;
&lt;br /&gt;
====[[MapEditorRewrite]] (dlr365)====&lt;br /&gt;
A rewrite of the map editor, then taking it in the direction of a combined map/scenario editor for both quick scenarios and more complex ones.&lt;br /&gt;
&lt;br /&gt;
====[[Map Editor Ilor]] (ilor)====&lt;br /&gt;
A rewrite of the current editor with focus on clean code an maintainability, and ''then'' extra features&lt;br /&gt;
&lt;br /&gt;
===Map Generator===&lt;br /&gt;
====[[RandomCampaignGenerator]] (kartik thakore, refining idea) ====&lt;br /&gt;
Procedural map generation that will hope to give writers better control over the random map generator using an interface.&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
====[[WesnothStatistics]] (radx) ====&lt;br /&gt;
Project related to Wesnoth statistics (campaign) submission, gathering and presentation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code|*]]&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=24852</id>
		<title>SummerOfCodeIdeas</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=24852"/>
		<updated>2008-03-29T20:13:44Z</updated>

		<summary type="html">&lt;p&gt;Elfy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a compilation of ideas from ML. Needs to be refined (more detailed description, deliverables, workload estimation?):&lt;br /&gt;
&lt;br /&gt;
== I want to be one of your Google Summer of Code students, what should I do... ==&lt;br /&gt;
&lt;br /&gt;
Here is a quick list of things to do to get you started&lt;br /&gt;
* Create an account on gna.org&lt;br /&gt;
* Create an account on the wesnoth forum&lt;br /&gt;
* Join the irc channel (#wesnoth-dev on irc.freenode.net) and introduce yourself. We will not give formal interviews, but we will clearly favor people we have learnt to know during the selection process&lt;br /&gt;
* Contact one of our SummerOfCode people (Ivanovic, Sirp, Boucman, Mordante) to have your forum nick marked as a Summer of code student&lt;br /&gt;
&lt;br /&gt;
* Start a wiki page about your idea, add a link on the bottom of this page and add this information on it:&lt;br /&gt;
** List your account names (gna, forum, irc nick) so that we can recognize you&lt;br /&gt;
** Fill the questionnaire on this page: [[SoC_Information_for_Google#Does_your_organization_have_an_application_template_you_would_like_to_see_students_use.3F_If_so.2C_please_provide_it_now.| List of questions to answer]]&lt;br /&gt;
** Detail your idea as much as possible, look at other students pages, and please give milestones and studies you've done&lt;br /&gt;
&lt;br /&gt;
* Though not mandatory, it is highly advisable to go to the [[EasyCoding]] and [[NotSoEasyCoding]] pages and implement one of these ideas (or any idea of similar scope) so we have an idea how you work. Be sure to use your gna account when submitting these patches so we know who it is coming from. You can also implement some features from our feature request database at gna. When you implement something, also list it on your own page with a reference to the patch.&lt;br /&gt;
&lt;br /&gt;
* For working on Wesnoth you have to be able to compile trunk. To do so you should have a look at the [[WesnothSVN|page about svn]] and afterwards [[CompilingWesnoth|compile Wesnoth svn]].&lt;br /&gt;
&lt;br /&gt;
* Once you have everything done here and think your idea is okay, go to [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants to page at google] to submit your application. You have to submit it before '''Monday, March 31, 2008''' or you have no chance to get in!&lt;br /&gt;
&lt;br /&gt;
== List of Ideas for the Project (Suggestions from the wesnoth developers) ==&lt;br /&gt;
&lt;br /&gt;
Here is only a short description of possible Ideas we have, each has a page of its own with a more detailed version on it.&lt;br /&gt;
&lt;br /&gt;
=== Writing an AI based on the formula AI ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has always had a simple C++ based AI. David (our lead developer) has been working on a simple language to write AI in Wesnoth: [[FormulaAI]]&lt;br /&gt;
&lt;br /&gt;
The Wesnoth AI is used as an opponent in most campaigns, and as such is an important piece of code for the Wesnoth project. Unfortunately, because the skills required to understand and modify it are rather arcane, it is also one of the most neglected parts of the Wesnoth code. This is a place where a lot of research and useful work could be done. But keep in mind that [[WhyWritingAWesnothAIIsHard|writing an AI for Wesnoth is difficult]].&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas FormulaAI]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Extending the Multiplayer server ===&lt;br /&gt;
&lt;br /&gt;
Our multiplayer community is generally strong and healthy, but we believe its growth is limited by some problems in the interface of the multiplayer lobby.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Multiplayer server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Scenario/Campaign editor ===&lt;br /&gt;
&lt;br /&gt;
Currently, in order to create campaign or multiplayer scenarios, it is necessary to manually edit WML files - XML-like configuration files. The goal of this project would be to create a graphical editor to make the creative process easier.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Scenario and Campaign Editor]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Addon server ===&lt;br /&gt;
Wesnoth has an addon server which offers users to upload user &lt;br /&gt;
made content (UMC). This allows all other users of Wesnoth&lt;br /&gt;
to easily download and install this content. The server was &lt;br /&gt;
originally written for user-made campaigns but contains a lot&lt;br /&gt;
more types of addons nowadays. Both the server side and the &lt;br /&gt;
client side need to be improved.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Addon Server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Map editor ===&lt;br /&gt;
The map editor in Wesnoth serves two goals, making it easy to create&lt;br /&gt;
a new map and helping the terrain artists to test their new terrains.&lt;br /&gt;
&lt;br /&gt;
[[SoC_Ideas_Map_Editor]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Other possible ideas to be fleshed out ===&lt;br /&gt;
A MapGenerator rewrite - better scalable for outdoor maps, plus the possibility to define areas (similar to the caverns in the cave generator) etc.&lt;br /&gt;
&lt;br /&gt;
=== Make your own ideas ===&lt;br /&gt;
If you have your own idea the best thing is to join IRC wesnoth-dev at irc.freenode.net and discuss the idea with the developers there. If the developers think your idea is interesting and like the feature you can start to turn it into a full proposal. Once done discuss it again on IRC so the developers can accept your idea.&lt;br /&gt;
&lt;br /&gt;
== Information about our Project ==&lt;br /&gt;
The information we provided google with about our project can be looked up at the site [[SoC Information for Google]].&lt;br /&gt;
&lt;br /&gt;
Also see the [[DeveloperResources]] link (from the [[Project]] page).&lt;br /&gt;
&lt;br /&gt;
== People to bug on IRC ==&lt;br /&gt;
We have prepared a list of people with their &amp;quot;area of competence&amp;quot;. This is to give you an idea on which areas those people can be of help for you. Of course you should always just ask in the IRC chan, but those are the most likely ones to answer questions in the respective area. And here is the list:&lt;br /&gt;
&lt;br /&gt;
[[SoC People to bug on IRC]]&lt;br /&gt;
&lt;br /&gt;
== GSoC Student Applicant Ideas == &lt;br /&gt;
&lt;br /&gt;
Every student interested to work on Wesnoth as part of Summer of Code should create a page of his own where several things should be listed. Here is a short list of what should be mentioned on the list (the more info for us, the better...):&lt;br /&gt;
&lt;br /&gt;
* Who are you? Please list your IRC and forum nickname in here and describe yourself so that we get you to know.&lt;br /&gt;
* What do you want to work on? Please flesh out your personal ideas, so that we get to know what you plan to work on.&lt;br /&gt;
* If you already submitted patches, please list those so that we have a reference.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas FormulaAI|Formula AI]]===&lt;br /&gt;
====[[FormulaAIandAdaptation]] (Alesis-Novik) ====&lt;br /&gt;
The new idea and aproach using strategic and inside game knowledge&lt;br /&gt;
&lt;br /&gt;
==== [[FormulaAIandDynamicScripting]] (barbarianhero) ====&lt;br /&gt;
This project idea uses Formula AI and Dynamic Scripting to create a tunable and adaptive AI.&lt;br /&gt;
&lt;br /&gt;
====[[FormulaAIBaseAI]] (Dragonking) ====&lt;br /&gt;
Developing smart and pluggable AI, which would be really easy tweakable by Scenario and Campaign Developers &lt;br /&gt;
&lt;br /&gt;
====[[Building A Strategic Planner with Formula AI|FormulaAIPlanner]] (TVincent) ====&lt;br /&gt;
This project idea uses (and maybe extends) Formula AI to create a strategic, responsive AI of the Planner model.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Multiplayer server|Multiplayer Server]]===&lt;br /&gt;
====[[ExtendingMultiplayerServer]] (dudegaurav) ====&lt;br /&gt;
This project proposal incorporates several ideas on how to refine the current Multiplayer Server !&lt;br /&gt;
====[[MultiplayerServerLobbyInterface]] (Xan) ====&lt;br /&gt;
Improving the Multiplayer Lobby, with an emphasis on simplicity, ease-of-use, and scalability&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Scenario and Campaign Editor|Scenario/Campaign Editor]]===&lt;br /&gt;
====[[ExtensibleScenarioEditor]] (david.hilton) ====&lt;br /&gt;
On a conceptual level, this idea combines a finite state machine editor with a code generator to create scenarios.&lt;br /&gt;
&lt;br /&gt;
====[[pyQTScenarioEditor]] (Malle) ====&lt;br /&gt;
That's me!&lt;br /&gt;
&lt;br /&gt;
====[[RujasuScenarioEditor]] (rujasu) ====&lt;br /&gt;
Scenario editor that will coordinate with the look and feel of the Wesnoth game.&lt;br /&gt;
&lt;br /&gt;
====[[CampaignEditor]] (jkiv) ====&lt;br /&gt;
&lt;br /&gt;
Click and drag! CLICK! AND! DRAG!&lt;br /&gt;
&lt;br /&gt;
====[[IntuitiveScenarioEditor]] (cjhopman) ====&lt;br /&gt;
An intuitive to use but still extensible Scenario Editor.&lt;br /&gt;
&lt;br /&gt;
====[[User:Elfy/SoC_Questionnaire#Description|New generation Map Editor]]====&lt;br /&gt;
Scenario+Map+Unit editor designed to cover all WML editing tasks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Addon Server|Addon Server]]===&lt;br /&gt;
====[[AddonServerSocial]] (lao) ====&lt;br /&gt;
Improving addon Server/Client by adding some social content.&lt;br /&gt;
&lt;br /&gt;
====[[AddonServer]] (giebfried) ====&lt;br /&gt;
This project is to improve the server and client sides of the addon server, as suggested above.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Map Editor|Map Editor]]===&lt;br /&gt;
====[[EvolutionaryMapEditor]] (xonev) ====&lt;br /&gt;
An evolutionary approach to improving the map editor.&lt;br /&gt;
&lt;br /&gt;
====[[VimzardMapEditor]] (vimzard) ====&lt;br /&gt;
A better random map generator, some essential features and a tie-in with the Scenario Editor.&lt;br /&gt;
&lt;br /&gt;
====[[NewMapEditor]] (Cecen) ====&lt;br /&gt;
This is basically a rewrite of the current map editor with various added features and tweaks to both increase the versatility of the editor and make it easier for the user to create maps with.&lt;br /&gt;
&lt;br /&gt;
====[[MapEditorRewrite]] (dlr365)====&lt;br /&gt;
A rewrite of the map editor, then taking it in the direction of a combined map/scenario editor for both quick scenarios and more complex ones.&lt;br /&gt;
&lt;br /&gt;
====[[Map Editor Ilor]] (ilor)====&lt;br /&gt;
A rewrite of the current editor with focus on clean code an maintainability, and ''then'' extra features&lt;br /&gt;
&lt;br /&gt;
===Map Generator===&lt;br /&gt;
====[[RandomCampaignGenerator]] (kartik thakore, refining idea) ====&lt;br /&gt;
Procedural map generation that will hope to give writers better control over the random map generator using an interface.&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
====[[WesnothStatistics]] (radx) ====&lt;br /&gt;
Project related to Wesnoth statistics (campaign) submission, gathering and presentation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code|*]]&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24851</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24851"/>
		<updated>2008-03-29T19:59:12Z</updated>

		<summary type="html">&lt;p&gt;Elfy: /* Reasoning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here).&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
TODO&lt;br /&gt;
== Description ==&lt;br /&gt;
The project I've chosen is the rewrite of wesnoth map editor. &lt;br /&gt;
=== Features ===&lt;br /&gt;
==== Easy to use dialog-driven system to write WML ====&lt;br /&gt;
Since WML controls every aspect of the game it should be given for a user to manipulate in a transparent manner. The IMHO perfect example of such mechanic is '''Warcraft III Map Editor'''(WorldEdit). The users uses a graphical tool to write scenarios and customize units, spells etc. This data is then converted into a JASS script which acts like WML. However the WorldEdit is not that much flexible the Wesnoth editor will be because JASS is more a programming language and not all JASS expressions can be loaded into the Editor. Moreover Blizzard did leave some perks available only to hackers for usage. In the Wesnoth case WML can be easily represented in a graphical way, due to it's structure.&lt;br /&gt;
&lt;br /&gt;
While units are trivial to implement map triggers do cause a bit of challenge in the way of displaying data. Here again my proposal is not to reinvent the wheel and use the time proven Blizzard scheme as displayed on this '''StarEdit''' screenshot:&lt;br /&gt;
&lt;br /&gt;
http://img220.imageshack.us/img220/7162/screnshotkf4.png&lt;br /&gt;
&lt;br /&gt;
The idea is to give the user a tool to create triggers using '''event-conditions-actions''' combo, basically as it is done in map script. For each 'class' of event, condition and action there is a textual template with gaps for user to fill. Filling the gaps involves extensive use of lists, comboboxes etc. to free the user of any writing at all. &lt;br /&gt;
==== Symmetry generator ====&lt;br /&gt;
Symmetry is a critical point when designing melee maps. While some asymmetrical melee maps are known to exist in most strategies they are considered the state of art and are very fragile in terms of modification without breaking balance. A famous example - contest-winning '''(2)Two Rivers''' for WCIII:&lt;br /&gt;
&lt;br /&gt;
http://img230.imageshack.us/img230/2130/tworiverzof6.png&lt;br /&gt;
&lt;br /&gt;
The idea is to let the user select a portion of map(probably radial) and let the editor clone it to generate a symmetrical map. The advantages of such technique are:&lt;br /&gt;
* User is freed from calculating how the portion would look like if rotated. Though Wesnoth uses hexagonal map grid it is a real challenge for people not gifted enough artisticaly to imagine how a region would look like from the other point of view.&lt;br /&gt;
* The user is also freed from routine work repeating basically the same thing he did. Also modifying a thing would need all the copies modified manually which is a potential source of mistakes and a mundane in first place.&lt;br /&gt;
* It provides a editing layer in-between manual map editing and autogeneration taking benefits of both.&lt;br /&gt;
==== Vector-orieded shape editor ====&lt;br /&gt;
Last but not the least there is one more idea on autogeneration tools involved in mapmaking process. Though the idea is very rough and needs severe critics from developpers it's basic is to provide the users a tool to design a vector shape which is then 'rasterized' to hexagons according to the rasterization rules. This includes optional 'gradients' between different terrain types e.g. a line of hills for a transition from rocks to plains. The aims of the idea are:&lt;br /&gt;
* Once again save the user from mundade and requiring tasks when drawing large portions of similar terrain. &lt;br /&gt;
* Let the generator make the terrain more lifelike for example adding occasional forest tiles on plains etc.&lt;br /&gt;
* Make transitions between different terrains more smooth, again freeing the designer from picking each tile by hand. &lt;br /&gt;
In short - most designers do not care of individual hexagons(however this is a matter of faction balance) but tend imagine the general overview of the things they are about to draw. Adding such functionality will allow them to quickly generate the thing that is on mind needing only some retouch after the generation. &lt;br /&gt;
&lt;br /&gt;
As to details IMHO Beziers curves are ideal to fill the role of a tool for defining areas as they provide intuitive and easy to code 'drag-n-bend' feature which most computer users are very familliar with. &lt;br /&gt;
=== Technology ===&lt;br /&gt;
==== GUI toolkit ====&lt;br /&gt;
This is the point to discuss with the developpers so I am presenting this in a form of pro-contras&lt;br /&gt;
===== Native Wesnoth UI =====&lt;br /&gt;
Pro:&lt;br /&gt;
* Gives an original '''Look-n-Feel''' of the game.&lt;br /&gt;
* Can be easily embedded into the main executable.&lt;br /&gt;
Contra: &lt;br /&gt;
* UI is not flexible enough. Some ideas (e.g. vectoral shape definition) would need extensive UI engine rewrite or at least a whole complex of things unsupported at the moment.&lt;br /&gt;
* As I've read [[EasyCoding#GUI_related_features | here]] UI structure is about to be rewritten so it is rather a volatile ground to base the whole new project on.&lt;br /&gt;
===== External UI =====&lt;br /&gt;
Pro:&lt;br /&gt;
* Will save time designing specialized widgets which are absent in Wesnoth UI.&lt;br /&gt;
* Will keep Wesnoth UI codebase clean of things that are solely used in editor.&lt;br /&gt;
Contra:&lt;br /&gt;
* Can't be trully embedded into the main game program.&lt;br /&gt;
* Will have very different visual style.&lt;br /&gt;
==== User Interface ====&lt;br /&gt;
The new editor will feature a vectoral 'select'-like tool including some subvariants similar to the '''Photoshop''' or '''Gimp''' selection mechanics while keeping them as most simple and trivial to use as possible. The selection then can be filled with terrain based on some predefined generation rules (akin to '''gradients''' in raster image editors but more demostrative to use) or cloned to achieve symmetrical formations.&lt;br /&gt;
&lt;br /&gt;
The other thing new is a unit and trigger editor allowing dialog-driven customization of units and map script. The unit editor will be a '''property-value''' scheme based editor in a way like '''Delphi-style''' property editor used in countless visual GUI design IDE's.&lt;br /&gt;
&lt;br /&gt;
The trigger editor will feature tools to create map triggers as well as adjust AI behaviour. In short it will allow to design all the ''dynamic'' map properties while unit editor is more to work with ''static'' ones. As stated above the core element will be a '''gap-filling''' control to compose a logical human-readable sentence. Parameters will be picked from lists or the map itself. For instance to indicate which unit is to be affected one could just click it on the map as opposed to assigning identifiers and writing textual names('f course if the unit is present on the initial map layout). &lt;br /&gt;
==== WML import/export ====&lt;br /&gt;
Also a must-have feature for the editor is the ability to ''modularize'' the map. In other words the user will be given a way to export some units/scripts he created as separate WML files for use in other maps. This will allow a GUI-driven editor to benefit from textual nature of the WML script freeing the user from any repeated actions while maintaining a user-friendly GUI interface. &lt;br /&gt;
==== Non-map based WML ====&lt;br /&gt;
Also the editor will be capable of generic WML generation such as graphical design of themes, units etc. without any map open.&lt;br /&gt;
&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24850</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24850"/>
		<updated>2008-03-29T19:57:57Z</updated>

		<summary type="html">&lt;p&gt;Elfy: /* Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here). MORE HERE&lt;br /&gt;
== Timeline ==&lt;br /&gt;
TODO&lt;br /&gt;
== Description ==&lt;br /&gt;
The project I've chosen is the rewrite of wesnoth map editor. &lt;br /&gt;
=== Features ===&lt;br /&gt;
==== Easy to use dialog-driven system to write WML ====&lt;br /&gt;
Since WML controls every aspect of the game it should be given for a user to manipulate in a transparent manner. The IMHO perfect example of such mechanic is '''Warcraft III Map Editor'''(WorldEdit). The users uses a graphical tool to write scenarios and customize units, spells etc. This data is then converted into a JASS script which acts like WML. However the WorldEdit is not that much flexible the Wesnoth editor will be because JASS is more a programming language and not all JASS expressions can be loaded into the Editor. Moreover Blizzard did leave some perks available only to hackers for usage. In the Wesnoth case WML can be easily represented in a graphical way, due to it's structure.&lt;br /&gt;
&lt;br /&gt;
While units are trivial to implement map triggers do cause a bit of challenge in the way of displaying data. Here again my proposal is not to reinvent the wheel and use the time proven Blizzard scheme as displayed on this '''StarEdit''' screenshot:&lt;br /&gt;
&lt;br /&gt;
http://img220.imageshack.us/img220/7162/screnshotkf4.png&lt;br /&gt;
&lt;br /&gt;
The idea is to give the user a tool to create triggers using '''event-conditions-actions''' combo, basically as it is done in map script. For each 'class' of event, condition and action there is a textual template with gaps for user to fill. Filling the gaps involves extensive use of lists, comboboxes etc. to free the user of any writing at all. &lt;br /&gt;
==== Symmetry generator ====&lt;br /&gt;
Symmetry is a critical point when designing melee maps. While some asymmetrical melee maps are known to exist in most strategies they are considered the state of art and are very fragile in terms of modification without breaking balance. A famous example - contest-winning '''(2)Two Rivers''' for WCIII:&lt;br /&gt;
&lt;br /&gt;
http://img230.imageshack.us/img230/2130/tworiverzof6.png&lt;br /&gt;
&lt;br /&gt;
The idea is to let the user select a portion of map(probably radial) and let the editor clone it to generate a symmetrical map. The advantages of such technique are:&lt;br /&gt;
* User is freed from calculating how the portion would look like if rotated. Though Wesnoth uses hexagonal map grid it is a real challenge for people not gifted enough artisticaly to imagine how a region would look like from the other point of view.&lt;br /&gt;
* The user is also freed from routine work repeating basically the same thing he did. Also modifying a thing would need all the copies modified manually which is a potential source of mistakes and a mundane in first place.&lt;br /&gt;
* It provides a editing layer in-between manual map editing and autogeneration taking benefits of both.&lt;br /&gt;
==== Vector-orieded shape editor ====&lt;br /&gt;
Last but not the least there is one more idea on autogeneration tools involved in mapmaking process. Though the idea is very rough and needs severe critics from developpers it's basic is to provide the users a tool to design a vector shape which is then 'rasterized' to hexagons according to the rasterization rules. This includes optional 'gradients' between different terrain types e.g. a line of hills for a transition from rocks to plains. The aims of the idea are:&lt;br /&gt;
* Once again save the user from mundade and requiring tasks when drawing large portions of similar terrain. &lt;br /&gt;
* Let the generator make the terrain more lifelike for example adding occasional forest tiles on plains etc.&lt;br /&gt;
* Make transitions between different terrains more smooth, again freeing the designer from picking each tile by hand. &lt;br /&gt;
In short - most designers do not care of individual hexagons(however this is a matter of faction balance) but tend imagine the general overview of the things they are about to draw. Adding such functionality will allow them to quickly generate the thing that is on mind needing only some retouch after the generation. &lt;br /&gt;
&lt;br /&gt;
As to details IMHO Beziers curves are ideal to fill the role of a tool for defining areas as they provide intuitive and easy to code 'drag-n-bend' feature which most computer users are very familliar with. &lt;br /&gt;
=== Technology ===&lt;br /&gt;
==== GUI toolkit ====&lt;br /&gt;
This is the point to discuss with the developpers so I am presenting this in a form of pro-contras&lt;br /&gt;
===== Native Wesnoth UI =====&lt;br /&gt;
Pro:&lt;br /&gt;
* Gives an original '''Look-n-Feel''' of the game.&lt;br /&gt;
* Can be easily embedded into the main executable.&lt;br /&gt;
Contra: &lt;br /&gt;
* UI is not flexible enough. Some ideas (e.g. vectoral shape definition) would need extensive UI engine rewrite or at least a whole complex of things unsupported at the moment.&lt;br /&gt;
* As I've read [[EasyCoding#GUI_related_features | here]] UI structure is about to be rewritten so it is rather a volatile ground to base the whole new project on.&lt;br /&gt;
===== External UI =====&lt;br /&gt;
Pro:&lt;br /&gt;
* Will save time designing specialized widgets which are absent in Wesnoth UI.&lt;br /&gt;
* Will keep Wesnoth UI codebase clean of things that are solely used in editor.&lt;br /&gt;
Contra:&lt;br /&gt;
* Can't be trully embedded into the main game program.&lt;br /&gt;
* Will have very different visual style.&lt;br /&gt;
==== User Interface ====&lt;br /&gt;
The new editor will feature a vectoral 'select'-like tool including some subvariants similar to the '''Photoshop''' or '''Gimp''' selection mechanics while keeping them as most simple and trivial to use as possible. The selection then can be filled with terrain based on some predefined generation rules (akin to '''gradients''' in raster image editors but more demostrative to use) or cloned to achieve symmetrical formations.&lt;br /&gt;
&lt;br /&gt;
The other thing new is a unit and trigger editor allowing dialog-driven customization of units and map script. The unit editor will be a '''property-value''' scheme based editor in a way like '''Delphi-style''' property editor used in countless visual GUI design IDE's.&lt;br /&gt;
&lt;br /&gt;
The trigger editor will feature tools to create map triggers as well as adjust AI behaviour. In short it will allow to design all the ''dynamic'' map properties while unit editor is more to work with ''static'' ones. As stated above the core element will be a '''gap-filling''' control to compose a logical human-readable sentence. Parameters will be picked from lists or the map itself. For instance to indicate which unit is to be affected one could just click it on the map as opposed to assigning identifiers and writing textual names('f course if the unit is present on the initial map layout). &lt;br /&gt;
==== WML import/export ====&lt;br /&gt;
Also a must-have feature for the editor is the ability to ''modularize'' the map. In other words the user will be given a way to export some units/scripts he created as separate WML files for use in other maps. This will allow a GUI-driven editor to benefit from textual nature of the WML script freeing the user from any repeated actions while maintaining a user-friendly GUI interface. &lt;br /&gt;
==== Non-map based WML ====&lt;br /&gt;
Also the editor will be capable of generic WML generation such as graphical design of themes, units etc. without any map open.&lt;br /&gt;
&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24849</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24849"/>
		<updated>2008-03-29T19:39:35Z</updated>

		<summary type="html">&lt;p&gt;Elfy: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here). MORE HERE&lt;br /&gt;
== Timeline ==&lt;br /&gt;
TODO&lt;br /&gt;
== Description ==&lt;br /&gt;
The project I've chosen is the rewrite of wesnoth map editor. &lt;br /&gt;
=== Features ===&lt;br /&gt;
==== Easy to use dialog-driven system to write WML ====&lt;br /&gt;
Since WML controls every aspect of the game it should be given for a user to manipulate in a transparent manner. The IMHO perfect example of such mechanic is '''Warcraft III Map Editor'''(WorldEdit). The users uses a graphical tool to write scenarios and customize units, spells etc. This data is then converted into a JASS script which acts like WML. However the WorldEdit is not that much flexible the Wesnoth editor will be because JASS is more a programming language and not all JASS expressions can be loaded into the Editor. Moreover Blizzard did leave some perks available only to hackers for usage. In the Wesnoth case WML can be easily represented in a graphical way, due to it's structure.&lt;br /&gt;
&lt;br /&gt;
While units are trivial to implement map triggers do cause a bit of challenge in the way of displaying data. Here again my proposal is not to reinvent the wheel and use the time proven Blizzard scheme as displayed on this '''StarEdit''' screenshot:&lt;br /&gt;
&lt;br /&gt;
http://img220.imageshack.us/img220/7162/screnshotkf4.png&lt;br /&gt;
&lt;br /&gt;
The idea is to give the user a tool to create triggers using '''event-conditions-actions''' combo, basically as it is done in map script. For each 'class' of event, condition and action there is a textual template with gaps for user to fill. Filling the gaps involves extensive use of lists, comboboxes etc. to free the user of any writing at all. &lt;br /&gt;
==== Symmetry generator ====&lt;br /&gt;
Symmetry is a critical point when designing melee maps. While some asymmetrical melee maps are known to exist in most strategies they are considered the state of art and are very fragile in terms of modification without breaking balance. A famous example - contest-winning '''(2)Two Rivers''' for WCIII:&lt;br /&gt;
&lt;br /&gt;
http://img230.imageshack.us/img230/2130/tworiverzof6.png&lt;br /&gt;
&lt;br /&gt;
The idea is to let the user select a portion of map(probably radial) and let the editor clone it to generate a symmetrical map. The advantages of such technique are:&lt;br /&gt;
* User is freed from calculating how the portion would look like if rotated. Though Wesnoth uses hexagonal map grid it is a real challenge for people not gifted enough artisticaly to imagine how a region would look like from the other point of view.&lt;br /&gt;
* The user is also freed from routine work repeating basically the same thing he did. Also modifying a thing would need all the copies modified manually which is a potential source of mistakes and a mundane in first place.&lt;br /&gt;
* It provides a editing layer in-between manual map editing and autogeneration taking benefits of both.&lt;br /&gt;
==== Vector-orieded shape editor ====&lt;br /&gt;
Last but not the least there is one more idea on autogeneration tools involved in mapmaking process. Though the idea is very rough and needs severe critics from developpers it's basic is to provide the users a tool to design a vector shape which is then 'rasterized' to hexagons according to the rasterization rules. This includes optional 'gradients' between different terrain types e.g. a line of hills for a transition from rocks to plains. The aims of the idea are:&lt;br /&gt;
* Once again save the user from mundade and requiring tasks when drawing large portions of similar terrain. &lt;br /&gt;
* Let the generator make the terrain more lifelike for example adding occasional forest tiles on plains etc.&lt;br /&gt;
* Make transitions between different terrains more smooth, again freeing the designer from picking each tile by hand. &lt;br /&gt;
In short - most designers do not care of individual hexagons(however this is a matter of faction balance) but tend imagine the general overview of the things they are about to draw. Adding such functionality will allow them to quickly generate the thing that is on mind needing only some retouch after the generation. &lt;br /&gt;
&lt;br /&gt;
As to details IMHO Beziers curves are ideal to fill the role of a tool for defining areas as they provide intuitive and easy to code 'drag-n-bend' feature which most computer users are very familliar with. &lt;br /&gt;
=== Technology ===&lt;br /&gt;
==== GUI toolkit ====&lt;br /&gt;
This is the point to discuss with the developpers so I am presenting this in a form of pro-contras&lt;br /&gt;
===== Native Wesnoth UI =====&lt;br /&gt;
Pro:&lt;br /&gt;
* Gives an original '''Look-n-Feel''' of the game.&lt;br /&gt;
* Can be easily embedded into the main executable.&lt;br /&gt;
Contra: &lt;br /&gt;
* UI is not flexible enough. Some ideas (e.g. vectoral shape definition) would need extensive UI engine rewrite or at least a whole complex of things unsupported at the moment.&lt;br /&gt;
* As I've read [[EasyCoding#GUI_related_features | here]] UI structure is about to be rewritten so it is rather a volatile ground to base the whole new project on.&lt;br /&gt;
===== External UI =====&lt;br /&gt;
Pro:&lt;br /&gt;
* Will save time designing specialized widgets which are absent in Wesnoth UI.&lt;br /&gt;
* Will keep Wesnoth UI codebase clean of things that are solely used in editor.&lt;br /&gt;
Contra:&lt;br /&gt;
* Can't be trully embedded into the main game program.&lt;br /&gt;
* Will have very different visual style.&lt;br /&gt;
&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24847</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24847"/>
		<updated>2008-03-29T19:24:34Z</updated>

		<summary type="html">&lt;p&gt;Elfy: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here). MORE HERE&lt;br /&gt;
== Timeline ==&lt;br /&gt;
TODO&lt;br /&gt;
== Description ==&lt;br /&gt;
The project I've chosen is the rewrite of wesnoth map editor. &lt;br /&gt;
=== Features ===&lt;br /&gt;
==== Easy to use dialog-driven system to write WML ====&lt;br /&gt;
Since WML controls every aspect of the game it should be given for a user to manipulate in a transparent manner. The IMHO perfect example of such mechanic is '''Warcraft III Map Editor'''(WorldEdit). The users uses a graphical tool to write scenarios and customize units, spells etc. This data is then converted into a JASS script which acts like WML. However the WorldEdit is not that much flexible the Wesnoth editor will be because JASS is more a programming language and not all JASS expressions can be loaded into the Editor. Moreover Blizzard did leave some perks available only to hackers for usage. In the Wesnoth case WML can be easily represented in a graphical way, due to it's structure.&lt;br /&gt;
&lt;br /&gt;
While units are trivial to implement map triggers do cause a bit of challenge in the way of displaying data. Here again my proposal is not to reinvent the wheel and use the time proven Blizzard scheme as displayed on this '''StarEdit''' screenshot:&lt;br /&gt;
&lt;br /&gt;
http://img220.imageshack.us/img220/7162/screnshotkf4.png&lt;br /&gt;
&lt;br /&gt;
The idea is to give the user a tool to create triggers using '''event-conditions-actions''' combo, basically as it is done in map script. For each 'class' of event, condition and action there is a textual template with gaps for user to fill. Filling the gaps involves extensive use of lists, comboboxes etc. to free the user of any writing at all. &lt;br /&gt;
==== Symmetry generator ====&lt;br /&gt;
Symmetry is a critical point when designing melee maps. While some asymmetrical melee maps are known to exist in most strategies they are considered the state of art and are very fragile in terms of modification without breaking balance. A famous example - contest-winning '''(2)Two Rivers''' for WCIII:&lt;br /&gt;
&lt;br /&gt;
http://img230.imageshack.us/img230/2130/tworiverzof6.png&lt;br /&gt;
&lt;br /&gt;
The idea is to let the user select a portion of map(probably radial) and let the editor clone it to generate a symmetrical map. The advantages of such technique are:&lt;br /&gt;
* User is freed from calculating how the portion would look like if rotated. Though Wesnoth uses hexagonal map grid it is a real challenge for people not gifted enough artisticaly to imagine how a region would look like from the other point of view.&lt;br /&gt;
* The user is also freed from routine work repeating basically the same thing he did. Also modifying a thing would need all the copies modified manually which is a potential source of mistakes and a mundane in first place.&lt;br /&gt;
* It provides a editing layer in-between manual map editing and autogeneration taking benefits of both.&lt;br /&gt;
==== Vector-orieded shape editor ====&lt;br /&gt;
Last but not the least there is one more idea on autogeneration tools involved in mapmaking process. Though the idea is very rough and needs severe critics from developpers it's basic is to provide the users a tool to design a vector shape which is then 'rasterized' to hexagons according to the rasterization rules. This includes optional 'gradients' between different terrain types e.g. a line of hills for a transition from rocks to plains. The aims of the idea are:&lt;br /&gt;
* Once again save the user from mundade and requiring tasks when drawing large portions of similar terrain. &lt;br /&gt;
* Let the generator make the terrain more lifelike for example adding occasional forest tiles on plains etc.&lt;br /&gt;
* Make transitions between different terrains more smooth, again freeing the designer from picking each tile by hand. &lt;br /&gt;
In short - most designers do not care of individual hexagons(however this is a matter of faction balance) but tend imagine the general overview of the things they are about to draw. Adding such functionality will allow them to quickly generate the thing that is on mind needing only some retouch after the generation.&lt;br /&gt;
&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24845</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24845"/>
		<updated>2008-03-29T18:07:14Z</updated>

		<summary type="html">&lt;p&gt;Elfy: Another save&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Programming ==&lt;br /&gt;
At the very beginning of my career I've written program for Lesser Academy of Sciences contests which is an annual contest for scholars in different fields of science including computing. I've made four attempts with a ''graphical editor''(...in pascal ;-) ), a ''distributed database'', a ''security program'' and finally an ''infusoria shape reconstructor from a photograph''. Later on I've been writing small programs to use on my own. I've wanted to write a real time strategy for ages, I even began doing 2 or 3 engines but all the projects failed due to lack of artists. However from this immature games the simple fully functional '''3D model editor''' and the '''OpenGL GUI''' library were left. Now I basically stick to website writing(which I dislike :( ) and freelance programming for profit. I am eager to engage to a big project such as Wesnoth and that's one point for applying to GSoC.&lt;br /&gt;
== Teamwork ==&lt;br /&gt;
I've found a small team for freelance writing and I've faced the challenges teamwork offers to a developper. We've done a lot of programs together so I am getting more and more used to program in a team as opposed to being a 'lone wolf'.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I've never participated in Summer of Code before. Neither have I ever applied.&lt;br /&gt;
== Open Source ==&lt;br /&gt;
Though I use open source solutions for 5 years now I've never participated in an opensource project unfortunately. Though I've taken part in coding based on opensource involving program alteration for iternal tools of the internet center I work in.&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browsing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here). MORE HERE&lt;br /&gt;
== Timeline ==&lt;br /&gt;
TODO&lt;br /&gt;
== Description ==&lt;br /&gt;
TODO&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;br /&gt;
= Essay =&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24841</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24841"/>
		<updated>2008-03-29T17:25:02Z</updated>

		<summary type="html">&lt;p&gt;Elfy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Summer of Code]]&lt;br /&gt;
&lt;br /&gt;
This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here). MORE HERE&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24840</id>
		<title>User:Elfy/SoC Questionnaire</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:Elfy/SoC_Questionnaire&amp;diff=24840"/>
		<updated>2008-03-29T17:24:18Z</updated>

		<summary type="html">&lt;p&gt;Elfy: Most of the page exculding project &amp;amp; experience info. Saving not to lose&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page has Google Summer of Code proposal questionnaire filled by [[User:Elfy|Elfy]] 13:24, 29 March 2008 (EDT)&lt;br /&gt;
= Basics =&lt;br /&gt;
== Introduction ==&lt;br /&gt;
My name is Protas Oleksiy. I come from Southern Ukraine, Crimea more precisely. At the present moment I am a biology student and freelance programmer. Speaking of global goals I set in my life I would like to find a cure for cancer and aging one day as well as help open and alternative software gain worldwide acknowledge and break the chains of stereotype and monopoly regarding software market. My hobbies include solving math problems, wrtiting poems, fishkeeping beadcrafting and more. I am not employed at the moment but I am occupying head software engineer position in our [http://usic.org.ua university student internet center] and also do computer work at the [http://imbg.org.ua biological lab].&lt;br /&gt;
== Email ==&lt;br /&gt;
My main e-mail is: http://img217.imageshack.us/img217/5192/emailky4.png&lt;br /&gt;
== Nickname ==&lt;br /&gt;
My nick is '''elfy''' almost everywhere however on '''Freenode''' it's been already taken when I first connected to it so I often use '''JarisSeagull''' instead. Things like '''Elf-Eluna-Alina''', '''Jaris''' and '''Chantale''' can probably represent my identity on other resources.&lt;br /&gt;
== Summer o' Code ==&lt;br /&gt;
I decided to take part in summer of code because I've long heard about the project and it allows you to code for an opensource project while having a stipenid which is not a last concern for a student ;-) Moreover it's a good stimuli to finally joing opensource programmer community.&lt;br /&gt;
== Study ==&lt;br /&gt;
I study at [http://www.ukma.kiev.ua National University &amp;quot;Kievo-Mohylanska Akademia&amp;quot;] majoring in biology and attending extra courses of math, physics, chemistry and computer science. I am currently freshman because of reenrolling on biology from physics department.&lt;br /&gt;
= Experience =&lt;br /&gt;
== Gaming ==&lt;br /&gt;
Well, I can't consider myself truly a gamer but I've always been fond of computer games. I prefer fantasy strategies and roleplaying, puzzle, stealth action games. My top-list of games includes: all ''warcrafts'', ''thief'', ''doom''. Speaking of type I am more hacker than a gamer - I always seek to exploit the game, carry on experiments with engine and so on. Most of the times just for fun as oposed to find cheat-like exploits. Also the story and multiplayer is critical for the game to please me. I often dig hard into a storyline and analyze the game atmosphere, live in it. I've discovered '''Wesnoth''' roughly a year and a half ago while browing portage and immediately fell in love with it. I mostly lean towards multiplayer but not just a meelee scirmish but a more scripted and fun action.&lt;br /&gt;
= Project =&lt;br /&gt;
== Selection ==&lt;br /&gt;
I came up with the idea of project long before and I was just happy finding it in the list given by deleloppers. The project of my choice is '''Map/Scenario Editor'''.&lt;br /&gt;
== Reasoning ==&lt;br /&gt;
I've chosen the project because scripted map-editing is my passion in all strategy games I come across. Also having a userfriendly scenario editor greatly speeds up the mapmaking process as stated in an interview with Blizzard employee speaking of difficulties making maps for '''Warcraft I''' (TODO: link here). MORE HERE&lt;br /&gt;
== Gains ==&lt;br /&gt;
The first thing to gain from the project is to give birth to a brand-new scenario editor for wesnoth allowing the map base to grow more intensively. At least I would like also to use the thing after it is done ;-) The other thing to gain is the experience working on massive and opersource project which is on my point of view invaluable.&lt;br /&gt;
== Wesnoth Community ==&lt;br /&gt;
I hope to ;-) Wesnoth is a great thing to code for.&lt;br /&gt;
= Practical considerations =&lt;br /&gt;
== English ==&lt;br /&gt;
I consider my English level good enough to be able to communicate with other speakers. I've spent years reading English text because of programming a lot so I even have some little 'language sense' speaking of written English. I think the whole page can better present my skills in English than theese three sentences. ;-)&lt;br /&gt;
== SVN/C++/Python ==&lt;br /&gt;
C++ along with plain C are my languages of preference so I dare to claim knowing them almost perfectly. I've been using C/C++ for roughly 7 years now. &lt;br /&gt;
Subversion is the thing I've only discovered recently, but I think I've played enough with it to be able to use it as a confident user. &lt;br /&gt;
Python is unfortunately Terra Incognita for me. However it is on the my 'to-learn' list on highest positions along with Perl.&lt;br /&gt;
== Development tools ==&lt;br /&gt;
At present moment I mostly use '''Kate+GCC+GDB''' combo for development plus '''SVN+CMake''' for distributed projects. IDE's seem to complicated for me and moreover they do not provide enough freedom and flexibility generating lots of unneeded stuff. On the other hand when working on bigger projects I favour '''KDevelop''' for its usability and the option to cut down as much autogenerated code as possible. When using '''CMake''' my KDevelop basically transforms in a bigger Kate while I write all code by hand.&lt;br /&gt;
== Languages ==&lt;br /&gt;
=== Programming ===&lt;br /&gt;
I can code confidently in:&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* Pascal&lt;br /&gt;
* PHP&lt;br /&gt;
* BASH&lt;br /&gt;
More slowly and having an access to documentation:&lt;br /&gt;
* JavaScript&lt;br /&gt;
* BASIC/VBA&lt;br /&gt;
* JASS (WCIII scripting language)&lt;br /&gt;
=== Spoken ===&lt;br /&gt;
I speak natively:&lt;br /&gt;
* Russian&lt;br /&gt;
* Ukrainian&lt;br /&gt;
Also I am proficient in:&lt;br /&gt;
* English&lt;br /&gt;
* French (it was my major in school but I am loosing grasp due to lack of practice now)&lt;br /&gt;
* German (very elementary level mostly for understanding written text and not without a dictionary)&lt;br /&gt;
== Timing ==&lt;br /&gt;
I am generally awake 6:00 AM - 11:00 PM UTC&lt;br /&gt;
== Phone ==&lt;br /&gt;
I like phone calls but written communication with mentor is way better providing a logback and natural 'antinoise' and 'misunderstanding' protection :-)&lt;/div&gt;</summary>
		<author><name>Elfy</name></author>
		
	</entry>
</feed>