Difference between revisions of "User:Kripsi"

From The Battle for Wesnoth Wiki
(2) Experience)
(Questionnaire)
 
Line 15: Line 15:
 
=SoC Application=
 
=SoC Application=
 
Submitted to google
 
Submitted to google
 
=Questionnaire=
 
 
===1) Basics===
 
====1.1) Write a small introduction to yourself.====
 
 
====1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?====
 
 
Kripsi
 
 
====1.4) Why do you want to participate in summer of code?====
 
 
A chance to learn and further my experience in the games programming industry, and to possibly learn another language such as Python to add to my skillset.
 
 
====1.6) What country are you from, at what time are you most likely to be able to join IRC?====
 
 
I am from the UK, but I am usually around a computer most of the time so unless I get a summer job, probably from 10am to whenever I decide to go to bed :)
 
 
====1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.====
 
 
I am on holiday for 7 days in early June, 10th to the 17th.
 
 
===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.====
 
====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.====
 
 
I'm used to interacting with players from the MUD.
 
 
====3.4) Do you give constructive advice?====
 
 
I'd like to think so. I mentor a couple of other developers on the Discworld.
 
 
====3.5) Do you receive advice well?====
 
 
Definitely. If you don't, you'll just keep blundering on blindly until you break something.
 
 
====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====
 
 
It depends on the scale of what I'm about to develop. If it's something I can throw together in an hour, I'll probably just dive right in. If it's going to take me a few days, I like to talk it over, write things down, plan it out as to smooth the bumps before I hit them.
 
 
===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?====
 
 
I picked the "AI: Implement a 'total defense' strategy" project. I would like to focus on writing code that causes the AI to react to different scenarios such as location on the map, condition of their units, condition of the enemy units, how the player has positioned their units, time of day, etc.
 
 
====4.3) Why did you choose this project?====
 
 
It sounds best suited to the area of game development I would like to go into. I like the idea of being able to challenge players by writing interesting code that keeps them on their toes, and I also have written some AI code for the Discworld, with a goal of making some traditionally weak NPCs be able to stand up to themselves and force players to rethink their stratedy. (This code hasn't gone into game yet but has been playtested, I again can give more detail on this in private conversations).
 
 
====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".====
 
 
April 23rd to 1 May 20st:
 
 
- Familiarise myself with the existing code and WML.
 
 
- Evaluate the various AI routines I could look into writing, and which of those would be best
 
 
- Plan my project out into stages, referring it back to the mentor to see what they think of and to ask what they suggest in areas where I might not know how to tackle a problem
 
 
- Begin a UML Model (still learning this at University, but should have finished my coursework involving UML by then and be more familiar with this)
 
 
May 21st - June 9th:
 
 
- Begin writing the routines and testing them out in controlled environments. Aim to have a couple of examples of controlled AI tests by the midterm evaluation.
 
 
(Holiday from 10th June to 17th June)
 
 
June 17th - August 1st:
 
 
- Polish up the routines, begin testing them in a full game environment. Start cleaning up the code, writing up documentation.
 
 
August 1st - End of Summer
 
 
- Bugfixing, testing, more documentation.
 
 
====4.5) Include as much technical detail about your implementation as you can====
 
 
I don't know enough about the current AI systems, but I would hope to have units interacting with each other to collaborate and provide a strong defense whichever tactic is defined as best for that situation.
 
 
I would start the project looking into the current movement systems of the AI, spending some time learning what they already react to and base their actions upon. They obviously don't just charge to the nearest enemy unit, so seeing what they do and where code would need to be added to make them react would be first.
 
 
I would then spend the rest of my time writing code to recognise a scenario, how to react to it, how to realise that scenario is over and how to move on for each type of defensive scenario I could come up with.
 
 
 
====4.6) What do you expect to gain from this project?====
 
 
Experience, fun, more C++ knowledge and some knowledge of another language.
 
 
====4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?====
 
 
How good the game is to play with the people I've met, or if the opportunity to continue developing was to arise, how much fun I had doing that and the projects that followed.
 
 
===5) Practical considerations===
 
====5.1) Are you familiar with any of the following tools or languages?====
 
Subversion (used for all commits)
 
 
No, but I've seen it used and could hopefully learn fast/
 
 
C++ (language used for all the normal source code)
 
 
It's the main language I'm being taught at University, and I have lost one mark out of the 250 I have had available to me so far on that module. I'm not an expert yet, however.
 
 
STL, Boost, Sdl (C++ libraries used by Wesnoth)
 
 
No, but if it's C++ I can learn fast.
 
 
Python (optional, mainly used for tools)
 
 
Only experimented with it so far.
 
 
build environments (eg cmake/scons)
 
WML (the wesnoth specific scenario language)
 
 
No, but again, fast learner. I've used a couple of other specific development languages quickly enough, such as GML or UnrealScript.
 
 
Lua (used in combination with WML to create scenarios)
 
 
 
Yes, I've used it in plugins extensively. Not an expert again, but capable.
 
 
====5.2) Which tools do you normally use for development? Why do you use them?====
 
 
Visual Studio for big projects, Notepad++ for little ones.
 
 
====5.3) What programming languages are you fluent in?====
 
 
LPC (fluent)
 
C++ (learning, but quickly)
 
Lua (Not used it for a while, but proficient)
 
 
====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.====
 
 
More than happy for this, either via my mobile or via skype.
 

Latest revision as of 08:54, 6 May 2014


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



This is a Summer of Code 2012 student page


More Detail

My project would involve hooking into the current mechanisms that the AI chooses to run on an aggressive stance and allowing to decide when to press on with an attack and when to defend. The defences would include:

- Swapping out to stronger / healthier units - Form defensive positions around each other to protect or slow the enemy from taking advantage points - Recognise important positions worth fighting for and those to retreat from - Providing a method of counter-attacking when necessary.

IRC

Kripsi

SoC Application

Submitted to google

This page was last edited on 6 May 2014, at 08:54.