User:Rohita
1)Basics
I am Rohita Hemachandra, a 3rd year undergraduate student from university of Moratuwa, Sri Lanka, studying for a BSc in Information technology. I was interested in participating for Google Summer of Code 2009 because I would be able to contribute to an open source project in my free time and get an experience on how collaborative software projects are been developed. I was a keen follower of Google Summer of Code and this is my third time in applying for the program.
Email: rohita85@gmail.com Freenode nick: Rohita Wesnoth forum ID: rohita85
2)Experience
I have had an internship at WSO2 Inc [1], an open source SOA middle ware provider for 6months. I mainly contributed to WSO2 Mashup [2], a javascript web service engine. I worked in a project to implement gadget a server to WSO2 Mashup. Also I worked in WSO2 ESB [3], an open source Enterprise Service Bus (ESB). I implemented an Ajax based monitor to monitor and debug SOAP messages gone through the WSO2 ESB server.
I have worked with GTS [4], a software solution provider as a mobile application developer. I contributed mainly to Aba Hatana, a java mobile game developed as the official mobile game of the popular Sri Lanka film ABA [5]. I also developed a free SMS sending mobile application for Sri Lanka [6].
This is the third time I am applying for Google Summer of Code. On the previous two occasions I could not get selected to the program. The competition in the mentoring organizations I applied was tough but on the process I had many valuable experiences about the program.
I am a big fan of strategy based games since my childhood. The first to get on my attention was Age of Empires 2 and I found myself playing it many hours a day until I finished it successfully. Then on I moved onto more strategy games such as Command and Conquer Red Alert, Command and Conquer Generals, and Rome.
I am new to the game Battle for Wesnoth. What I found interesting in the game is the open environment where we can also get involved in the development process rather than only on playing. I am playing Battle for Wesnoth these days in the single player mode.
3) My mother tongue is Sinhala and also I am fluent in speaking and writing in English. In my internship at WSO2 I got experience on how to work in a collaborative environment. I communicated often with the community to get their feedbacks and requirements. I take advices as an encouragement and consider giving clear advices as necessary when the need arises. I believe that criticism can be either useful or useless, and try to get encouraged by the positive ones while ignoring what I consider the negative ones.
4) I chose, Implement campaign statistics reports on stats.wesnoth.org as the project to participate in Summer of Code. I chose Battle of Wesnoth as the possible mentoring organization because I am very interested in strategy based games and idea of an open source strategy game was very interesting to me. I chose this specific project as I have many experiences on charting and reporting projects. I have previous experiences on Eclipse Bert [7], Jasper , Google chart API and on MySql. I felt like this is the perfect project idea for me to participate in this year’s Summer of Code program.
I will be using Google chart API and Open Flash Chart [8] as the main charting components. Both of them are very good charting components that facilitate in creating dynamic and interactive charts and reports. I will be using php to query the stat database of Wesnoth and access and call charting components.
Once the project is successfully completed rather than just been a statistics viewer the project should aid campaign designers in decision making. A campaign decider should b able to decide whether or not a campaign is successful, what are most successful scenarios in a campaign, what the scenarios that prevent a player from progressing, what are the scenarios that players tend to play over and over, what are the most effective units and special units in a given scenario, whether the popularity of campaign is on the rise or declining, etc.
After the project is completed successfully I hope to provide the following charts and reports to campaign designers. 1) Users vs Campaigns graphs. For a selected duration, users would be displayed against selected campaigns in a line graph. 2) Reports on the number of players who played campaigns and the success rates. A bar graph would be provided with number defeats, victories and total games for each campaign. 3) The user participation in a given campaign over time. A Line graph depicting the how the player participation is changing over time for a given campaign. 4) Graph showing the number of victories and defeats in a campaign over time. 5) Number of victories and defeats in scenarios in a given campaign. 6) One particular user’s use of units and special units in a scenario and the result and the time duration. User would be able decide what is the best combination of units and special units for given scenario. 7) User successfulness of a given campaign. The campaign designer would able to decide the success rates of users, whether new users are finding it easily to succeed and whether experienced users succeed more than new users. 8) Campaign rating system. I would be introducing an algorithm to decide the best campaigns. Statistics on success rates, adaptability of new users, number of users who play again and again and the number of participants would be used in the algorithm. More ideas on this would be collected from the Battle of Wesnoth community. The algorithm would be clearly stated in the reports. 9) An option would be provided to the user to select the associating difficulty level of statistics. User would be able to select overall, easy, normal or difficult and view graphs and reports with statistics of the selected difficulty level.
I am hoping to get valuable experience oh how collaborative open source projects work and what programming techniques are used in strategy games by contributing to this project. I would also like to keep contributing to the reporting and statistics components in Battle for Wesnoth project and be a part of the development team.
Project Schedule
Community bonding period – Get ideas from campaign creators and wesnoth community. Studying wesnoth statistics database. Studying more advanced features of charting and reporting technologies.
The GSOC program spans 12 weeks, so I intend to utilize it as follows (milestone reached at the end of week):
Week 1: Designing the application. The charts and reports would be designed. The operations allowed for users would be decided and the navigation of the application would be designed. Week 2: Designing and creating the UI. Week 6: Implementing real application. The charts, reports and the navigation of the application would be implemented. Week 8: Get feedbacks and modifying the application to be robust and interactive. Week 10: Testing application and fixing bugs. Week 11: Documentation of the project to make sure the continuation of the project.
5) Practical Considerations I have previously worked in subversion based projects so I have very good experience on how to use subversion. I am not familiar with C++ but I have good experiences on Java and Python as desktop programming languages. I use Eclipse and jidea as development tools and my favorite build tool is Maven2. I am mostly online during the day. I would be available on IRC more often through 10.00 AM to 6.00 PM UTC. I would be available through phone in case of emergency; my phone number is +94715188005.
References: [1] www.wso2.com [2] http://wso2.org/projects/mashup [3] http://wso2.org/projects/esb/java [4]http://www.gtslk.com/ [5] http://www.abahatana.com/ [6] http://www.dms.lk/ [7] http://www.eclipse.org/birt/phoenix [8] http://teethgrinder.co.uk/open-flash-chart/gallery-pie.php