Difference between revisions of "User:Maheshakya"

From The Battle for Wesnoth Wiki
(Created page with 'Description - Refactor recruitment algorithm The required additions are described well in the ideas list. To meet with those objectives, following facts are taken in to consider…')
 
(Replaced content with 'I've been a gamer since I'm 6 years old. I’ve played uncountable number of games but haven't contributed much in developing them. So here I am to do it!')
 
Line 1: Line 1:
Description - Refactor recruitment algorithm
+
I've been a gamer since I'm 6 years old. I’ve played uncountable number of games but haven't contributed much in developing them. So here I am to do it!
 
 
The required additions are described well in the ideas list. To meet with those objectives, following facts are taken in to consideration.
 
- Terrain map
 
- Player’s experience level and achievements
 
-Enemy strengths and their position on the map
 
-Ally’s strength and their position on the map
 
-Characteristics of leaders
 
-Characteristics of units
 
-limits of units
 
-Attacking styles (Aggressive/Defensive/Neutral)
 
-Resource types and availability
 
These will be considered when the recruitment algorithms are developed to improve the stated areas in the ideas page.
 
 
 
IRC
 
maheshakya
 
 
 
Questionnaire
 
 
 
1) Basics
 
 
1.1) Write a small introduction to yourself.
 
I'm Pruthuvi Maheshakya Wijewardena, 22 years old. Currently I'm doing the bachelor's Degree at Faculty of Engineering, University of Moratuwa, Sri Lanka.  I’ve got a solid knowledge of data structures and algorithms and have practiced them with their applications.  I’ve also studied about Machine learning (though it’s yet to be covered during a future year in the university).  I’ve programmed some AI (searching, reasoning, etc.) in JAVA. I’ve also studied about game engine architecture on my own. My preferred language is C++. I’m capable of programming in C, C#, JAVA, Python, VB and I’ve a slight experience with Prolog & XNA studio as well. In addition, I’m a hardcore gamer. My aspiration is to improve the AI (not only for gaming, but also for broader and more sophisticated applications), so that it would have advance intuitive capabilities in decision making, reasoning, scheduling and performing various tasks.
 
1.2) State your preferred email address.
 
pmaheshakya4@gmail.com
 
1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?
 
IRC : maheshakya
 
Wesnoth forums : maheshakya
 
1.4) Why do you want to participate in summer of code?
 
I’m keen to gather some experience in software development projects, to collaborate with team mates in group working environment, to learn about the latest technical know-how and other uprising technologies, to apply in a useful manner what I have learned so for, to make new friends and to get to know professionals and I think this is the perfect place to achieve all of these expectations.
 
1.5) What are you studying, subject, level and school?
 
I’m studying for the degree Bachelor of Science of Engineering in the field of Computer Science and Engineering  at University of Moratuwa, Sri Lanka. I’m a level 2 student.
 
1.6) What country are you from, at what time are you most likely to be able to join IRC?
 
Sri Lanka,  I’m likely to be able to join IRC during  0030h to 0800h.
 
1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.
 
The exams in the semester 3 will be finished on 18th May. After that I have nothing special.
 
 
 
2) Experience
 
 
2.1) What programs/software have you worked on before?
 
I have done some software projects related to the subjects in our university such as management systems. I’ve also programmed dictionary with various searching and sorting capabilities which algorithms and data structures had heavily involved.  In addition I’ve competed twice in IEEE Xtreme programming competition and once in Google Code Jam.  I’m experienced in Linux command line too.
 
2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)
 
Yes,  Several software projects in the university were team environment based.
 
2.3) Have you participated to the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?
 
No, I haven’t. This’s the first time. I’ve applied for this as soon as I heard about this.
 
2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
 
Currently no.
 
2.5) Gaming experience - Are you a gamer?
 
Definitely!
 
2.5.1) What type of gamer are you?
 
