SummerOfCodeProposal LucaMoller

From The Battle for Wesnoth Wiki
Revision as of 22:11, 9 April 2010 by Crab (talk | contribs) (SoC Application)


This page is related to Summer of Code 2010
See the list of Summer of Code 2010 Ideas



This is a Summer of Code 2010 student page
Project: SoC Ideas Lua AI


Contents

Description

Luca Moller - Make the c++ AI functions avaiable through the lua engine

Working with lua and C++ bindings and with the already existing core functions, the idea of the project is to expose the remaining AI functions avaiable in C++. Everything that can be seen by the AI through C++ should also be seen by an AI implemented through a lua script. The final result would also include higher level AI functions to make it easier to scenario developers to set how they want the units in the scenario to act.

IRC

LucaMoller

SoC Application

Make the c++ AI functions available through the lua engine

Questionnaire

Basics

Write a small introduction to yourself.

Hello, my name is Luca Mattos Möller. I'm a 21 years old computer engineering student starting the third year of university. And like most here, I like programming and games.

State your preferred email address.

lucamattosmoller@gmail.com

If you have chosen a nick for IRC and Wesnoth forums, what is it?

  • Wesnoth forums: luca_moller
  • gna.org: luca_moller
  • irc: LucaMoller

Why do you want to participate in summer of code?

I'm looking for experience. And, of course, I'm a kind of open source enthusiast. =)

What are you studying, subject, level and school?

I'm studying computer engineering at Instituto Técnológico de Aeronáutica. As I said before, I'm on the third year in the university.

What country are you from, at what time are you most likely to be able to join IRC?

I'm from Brazil(UTC-3). I'm most likely to join irc at afternoon or night with a good flexibility depending on when its better to find who I need or needs me online.

Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.

I'm going to travel for about one week to present my last year science fair project on another fair, but I'll probably be able to keep on working the same way when I'm there.


Experience

What programs/software have you worked on before?

I've worked as the main programmer on the following projects:

I've also participated in ACM ICPC for 2 two years (getting the brazilian final on both of them, and with a medal on the second year)

Have you developed software in a team environment before? (As opposed to hacking on something on your own)

No, when I developed until now there was only 3 or 4 people involved.

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, this is my first time around with GSoC.

Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.

No, at least not yet.

Gaming experience - Are you a gamer?

Not much nowadays. But in the past I played games all the time! xD

What type of gamer are you?

The one the keeps on playing trying to get the highest score or the beat the hardest level! =P

What type of games?

When I was young and had a PSone and I played almost everything hehe (I liked RPGs, racing, strategy, action, fighting... games). My favorites were Final Fantasy Tactics and FF7 I think. On the PC I've played much Age of Empires 2, Heroes 3 , Diablo, etc. Recently, I've been playing some fighting games with friends (like Guilty Gear and BlazBlue) and some Dota(though I've managed to stopped with this =P ).

What type of opponents do you prefer?

The challenging ones!

Are you more interested in story or gameplay?

Gameplay! But the combo good gameplay+story is really atractive.

Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.

Not much, I've just started the first campaing and played some scenarios.

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.


3) Communication skills

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 believe I have a good fluency in written English.

What spoken languages are you fluent in?

Portuguese and English.

Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.

I think I'm reasonable enough to deal finely with players.

Do you give constructive advice?

I try to advice only when its constructive.

Do you receive advice well?

Yes, I think =)

Are you good at sorting useful criticisms from useless ones?

Not sure, but at least I try to look for the usefull part in criticisms.

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

Although I like to go start coding, I believe that good discussion is usually necessary for nice results.


Project

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, the project of exposing AI functions to lua scripts.

If you have invented your own project, please describe the project and the scope.

Why did you choose this project?

I'm quite interested in learing more about how AI works in games and also in learning lua (which I've just heard about some times, but sounded usefull and interesting)

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 have a one week trip to present my science fair project in another fair, but I dont know the exaxt schedule yet. (And I think I'll be able to keep up working while I'm there)

Include as much technical detail about your implementation as you can

The first steps of implementation would be exposing the C++ AI functions to the lua engine, mainly working lua/C++ bindings. Then the next steps would be to elaborate higher level AI functions, developing a kind of library of AI functions. And the final steps would be the refinement of the interface of the lua scripts, focusing on making them usable even by scenario developers who are not much familiar to AI.

What do you expect to gain from this project?

Some knowledge and experience.

What would make you stay in the Wesnoth community after the conclusion of SOC?

Getting involved with the community members and the project itself.


Practical considerations

Are you familiar with any of the following tools or languages?

   * Subversion (used for all commits)

I've used it sometimes in one of my projects(the 3D fighting game).

   * C++ (language used for all the normal source code)

Yes, I think C++ is my strongest point in this list.

   * STL, Boost, Sdl (C++ libraries used by Wesnoth)

Just STL.

   * Python (optional, mainly used for tools)

I've just quickly looked at it once, I dont have any experience with it, but I think I can learn fast if needed.

   * build environments (eg cmake/autotools/scons)

Not much, but I've already managed to compile the Wesnoth source with scons.

   * WML (the wesnoth specific scenario language)

I just took a look at it.

   * Lua (used in combination with WML to create scenarios)

Dont know much about it, but that's what I'm most willing to learn in this project.

Which tools do you normally use for development? Why do you use them?

On windows I used DevCpp and VS, now I'm using CodeBlocks in linux.

What programming languages are you fluent in?

C,C++ and php.

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 for me. I'll add the number before submitting to google.