Jeremy Spitz - Total Defense AI

From The Battle for Wesnoth Wiki

Description

My project is to create a AI that implements using defense such as letting units heal and putting units in a better defense position. To minimize loss of units for the AI. Some major points would be to:

-move injured units to safer positions, or places they can be healed.

-take advantage of map terrain

-minimize loss of units with high level or experience

-create defensive positions to minimize damage taken.


IRC optics2

Questionnaire


1) Basics

1.1) Write a small introduction to yourself.

I am a Computer Science major, at Rensselaer Polytechnic Institute. I know how to fluently program in C++, C and java, as well as some assembly.

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

Optics2

1.4) Why do you want to participate in summer of code?

I want to participate in summer of code in order to do something productive and fun over the some as well as more experience in computer science to help me get future jobs.

1.5) What are you studying, subject, level and school?

I am a Computer Science major, at Rensselaer Polytechnic Institute. I have taken Data structures, Computer Organization and Introduction to algorithms

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

United States, almost all day except from like 2am-10am

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

No

2) Experience

I have programmed several of my own games before, and have tutored multiple people in java.

2.1) What programs/software have you worked on before? I have worked in C++, C, Java, and some html. Most of the programming I have done has been without the help of other programs. 2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)

I have created one game with a few friends, as well as programmed some content private server games.

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.

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

2.5) Gaming experience - Are you a gamer?

yes

2.5.1) What type of gamer are you?

I am a hardcore gamer.

2.5.2) What type of games?

I like to play Turn based strategy, RTS, RPG, FPS, and several other types.

2.5.3) What type of opponents do you prefer? I prefer opponents who stick with a game until the match/game is finished, and are usually cooperative if on a team, or semi polite. 2.5.4) Are you more interested in story or gameplay?

I am interested in both; however I am more interested in the gameplay for a game like Wesnoth.

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

Yes, I played for a few years, and I preferred multiplayer slightly over single player. I have played dozens of different campaigns and countless multiplayer matches.

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 S­­V­­N (during the evaluation period or earlier) please state so.

no.

3) Communication skills

I have good communication skills. My native language is English.

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 am fluent in written English.

3.2) What spoken languages are you fluent in?

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.

3.4) Do you give constructive advice?

Yes.

3.5) Do you receive advice well?

Yes.

3.6) Are you good at sorting useful criticisms from useless ones?

Yes

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 prefer to discuss changes first and then start coding once we know what we want, Although depending on the code, I might code it as a proof if concept and then modify it to meet and changes that are needed.

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?

Total Defense Strategy, I would like to concentrate on making the AI have a more Defensive strategy.

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

4.3) Why did you choose this project?

It seems like a interesting and fun project, as well as it seems like a lot could be learned from it.

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 can work the entire summer, I have finals around May 18th so I won’t be doing much that week. 

4.5) Include as much technical detail about your implementation as you can

I would modify the AI to also take Defense into account and play more defensive.

4.6) What do you expect to gain from this project?

Experience in programming.

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

If I have time to code more once school starts again.

5) Practical considerations

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

  • Sub­­version (used for all commits)

a little

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

yes, very

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

yes

  • Python (optional, mainly used for tools)

no

  • build environments (eg cmake/scons)

yes, I have used cmake many times.

  • WML (the wesnoth specific scenario language)

no

  • Lua (used in combination with WML to create scenarios)
no

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

I usually use NetBeans, and a terminal to run the program, as well as valgrind to ensure there are no memory leaks. I use them because I am already used to how they work.

5.3) What programming languages are you fluent in? C++, C, Java, some assembly

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! I can talk to them on the telephone and internet phone.

This page was last edited on 7 April 2014, at 11:00.