Powerful and user-friendly editor

From The Battle for Wesnoth Wiki

1. Basics

My name is Przemysław Zajadlak and I'm studying Computer Science (speciality: software engineering) at the Wroclaw University of Technology on the third year. My nick on the forum and IRC is przemekZ, and my e-mail address is przemyslaw.zajadlakATTgmail.com. I want to participate in summer of code to improve my abilities in creating and designing software and to try myself in real project as well. I would be also great to earn some money.


2. Experience

My previous experience in programming and projects is usually connected to my Univeristy. Some applications that I created are for example: graphics editor and curves editor in .NET, program in Java that implements few optimization methods for 2-variables functions included, visualize plots of this functons in 3D, counts symbolic derivatives and includes a mathematic equations parser which ables a user to define his own functions (you can see it here: [1]). I have experience in group working (XP programming, programming in pairs along with two of my friends jarek102 and lisu_). What is important for this project I have extended experience in developing graphic user interface in Java (in almost every of my group projects I was responsible for the interface part). I have never took part in summer of code before and I am not involved with any open source project. My gaming experience is various. I played many games (most of them are strategies, including turn based) such as Heroes of Might and Magic, Sid Meier's Civilization, Etherlords, Gorky 17, Command and Conquer and of course Battle for Wesnoth. I'm interested rather in story and climate of a game more than a gameplay. I'm playing rather with people because it gives me more fun. That is why multiplayer campaigns are most deserved part of Wesnoth development.


3. Communication skills

My native language is Polish but I'm also fluent in English (writing and speaking), and it's no problem for me to communicate in both languages. I'm rather social person so I have good skills in interacting with other players. I am active user of many forums and I was a member of a clan of Jedi Outcast players. Being a member of players community gives an opportunity to confront ideas with others, receive advices and analyze it. It also brought me a separating good criticism from bad ones skill. Always when I'm talking about proffesional issues I am trying not to be emotional and think of the arguments rather than the person who states it.


4. Project

From the list of projects I chose the campaign/scenario editor. I really believe, that making a good apliccation will help to enlarge the number of players and people that are interested in Battle for Wesnoth. It will help to develop many scenarios and campaigns (including multiplayer campaigns which are very important because they are giving a lot of fun). My primary target in this project is to create a user-friendly, intuitive editor for someone, who has some good ideas for campaign or scenario but cannot realise it, because creating a WML code is not a promising perspective for next few weeks ;)


Idea:

This tool in fact would not be nothing more than a graphic user interface for WML (giving opportunity to export and import WML files). To achieve this I will use the Java language. Basic idea is to create a framework in which every player (even not knowing WML) could prepare a fully functional and featured campaign. I want to achieve this by creating an editor which has to satisfy the following criteria:

  • intuitive
  • simple
  • fast
  • cross-platform
  • powerful (most of WML capabilities should be included)
  • making the work easier, more pleasure and faster rather than harder, slower and boring
  • colorful (good looking)

Because of the fact that this is impossible to asses something on just some points, that everyone can write, everyone can understand in different way so as a result it does not mean anything. In the presence of this case it is important to present some ideas so I would like to show a basic picture, outline of my GUI [2]. During the work on the campaign editor it will be very important to being in cooperation with people who are responsible for: creating map editor (final idea is to integrate both tools or at least create similar interface not to make design everything harder), multiplayer (because of the multiplayer campaigns), AI (to force behaviour of AI to achieve some objectives for example attack or defend leader). The second important phase which took part before coding starts will be to show on user forum some proposals of interface and give them opportunity to discuss this interface projects and how the final interface would look like. I also want to put a big stress on developing multiplayer campaigns not only because I like such but because of the fact in my opinion they integrate community. What is more, I want to create an application, which gives an easy access to translate all campaigns between different languages (implementing an existing I18N system). Players would not have problem with playing a fantastic campaign just because they do not know French or German (or even English). In my opinion it will truly help to enlarge a Wesnoth community.

The last important thing is WML import/export. I'm aware that creating fully functional tool for importing and exporting WML will be very difficult, so I think that I will try to realise a basic import/export function. Elements that will be imported properly can be edited in simple way, but some more complicated should be still edited in WML code.

The main thing I would like to achieve is experience. That is essential for me. Note that I chose Battle for Wesnoth because I prefer to make something interesting rather than boring applications, however I am aware developing a game does not have to be that fun as it sounds to be.

Timeline:

  • Up to Google: April 1 - April 14: Playing and analyzing Wesnoth campaigns and scenarios, write 2 easy code and one not so easy code patches.
  • April 14 - May 26: Community Bonding Period – In this part I will make some community research, propose some basic ideas about my project on user forum, get know with mentor and get to better know with WML (the most importan thing)
  • May 26 - July 14: Students are coding for their GSoC projects. July 14 is also final date to submit mid-term evaluation.

In this part I want to create a working prototype of my software which includes basic interface but does not include import/export WML option. In first few weeks I want to create a prototype, that will show how GUI will look like, and after that, I will start successivement programing all the features.

  • July 14 - August 18: Completing the rest of project

Before end of SoC I want to realise all functionality which was described above (of course some ideas may change because of players or mentors ideas). In last two weeks I would also do some good campaign to examine functionality of my program (I will have to get through and figth with the software I created myself ;) ). After the SoC I would appreciate if I could be maintainer of this software and could take part in further Wesnoth development.

5. Practical considerations

Languages that I know are: C/C++, Java, C#, Python (I had large contact but I don't know very well). My favourite development tools are Eclipse and Visual Studio. I know what is Sub­­version and how to use it, but I didn't use more complicated Sub­­version systems (like Mercurial). I'm awake from 10 a.m. to 1 a.m. It's not problem for me to speak with my mentor on telephone/internet phone.

6. Open source

Open source and commercial programming seems to be two completely different worlds. Members of both communities are trying to convince us that their point of view is the one and chosen. But in my opinion they cannot deny fact that this two worlds just cannot exist without each other. This cut-throat competition beetwen commercial and free programmers gives motivation and propels development of software. However, both of this statements have pros and cons. For example, commercial programmers are not very helpful persons, and from my point of view, they do not take part in some big communities, where people are sharing ideas, helping each other, discussing problems and possible solutions. Maybe they are aware that their knowledge have direct connection with their salary and they do not want more competition. On the other hand, a vast majority of commercial programmers have very good skills and they are making a good software. It is not like they do not care about the program they wrote and focus only on the money, but they are trying to make it as good as it can be. Thanks to them we can use such good programs as Photoshop, Adobe Premiere or just play fantastic games. In opposite to them are standing open source programers. Their idea is to make code free and give everyone oportunity to improve and adjust software to their expectations. We cannot also ommit the fact, that they are fighting with such distortions like patenting double-click. Open source is a great chance to non experienced programmers to learn something about creating software or taking part in big projects (like Summer of Code) and creates habits of sharing the knowledge rather than being a lone wolf (because information wants to be free, does not it?). An oportunity to develop the open software is a very big source of fresh ideas. When we take all this parts together and we season with some sense of competition we get an exploding mixture of software! Someone can say:this is madness, but I will say: no, this is open source.

This page was last edited on 21 March 2013, at 00:15.