I’m a patient gamer who waits for best and most appropriate opportunities.  I kind of analyze every opponent or any scenario before get involved with that to learn the vulnerabilities and strengths.  I’d rather use others drawbacks to achieve my objectives.  The intelligence level of the rivals (or friends) is always considered as a highly important. Pre-planned attacking is my style. But I’m also good at improvising whenever it’s required because I have a proper awareness of the situation already.
 
Sometimes I may go aggressive and blunder (but this happens when I’m depressed, not by gaming, but by other means.)
 
2.5.2) What type of games?
 
RPGs are my favorites. I play strategy as well (I prefer Real time more than Turn based because it allows me to get involved heavily and manipulate the situation as much as possible. In fact it’s more fun and challenging). Among those I love fantasy and Sci-fi.
 
In addition I like to play horrifying FPSs (such as Doom series) too. War based games are also preferred.
 
2.5.3) What type of opponents do you prefer?
 
Intelligent and active ones.  They should possess qualities which make me to detest them. Otherwise attacking them may make a guilty conscious in me. 
 
2.5.4) Are you more interested in story or gameplay?
 
I’m very interested in both because I consider those 2 as incomparable features in a game. Both of them are really essential for the exuberance of the game. Story is what keeps the player playing. If the story is boring It’s hard to carry on playing. Gameplay is what attracts me to the game.
 
2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
 
No, just started playing.
 
We do not plan to favor Wesnoth players as such, but some particular projects require a good feeling for the game which is hard to get without having played intensively.
 
 
2.6) If you have contributed any patches to Wesnoth, please list them below. You can also list patches that have been submitted but not committed yet and patches that have not been specifically written for GSoC. If you have gained commit access to our SVN (during the evaluation period or earlier) please state so.
 
no
 
 
3) Communication skills
 
 
3.1) Though most of our developers are not native English speakers, English is the project's working language.  Describe your fluency level in written English.
 
I’m quite good at written English and I’m really confident with my fluency.  I’m capable of comprehending technical papers of any kind. I read English books, magazines and papers as a habit.
 
3.2) What spoken languages are you fluent in?
 
Sinhala and English
 
3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.
 
Yes, I’m a very friendly person and I respect others’ ideas and opinions as well. I tolerate even very obstinate peers because their contribution may also be  imperative.
 
I have pretty good experience with player communities as I’ve played in local networks and online a lot.
 
3.4) Do you give constructive advice?
 
I’m very careful to advise only on the areas that I know thoroughly.  Otherwise I don’t bother to go on bragging myself. When any kind of consultancy is requested, I try my best to help (If I don’t know something  I tend to divert it to someone who knows it well, or try to figure it out myself then help the person with trouble)
 
3.5) Do you receive advice well?
 
Yes, there are few very important and helpful ones. In the contrary most of advices are completely useless when they are analyzed carefully.
 
3.6) Are you good at sorting useful criticisms from useless ones?
 
Yes, I think so.
 
3.7) How autonomous are you when developing ? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want
 
I practice both of those approaches whenever they feel more appropriate.
 
I do extreme programming if the project is not of severe importance or it should be completed in a very narrow time frame.  Otherwise I would go for planned solutions (I have experience in screwing up and have learned the lesson by taking that risk). In such situations
 
First I gather all necessary technical support after the analyzing the requirements. Then I would document the requirements and try to develop a solution. Algorithms are designed after that and start coding. During the coding phase I test them as well. Identifying and fixing bugs is also done.
 
I style is related with OOP, and in development process I tend to use the Unified process for software development. I’m also aware of many design patterns and apply them whenever possible.
 
 
 
4) Project
 
 
4.1) Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on?
 
Yes. Refactor recruitment algorithm
 
4.2) If you have invented your own project, please describe the project and the scope.
 
no
 
4.3) Why did you choose this project?
 
I want to prove myself in an area where I’m best at. This project involves vast algorithmic manipulations and I think I can perform well in that stuff. If I undertake another type of a project, I may most probably fail to complete it because I have much learn in those. But in this project, many of the required technologies are already known to me. I can use them effectively while I learn the remaining few. I’m pretty sure that I’ll be able to complete this project successfully with my knowledge and experience.
 
