Difference between revisions of "SummerOfCodeProposal Velory"

From The Battle for Wesnoth Wiki
(AI Improvement Idea)
(Personal Information/Introduction)
Line 15: Line 15:
 
'''''GNA ID:''''' velory
 
'''''GNA ID:''''' velory
  
'''''Email Address:''''' velory@undream.net , ghostproc@gmail.com'''''
+
'''''Email Address:''''' velory ATundream DOTnet , ghostproc ATgmail DOTcom'''''
  
 
[[Category:Summer of Code]]
 
[[Category:Summer of Code]]

Revision as of 21:16, 19 March 2009

Personal Information/Introduction

Name: Burkay Özdemir

Age: 21

Gender:Male

Education: 3 of 4 Year Degree, Computer Engineering

Wesnoth Forum ID: velory

IRC ID: Velory

GNA ID: velory

Email Address: velory ATundream DOTnet , ghostproc ATgmail DOTcom

Informal Introduction:

I am interested in GsoC and especially Wesnoth to improve my skills about Game Developing and also Open Source Developing.At the same time while improving myself i want to add somethings to game from myself and evolve this great game.

Experience:

I am at the end of third of four year bachelor education in Computer Engineering. After these years i became experienced about some computer languages(C,C++,Java,Perl,Python,C#,SQL etc.). And i experienced both procedural design and Object Oriented Design(including UML Design).I'm in advanced level in both C C++ and Java languages.I'm also the chief of the game development group in my school. I have developed many projects for School and a little for some companies. When i was intern -last summer- i had developed a Flight Simulation for Defence Industry. I worked on Linux(ubuntu) to develop,i used C++,Open Gl and Sdl libraries,image generators (MPV,CIGI).I developed whole simulation myself with help of my intern mentor. About teamworking the most crowded project that I have ever worked, included four people. If I get acception to this project, this will be my first time working with GSoC and the biggest open source project that i have ever worked on.

I'm a passionate gamer.My game genres of choices are Fantasy Role Playing games,MMORPGs,Real time Strategies,Simulations and Adventures. I'm playing Computer and Console games since i was 8 years old. First game that i played is Prehistoric. My priorities in games are about storyline and theme, not the graphics. So i believe that new generation games have huge problems about that.I'm playing Wesnoth about 2 week and i really enjoyed it reminded me Heroes III but Wesnoth's content is more flexible than Heroes and have gooder Theme. Game is harder then most turn based games and need to create good strategy for the win.

Communication skills:

My primary spoken/written language is Turkish.So english is my second language. But I have no problems interacting with others in a professional or social contacts.I could give and also receive constructive advices.

Project:

From the project ideas that I saw,I thought what I would like to participate in most will be "Write a primitive library for Formula AI". Im not too familiar with AI developing but its is in my interests. I'm trying to be familiar with formula AI about 1.5 week -playing game , looking to header files and class reference , read documentations about FAI on wiki , looking for forum threads etc. - So I choose this project because i know c++ well and i have also some real life experience on c++.Also i think i can learn quickly how AI is processing and i can develop new primitive library to AI.

About timeline; Generally my school ending at 2 p.m(GMT) and im usually awake to 12-1 a.m(GMT).At fridays my school ending at 10 a.m so i'm empty whole day after 10 a.m these days and off course i'm empty all weekends.(Turkey using GMT +2 btw).But i can both work and develop or research when i'm at school.Although i have exams at starting 25May and finishing at 7 June(And my school is ending at this day too). So in this two weeks i may not be doing much.On summer i have a internship but it will end at 4 p.m everyday(except Weekends-On weekends i can research and develop all day) and i can awake those days to 12-1 a.m too. So i can work much these hours(after 4.pm) and i can be online generally at 4 p.m on summer(at June-July).But i can develop when im at work(= before 4.pm) however it may not too much.And would have no problem for me to talking over the phone, internet or otherwise.

I wish to participate in the Google Summer of Code and especially Wesnoth because i want to be a Game Developer and Summer of Code is my chance to do that.I'm trying to improve myself but i need a mentor and i need to do something that is worthy.In Turkey, Game Development is really weak issue so finding a good mentor and good community is really hard.And also i want to take place as a Open Source Developer cause my philosophy about Softwares correspond with Open Source philosophy. I believe that knowledge and information would be free, I want to stay as developer in Wesnoth after GSoC. So im looking to GSoC as chance to boost myself and the door to being in developer team in Wesnoth.

Practical considerations:

I am using Subversion(svn).I'm good at C++ and writing about 2.5 years with C++ and i know Python about a year.And i'm using environments (eg cmake/autotools/scons) about 2 year. I am normally use Java and Python for development cause this languages have really good readability,reliability also they have good support for abstraction although they are really strong in their roles.And off course they are Open Source!!

AI Improvement Idea

It's just preparation(brainstorming etc.):(Not whole idea about project)

Im looking forum topics about a week i have a few ideas about improving ai but i dont know if these are possible. Generally analysis phase is most important phase.I'm planning to create sequence and use-case diagrams for decrease complexity,choosing algorithm and can separate things easily.On the other hand im taking Automata Theory Lesson this semester and im also planning to learn how to using a Finite State Machine in Ai so i can use to calculate all changeable strategies for AI.And add or edit some needed methods for example breaking to squad with new approaches.I can also work for create whole new library for FAI if needed because of new approaching to AI.

Spesificly About breaking the squad and movement: AI can choose leaders which will be leading squad and then his movements will push one queue after that other followers-that in same squad- will follow the leader with poped steppes from queue like Age of Empires and other games when u click follow someone.And leaders selection will be with looking attributes (moving capabilities etc.) First take a list our units If there are more than 5 man(or some number that can be choosed) look their attributes and choose couple of unit that have a similar move point.Seect one of them to leader and push his route to queue.After that pop movement from queue sı others can follow the leader... And for candidate moves:We can generate some method like findStrategy that will looking all available movement area for village,enemy or just for walk.We can define Priority attribute for selecting war with enemy,capturing village or just follow some route. Then findStrategy method shall return value with looking Priorities that we defined.After that we can easily do some movement,attack,capture in one method. For instance:If no village or enemy then AI can select random route for going to nearest village or enemy. If some enemy he shall control his state with isEnough method-which is checking all squad members, maybe they all need to be healed before attack-

Ps:By the way if this idea is out of the scope of the project, I am willing to work on whatever idea is accepted.