VimzardMapEditor

From The Battle for Wesnoth Wiki
Revision as of 10:06, 23 March 2008 by Vimzard (talk | contribs) (Features)

Introduction

Name: Arun Tejasvi Chaganty

Nicks: vimzard on irc, forum and wiki.

Email: arunchaganty [at] gmail.com

Applying for: Map Editor / Parts of Scenario Editor (i.e. Integration of Map Editor with Scenario Editor)

My name is Arun Chaganty. I'm a 1st year Comp. Sci. & Engg. undergraduate at the Indian Institute of Technology, Madras (IITM). I like fiddling with any/everything, be it cracking open a phone or screwing around with mycomp. My motto is: "If it ain't broke, fix it till it is". Otherwise, I like playing basketball, reading/writing, and I'm currently trying not to suck at the guitar.

I've more or less learnt all that I know about programming from the open source world. By looking through code, I've gained insights in coding practices, techniques and paradigms. There are a lot of things that books and courses can't teach you; you have to look at a real live project to understand code organization, and make sense of OOPS, etc. This has meant a lot to me, and I really want to contribute back to the Open Source Wolrd. That is my prime motive for taking part in GSoC. I believe participating in such a project will encourage me to contribute regularly, and become part of the movement, besides teaching me loads. I really like Wesnoth, and I've been playing it since version 0.9.8 (I'm just stunned by the improvement). When I saw that it was on the GSoC list, I decided to apply for it.

Project

I've chosen the Map Editor because I'd like to make it fully functional. It's the beginning of the chain of making a new scenario, and hence, I feel it's important to get it right. Besides implementing a few features, and revamping it, I would like to work with whoever's doing the Scenario Editor to integrate it with that. I've gather the following points from a discussion on the IRC (mainly with __jdk__ and zookeeper). Of course there will be more things as I go along.

Features

  • Essential
    • Functional copy-paste
    • Resize canvas (without copying everything else)
      • Support for creating random terrain in the extended area / selected area\
    • Support for usermade content : Something like a palette.
  • Secondary
    • Support for static WML objects (like trees, campfires, etc.)
    • A more customizable random map generator
      • Terrain type (right now only plain grass)
      • Abiltiy to add weights for each player, i.e. give the enemy an advantage/disadvantage
      • Smart generation of strategic points (like a bridging island or a valley).
  • If time permits
    • Integration with the Scenario Editor

Vague Timeline

(Working on it)

Prior Experience

I've not had a lot of experience with large-scale projects. However most of what I've done has included creating small proof-of-concept programs using libraries. As a result, I'm comfortable using the following libraries:

  • SDL
  • GL
  • wxWidgets

I'm also familiar with GTK. I've learnt several languages to competence, namely, C/C++, PHP, Java and Python. A list of what I've done till date

  • I've made a simple Pong game (which I tried to extend into a more complex 3D version - I couldnt pursue it much further due to lack of time and academic pressure) using SDL (and GL for the 3D version).
  • A lame computerized version of "Guess-Who" as fan-art(http://www.fluffinbrooklyn.com/fan-art/?p=26). I'm not particularly proud of it because it's badly written code, and because I don't think anyone has actually played it other than me.
  • I've also was a part of the Project Angela group (http://www.projectangela.org/joomla/), a MMORPG engine. Here, I was able to contribute several ideas to the management of events and objects. However, I had to leave due to certain technical problems when I started my year in college (the freshmen were denied net access for the first semester).
  • I am part of my institute's Web Operations team (managing a student portal, and a cul-fest website).

Other Techincal Points

I'd like to implement this in C++ since i'm most comfortable with C++. Though I have not used the STL to the degree present in BfW, I am able to navigate through the code, and I am confident I will come up to the mark. I have used Python quite a bit, and it's my favorite language as such, although I haven't used it as much as C++. So far I have only used SVN to grab sources, but I am confident that I can learn how to use it quickly.

I have been using Linux for the past 3-4 years almost exclusively, and I am very comfortable with it. After using a number of IDE's I have finally found my home with Vim and GDB.

I follow an incremental development approach. I don't really know what the technical name is, but its the standard 'get something to work', add feature, 'get it to work again', add feature, ... model. I generally try and implement an isolated proof-of-concept prototype before including it into the main project. I've not tried automated testing, but I am eager to learn.

I'm not a very serious gamer, but when I do game, I prefer RPGs and strategy games (and the occasional FPS if I want to relieve some stress). To me, game play is important to get me caught on, but a good storyline keeps me caught. The magic recipe, IMHO, is to have a gameplay that has lots of variations, with a rich story line. For example a game like Tales of Phantasia (SNES) was 24k pure gold for me because, not only did it have a killer storyline, but it also had lots of mini-games, and the battle mode had lots of changes that were not just cosmetic. Games I put in the same ilk are CronoTrigger and FF5. Lately I've noticed that whenever I look at a game, I look for its technical merits as well.

Communication skills

Though I am not technically a native English speaker, I have used the language nearly exclusively since birth. I consider myself a fairly good speaker. I write articles for my college newpaper, and I occasionally write poems and prose also. I am a good listener, and I try to humour any new idea, reasoning it out for while rather than rejecting it out-right.

Other personal info

I am awake from 3:30 to 19:30 UTC. Presently I have classes, and hence I am free only from 9:30 to 19:30 on weekdays. During the vacations though, I have made sure that I am free from any other commitments, so that I can take out time however required. I do not mind talking over the phone, or VoIP for that matter - though the latter may have a lot of latency.