4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".
 
I don’t have any special thing scheduled during the coding period so that I can go with the gsoc timeline.
 
Here’s a brief & a rough schedule.
 
Week 1-week3: Documentation
 
Analyzing the requirements and defining the problem
 
Gathering technical support
 
Designing algorithms
 
Week4-week10: Coding
 
Week11-week14: Testing and debugging
 
Week15-week16: Final implementation/ deployment
 
 
 
4.5) Include as much technical detail about your implementation as you can
 
I haven’t got a clear idea of how this implementation thing works yet. As I’m through with C++, STL and Boost, I would like to do as much as possible using those.  Meanwhile I hope to study WML and LUA.
 
I can create my own test cases to test the program for correctness. I may use testing tools in preference or anything  you prefer.
 
4.6) What do you expect to gain from this project?
 
Mainly experience and knowledge.  I’d like to be an expert in game development; hence I’m hoping to obtain technical expertise on AI and other related aspects as much as possible. Getting to know professionals and making friends are also expected.
 
4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
 
I can serve as an AI developer.  I’m also good at concept arts so it can also be considered. I can also provide with ideas for campaigns and their story lines.
 
 
5) Practical considerations
 
 
5.1) Are you familiar with any of the following tools or languages?
 
* Subversion (used for all commits)
 
Yes, I’ve started using SVN several weeks ago. I’ve been working with git already.
 
* C++ (language used for all the normal source code)
 
Yes, It’s what I’m best at.
 
* STL, Boost, Sdl (C++ libraries used by Wesnoth)
 
I have practiced with STL a lot for problem solving competitions and can manipulate it in any preferred way.
 
I’ve used Boost libraries before to do some network programming and to develop some concurrency control applications. So Boost ‘s also not an issue.
 
Never used Sdl before, but started learning.
 
* Python (optional, mainly used for tools)
 
I know how to code in Python, but haven’t done much in that.
 
* build environments (eg cmake/scons)
 
I have used cmake, but don’t have much knowledge.
 
Never used scons
 
But I have some experience GNU build systems (Autotools).
 
* WML (the wesnoth specific scenario language)
 
I have a slight knowledge, but never used it.
 
* Lua (used in combination with WML to create scenarios)
 
No, haven’t heard of it. Started reading.
 
5.2) Which tools do you normally use for development? Why do you use them?
 
For the projects in the university (mainly base on JAVA) I use Eclipse. Netbeans and IDEA are also used sometimes.  I use JUNIT and TestNG for testing. I’m also using selenium web driver to deal with web applications. Log4J for error logging.  ANT and MAVEN are also used. These are used mainly because the requirements of our projects. (Automation, Testing and quality assurance).
 
For C++ and C I use Eclipse because it’s easy to debug and testing.  VI editor (maybe VIM) is also used often. I have used gedit and geany before, but have abandoned them now.
 
Recently I started using QT Creater to develop some programs with GUIs. I use SVN for version controlling.
 
 
 
5.3) What programming languages are you fluent in?
 
C, C++, JAVA – I’m well trained in these (C++: my favorite).
 
Python – passable experience with this.
 
C#, VB – have done some coding,  but not well practiced.
 
5.4) Would you mind talking with your mentor on telephone / internet phone? We would like to have a backup way for communications for the case that somehow emails and IRC do fail. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably *only* add this number in the application for you submit to google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of "there is no way to contact you" does arise!
 
No problem with telephones or internet phones. I prefer skype. I’ll put my mobile phone number in google page.
 
In general, students should be as verbose as possible in their answers and feel free to elaborate.
 

Latest revision as of 13:42, 4 April 2012

I've been a gamer since I'm 6 years old. I’ve played uncountable number of games but haven't contributed much in developing them. So here I am to do it!

This page was last edited on 4 April 2012, at 13:42.