<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Endercoaster</id>
	<title>The Battle for Wesnoth Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Endercoaster"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/Endercoaster"/>
	<updated>2026-05-05T01:07:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35619</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35619"/>
		<updated>2010-04-06T21:48:42Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: /* Questionnaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
=Quick Definitions=&lt;br /&gt;
Permission: A particular alliance rule.&amp;lt;br&amp;gt;&lt;br /&gt;
Active Player: The player who is setting alliance permissions (or equivalent if alliance settings locked)&amp;lt;br&amp;gt;&lt;br /&gt;
Passive Player: The player who the active player is setting permissions with regards to.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums).&lt;br /&gt;
&lt;br /&gt;
=Extended Description=&lt;br /&gt;
The permissions stored will be:&lt;br /&gt;
&lt;br /&gt;
*Enemy: Serves the function of the booleans in the enemies_ array to allow for emulation of the current alliance system and less fragility during development. (Things to consider: &amp;quot;Ally&amp;quot; instead such that true is the &amp;quot;friendlier&amp;quot; setting for all permissions)&lt;br /&gt;
*CanAttack: If set to false, the active player will be unable to attack units of the passive player. If set to true, they may. (Things to consider: BlockAttack instead such that true is the &amp;quot;friendlier&amp;quot; setting, Is there a penalty to your defense or counterattack if you are attacked by the passive player while CanAttack is false? Prompt to check an attack?)&lt;br /&gt;
*TakeVillages: If set to true, the active player can capture the villages of the passive player. (Things to consider: Making true friendly. If set to true, will the active player be unable to move into the village, or will they move into the village without capturing it? Prompt?)&lt;br /&gt;
*AllowHealing: If set to true, the active player's healers will heal units of the passive players if those units are within the healer's range. (Things to consider: Possible enum implementation of NO, PREFER_US (Will only heal passive player's units if no active player units in range need healing), EQUAL (Will treat active player and passive player units equal) , PREFER_THEM (Will only heal active player's units if no passive player's units in range need healing)).&lt;br /&gt;
*GiveShroud: If set to true, the passive player will receive the shroud information which the active player has.&lt;br /&gt;
*GiveFog: If set to true, the passive player will receive the fog information which the active player has.&lt;br /&gt;
*AllowVillageTeleport: If set to true, the passive player will be able to use the active player's villages to teleport.&lt;br /&gt;
*UseZOC: If set to true, the passive player will be affected by the active player's zone of control. If set to false, passive player units will not be hindered by the zone of control of active player units. (Things to consider: Friendly true: IgnoreZOC)&lt;br /&gt;
*ShareTeamChat: If set to true, messages which the active player sends in the team chat channel will be sent to the passive player (Things to consider: Team chat groups?)&lt;br /&gt;
*ShareTeamLabels: Shares team labels with the passive player. (Things to consider: seperate permissions for each label would be unwieldy but potentially useful. Label groups?)&lt;br /&gt;
*SharedVictory: At the basic level, if two or more players have this true for each other, than when one wins, they all win, and they will not count against each other's victory conditions (e.g. if the objective is &amp;quot;kill all enemy leaders&amp;quot;, then two players sharing victory will win when there are no leaders besides theirs). I also would like to put forward the idea to implement this specifically such that a player setting this to true means that the passive player wins when the active player wins and the active player does not count against the passive player's objective. Doing so would provide an asymmetry making shared victory the highest level of trust which it should be.&lt;br /&gt;
*If gabba implements his whiteboard idea whether through GSoC or not, at least one additional permission will be required. We are both aware of this fact and will collaborate to work this out.&lt;br /&gt;
&lt;br /&gt;
Upon doing this, a WML tag will be added to scenarios which marks whether the scenario uses the old or new alliance system. This will default to old such that scenarios written before the new alliance system will not be broken. The following step is one by one, making the permissions for the new system &amp;quot;active&amp;quot;--that is to say making the actions that concern permissions account for the permissions. This step may involve making AI that takes these restrictions and permissions into account when planning moves, or doing this may happen after the system is fully implemented for human players.&lt;br /&gt;
&lt;br /&gt;
WML functionality would then be added which allows individual permissions to be locked or unlocked in scenarios, with a default of unlocked. A diplomacy window would then be added to the GUI, allowing players to edit permissions. This window would only be accessible for scenarios where at least one permission is unlocked. This window would have tabs for each player other than the active player, with a checkbox (or if enums are used, radio buttons where appropriate) for each permission unlocked for this scenario. The window can be opened directly to the tab of a player by right clicking on one of that player's units and clicking on a &amp;quot;diplomacy&amp;quot; item on the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
Finally is any AI work left to be done:&lt;br /&gt;
Level 1 (very doable): AI that takes restrictions and permissions into account when planning moves.&lt;br /&gt;
Level 2 (probably doable with help from somebody more knowledgeable about AI): AI that will plan moves that benefits &amp;quot;allies&amp;quot;&lt;br /&gt;
Level 3 (very unlikely for summer, if even possible): AI which is able to change permissions in scenarios where permissions are unlocked. (Without this, all unlocked privileges will remain at their default value, which is just fine)&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Path&amp;quot; for development included in proposal.&lt;br /&gt;
Pre-summer: Refactor enemies_[] and WML to choose between old and new alliance, defaulting to old&lt;br /&gt;
5/24-5/30: Implement CanAttack and TakeVillages&lt;br /&gt;
5/31-6/6: AllowHealing&lt;br /&gt;
6/7-6/13:  ShareShroud and ShareFog&lt;br /&gt;
6/14-6/20: AllowVillageTeleport and UseZOC&lt;br /&gt;
6/21-6/27: ShareTeamLabels and ShareTeamChat&lt;br /&gt;
6/28-7/4: SharedVictory&lt;br /&gt;
7/5-7/11: WML to have permissions locked or unlocked (New Alliance System now fully functional in scenarios where permissions are locked)&lt;br /&gt;
7/12-7/18: Mid-term evaluation, &lt;br /&gt;
7/19-7/25: GUI Work&lt;br /&gt;
7/26-8/1: AI Work&lt;br /&gt;
8/2-8/8: Extra time for clean-up, slack for unexpected difficulty, etc.&lt;br /&gt;
8/9-8/15: As above if necessary, but aiming for &amp;quot;pencil down&amp;quot; by 8/9&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Technical detail included in above proposal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35617</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35617"/>
		<updated>2010-04-06T21:41:24Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: /* Extended Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
=Quick Definitions=&lt;br /&gt;
Permission: A particular alliance rule.&amp;lt;br&amp;gt;&lt;br /&gt;
Active Player: The player who is setting alliance permissions (or equivalent if alliance settings locked)&amp;lt;br&amp;gt;&lt;br /&gt;
Passive Player: The player who the active player is setting permissions with regards to.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums).&lt;br /&gt;
&lt;br /&gt;
=Extended Description=&lt;br /&gt;
The permissions stored will be:&lt;br /&gt;
&lt;br /&gt;
*Enemy: Serves the function of the booleans in the enemies_ array to allow for emulation of the current alliance system and less fragility during development. (Things to consider: &amp;quot;Ally&amp;quot; instead such that true is the &amp;quot;friendlier&amp;quot; setting for all permissions)&lt;br /&gt;
*CanAttack: If set to false, the active player will be unable to attack units of the passive player. If set to true, they may. (Things to consider: BlockAttack instead such that true is the &amp;quot;friendlier&amp;quot; setting, Is there a penalty to your defense or counterattack if you are attacked by the passive player while CanAttack is false? Prompt to check an attack?)&lt;br /&gt;
*TakeVillages: If set to true, the active player can capture the villages of the passive player. (Things to consider: Making true friendly. If set to true, will the active player be unable to move into the village, or will they move into the village without capturing it? Prompt?)&lt;br /&gt;
*AllowHealing: If set to true, the active player's healers will heal units of the passive players if those units are within the healer's range. (Things to consider: Possible enum implementation of NO, PREFER_US (Will only heal passive player's units if no active player units in range need healing), EQUAL (Will treat active player and passive player units equal) , PREFER_THEM (Will only heal active player's units if no passive player's units in range need healing)).&lt;br /&gt;
*GiveShroud: If set to true, the passive player will receive the shroud information which the active player has.&lt;br /&gt;
*GiveFog: If set to true, the passive player will receive the fog information which the active player has.&lt;br /&gt;
*AllowVillageTeleport: If set to true, the passive player will be able to use the active player's villages to teleport.&lt;br /&gt;
*UseZOC: If set to true, the passive player will be affected by the active player's zone of control. If set to false, passive player units will not be hindered by the zone of control of active player units. (Things to consider: Friendly true: IgnoreZOC)&lt;br /&gt;
*ShareTeamChat: If set to true, messages which the active player sends in the team chat channel will be sent to the passive player (Things to consider: Team chat groups?)&lt;br /&gt;
*ShareTeamLabels: Shares team labels with the passive player. (Things to consider: seperate permissions for each label would be unwieldy but potentially useful. Label groups?)&lt;br /&gt;
*SharedVictory: At the basic level, if two or more players have this true for each other, than when one wins, they all win, and they will not count against each other's victory conditions (e.g. if the objective is &amp;quot;kill all enemy leaders&amp;quot;, then two players sharing victory will win when there are no leaders besides theirs). I also would like to put forward the idea to implement this specifically such that a player setting this to true means that the passive player wins when the active player wins and the active player does not count against the passive player's objective. Doing so would provide an asymmetry making shared victory the highest level of trust which it should be.&lt;br /&gt;
*If gabba implements his whiteboard idea whether through GSoC or not, at least one additional permission will be required. We are both aware of this fact and will collaborate to work this out.&lt;br /&gt;
&lt;br /&gt;
Upon doing this, a WML tag will be added to scenarios which marks whether the scenario uses the old or new alliance system. This will default to old such that scenarios written before the new alliance system will not be broken. The following step is one by one, making the permissions for the new system &amp;quot;active&amp;quot;--that is to say making the actions that concern permissions account for the permissions. This step may involve making AI that takes these restrictions and permissions into account when planning moves, or doing this may happen after the system is fully implemented for human players.&lt;br /&gt;
&lt;br /&gt;
WML functionality would then be added which allows individual permissions to be locked or unlocked in scenarios, with a default of unlocked. A diplomacy window would then be added to the GUI, allowing players to edit permissions. This window would only be accessible for scenarios where at least one permission is unlocked. This window would have tabs for each player other than the active player, with a checkbox (or if enums are used, radio buttons where appropriate) for each permission unlocked for this scenario. The window can be opened directly to the tab of a player by right clicking on one of that player's units and clicking on a &amp;quot;diplomacy&amp;quot; item on the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
Finally is any AI work left to be done:&lt;br /&gt;
Level 1 (very doable): AI that takes restrictions and permissions into account when planning moves.&lt;br /&gt;
Level 2 (probably doable with help from somebody more knowledgeable about AI): AI that will plan moves that benefits &amp;quot;allies&amp;quot;&lt;br /&gt;
Level 3 (very unlikely for summer, if even possible): AI which is able to change permissions in scenarios where permissions are unlocked. (Without this, all unlocked privileges will remain at their default value, which is just fine)&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Path&amp;quot; for development included in proposal.&lt;br /&gt;
Pre-summer: Refactor enemies_[] and WML to choose between old and new alliance, defaulting to old&lt;br /&gt;
5/24-5/30: Implement CanAttack and TakeVillages&lt;br /&gt;
5/31-6/6: AllowHealing and AllowLeaders&lt;br /&gt;
6/7-6/13:  ShareShroud and ShareFog&lt;br /&gt;
6/14-6/20: AllowVillageTeleport and UseZOC&lt;br /&gt;
6/21-6/27: ShareTeamLabels and ShareTeamChat&lt;br /&gt;
6/28-7/4: SharedVictory&lt;br /&gt;
7/5-7/11: WML to have permissions locked or unlocked (New Alliance System now fully functional in scenarios where permissions are locked)&lt;br /&gt;
7/12-7/18: Mid-term evaluation, &lt;br /&gt;
7/19-7/25: GUI Work&lt;br /&gt;
7/26-8/1: AI Work&lt;br /&gt;
8/2-8/8: Extra time for clean-up, slack for unexpected difficulty, etc.&lt;br /&gt;
8/9-8/15: As above if necessary, but aiming for &amp;quot;pencil down&amp;quot; by 8/9&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Technical detail included in above proposal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35609</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35609"/>
		<updated>2010-04-06T21:29:52Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: /* Questionnaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
=Quick Definitions=&lt;br /&gt;
Permission: A particular alliance rule.&amp;lt;br&amp;gt;&lt;br /&gt;
Active Player: The player who is setting alliance permissions (or equivalent if alliance settings locked)&amp;lt;br&amp;gt;&lt;br /&gt;
Passive Player: The player who the active player is setting permissions with regards to.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums). The permissions stored will be:&lt;br /&gt;
*Enemy: Serves the function of the booleans in the enemies_ array to allow for emulation of the current alliance system and less fragility during development. (Things to consider: &amp;quot;Ally&amp;quot; instead such that true is the &amp;quot;friendlier&amp;quot; setting for all permissions)&lt;br /&gt;
*CanAttack: If set to false, the active player will be unable to attack units of the passive player. If set to true, they may. (Things to consider: BlockAttack instead such that true is the &amp;quot;friendlier&amp;quot; setting, Is there a penalty to your defense or counterattack if you are attacked by the passive player while CanAttack is false? Prompt to check an attack?)&lt;br /&gt;
*TakeVillages: If set to true, the active player can capture the villages of the passive player. (Things to consider: Making true friendly. If set to true, will the active player be unable to move into the village, or will they move into the village without capturing it? Prompt?)&lt;br /&gt;
*AllowHealing: If set to true, the active player's healers will heal units of the passive players if those units are within the healer's range. (Things to consider: Possible enum implementation of NO, PREFER_US (Will only heal passive player's units if no active player units in range need healing), EQUAL (Will treat active player and passive player units equal) , PREFER_THEM (Will only heal active player's units if no passive player's units in range need healing)).&lt;br /&gt;
*AllowLeaders: If set to true, passive player units can benefits from active player units with leadership.&lt;br /&gt;
*GiveShroud: If set to true, the passive player will receive the shroud information which the active player has.&lt;br /&gt;
*GiveFog: If set to true, the passive player will receive the fog information which the active player has.&lt;br /&gt;
*AllowVillageTeleport: If set to true, the passive player will be able to use the active player's villages to teleport.&lt;br /&gt;
*UseZOC: If set to true, the passive player will be affected by the active player's zone of control. If set to false, passive player units will not be hindered by the zone of control of active player units. (Things to consider: Friendly true: IgnoreZOC)&lt;br /&gt;
*ShareTeamChat: If set to true, messages which the active player sends in the team chat channel will be sent to the passive player (Things to consider: Team chat groups?)&lt;br /&gt;
*ShareTeamLabels: Shares team labels with the passive player. (Things to consider: seperate permissions for each label would be unwieldy but potentially useful. Label groups?)&lt;br /&gt;
*SharedVictory: At the basic level, if two or more players have this true for each other, than when one wins, they all win, and they will not count against each other's victory conditions (e.g. if the objective is &amp;quot;kill all enemy leaders&amp;quot;, then two players sharing victory will win when there are no leaders besides theirs). I also would like to put forward the idea to implement this specifically such that a player setting this to true means that the passive player wins when the active player wins and the active player does not count against the passive player's objective. Doing so would provide an asymmetry making shared victory the highest level of trust which it should be.&lt;br /&gt;
*If gabba implements his whiteboard idea whether through GSoC or not, at least one additional permission will be required. We are both aware of this fact and will collaborate to work this out.&lt;br /&gt;
&lt;br /&gt;
Upon doing this, a WML tag will be added to scenarios which marks whether the scenario uses the old or new alliance system. This will default to old such that scenarios written before the new alliance system will not be broken. The following step is one by one, making the permissions for the new system &amp;quot;active&amp;quot;--that is to say making the actions that concern permissions account for the permissions. This step may involve making AI that takes these restrictions and permissions into account when planning moves, or doing this may happen after the system is fully implemented for human players.&lt;br /&gt;
&lt;br /&gt;
WML functionality would then be added which allows individual permissions to be locked or unlocked in scenarios, with a default of unlocked. A diplomacy window would then be added to the GUI, allowing players to edit permissions. This window would only be accessible for scenarios where at least one permission is unlocked. This window would have tabs for each player other than the active player, with a checkbox (or if enums are used, radio buttons where appropriate) for each permission unlocked for this scenario. The window can be opened directly to the tab of a player by right clicking on one of that player's units and clicking on a &amp;quot;diplomacy&amp;quot; item on the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
Finally is any AI work left to be done:&lt;br /&gt;
Level 1 (very doable): AI that takes restrictions and permissions into account when planning moves.&lt;br /&gt;
Level 2 (probably doable with help from somebody more knowledgeable about AI): AI that will plan moves that benefits &amp;quot;allies&amp;quot;&lt;br /&gt;
Level 3 (very unlikely for summer, if even possible): AI which is able to change permissions in scenarios where permissions are unlocked. (Without this, all unlocked privileges will remain at their default value, which is just fine)&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Path&amp;quot; for development included in proposal.&lt;br /&gt;
Pre-summer: Refactor enemies_[] and WML to choose between old and new alliance, defaulting to old&lt;br /&gt;
5/24-5/30: Implement CanAttack and TakeVillages&lt;br /&gt;
5/31-6/6: AllowHealing and AllowLeaders&lt;br /&gt;
6/7-6/13:  ShareShroud and ShareFog&lt;br /&gt;
6/14-6/20: AllowVillageTeleport and UseZOC&lt;br /&gt;
6/21-6/27: ShareTeamLabels and ShareTeamChat&lt;br /&gt;
6/28-7/4: SharedVictory&lt;br /&gt;
7/5-7/11: WML to have permissions locked or unlocked (New Alliance System now fully functional in scenarios where permissions are locked)&lt;br /&gt;
7/12-7/18: Mid-term evaluation, &lt;br /&gt;
7/19-7/25: GUI Work&lt;br /&gt;
7/26-8/1: AI Work&lt;br /&gt;
8/2-8/8: Extra time for clean-up, slack for unexpected difficulty, etc.&lt;br /&gt;
8/9-8/15: As above if necessary, but aiming for &amp;quot;pencil down&amp;quot; by 8/9&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Technical detail included in above proposal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35605</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35605"/>
		<updated>2010-04-06T21:04:07Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
=Quick Definitions=&lt;br /&gt;
Permission: A particular alliance rule.&amp;lt;br&amp;gt;&lt;br /&gt;
Active Player: The player who is setting alliance permissions (or equivalent if alliance settings locked)&amp;lt;br&amp;gt;&lt;br /&gt;
Passive Player: The player who the active player is setting permissions with regards to.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums). The permissions stored will be:&lt;br /&gt;
*Enemy: Serves the function of the booleans in the enemies_ array to allow for emulation of the current alliance system and less fragility during development. (Things to consider: &amp;quot;Ally&amp;quot; instead such that true is the &amp;quot;friendlier&amp;quot; setting for all permissions)&lt;br /&gt;
*CanAttack: If set to false, the active player will be unable to attack units of the passive player. If set to true, they may. (Things to consider: BlockAttack instead such that true is the &amp;quot;friendlier&amp;quot; setting, Is there a penalty to your defense or counterattack if you are attacked by the passive player while CanAttack is false? Prompt to check an attack?)&lt;br /&gt;
*TakeVillages: If set to true, the active player can capture the villages of the passive player. (Things to consider: Making true friendly. If set to true, will the active player be unable to move into the village, or will they move into the village without capturing it? Prompt?)&lt;br /&gt;
*AllowHealing: If set to true, the active player's healers will heal units of the passive players if those units are within the healer's range. (Things to consider: Possible enum implementation of NO, PREFER_US (Will only heal passive player's units if no active player units in range need healing), EQUAL (Will treat active player and passive player units equal) , PREFER_THEM (Will only heal active player's units if no passive player's units in range need healing)).&lt;br /&gt;
*AllowLeaders: If set to true, passive player units can benefits from active player units with leadership.&lt;br /&gt;
*GiveShroud: If set to true, the passive player will receive the shroud information which the active player has.&lt;br /&gt;
*GiveFog: If set to true, the passive player will receive the fog information which the active player has.&lt;br /&gt;
*AllowVillageTeleport: If set to true, the passive player will be able to use the active player's villages to teleport.&lt;br /&gt;
*UseZOC: If set to true, the passive player will be affected by the active player's zone of control. If set to false, passive player units will not be hindered by the zone of control of active player units. (Things to consider: Friendly true: IgnoreZOC)&lt;br /&gt;
*ShareTeamChat: If set to true, messages which the active player sends in the team chat channel will be sent to the passive player (Things to consider: Team chat groups?)&lt;br /&gt;
*ShareTeamLabels: Shares team labels with the passive player. (Things to consider: seperate permissions for each label would be unwieldy but potentially useful. Label groups?)&lt;br /&gt;
*SharedVictory: At the basic level, if two or more players have this true for each other, than when one wins, they all win, and they will not count against each other's victory conditions (e.g. if the objective is &amp;quot;kill all enemy leaders&amp;quot;, then two players sharing victory will win when there are no leaders besides theirs). I also would like to put forward the idea to implement this specifically such that a player setting this to true means that the passive player wins when the active player wins and the active player does not count against the passive player's objective. Doing so would provide an asymmetry making shared victory the highest level of trust which it should be.&lt;br /&gt;
*If gabba implements his whiteboard idea whether through GSoC or not, at least one additional permission will be required. We are both aware of this fact and will collaborate to work this out.&lt;br /&gt;
&lt;br /&gt;
Upon doing this, a WML tag will be added to scenarios which marks whether the scenario uses the old or new alliance system. This will default to old such that scenarios written before the new alliance system will not be broken. The following step is one by one, making the permissions for the new system &amp;quot;active&amp;quot;--that is to say making the actions that concern permissions account for the permissions. This step may involve making AI that takes these restrictions and permissions into account when planning moves, or doing this may happen after the system is fully implemented for human players.&lt;br /&gt;
&lt;br /&gt;
WML functionality would then be added which allows individual permissions to be locked or unlocked in scenarios, with a default of unlocked. A diplomacy window would then be added to the GUI, allowing players to edit permissions. This window would only be accessible for scenarios where at least one permission is unlocked. This window would have tabs for each player other than the active player, with a checkbox (or if enums are used, radio buttons where appropriate) for each permission unlocked for this scenario. The window can be opened directly to the tab of a player by right clicking on one of that player's units and clicking on a &amp;quot;diplomacy&amp;quot; item on the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
Finally is any AI work left to be done:&lt;br /&gt;
Level 1 (very doable): AI that takes restrictions and permissions into account when planning moves.&lt;br /&gt;
Level 2 (probably doable with help from somebody more knowledgeable about AI): AI that will plan moves that benefits &amp;quot;allies&amp;quot;&lt;br /&gt;
Level 3 (very unlikely for summer, if even possible): AI which is able to change permissions in scenarios where permissions are unlocked. (Without this, all unlocked privileges will remain at their default value, which is just fine)&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Path&amp;quot; for development included in proposal.&lt;br /&gt;
Roughly speaking, I plan to refactor to an array before GSoC begins, Spend the time up until the mid-term evaluation doing the stuff other than the AI, and the time from the mid-term evaluation until the end doing AI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Technical detail included in above proposal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35535</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35535"/>
		<updated>2010-04-06T00:24:36Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: /* Quick Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
=Quick Definitions=&lt;br /&gt;
Permission: A particular alliance rule.&amp;lt;br&amp;gt;&lt;br /&gt;
Active Player: The player who is setting alliance permissions (or equivalent if alliance settings locked)&amp;lt;br&amp;gt;&lt;br /&gt;
Passive Player: The player who the active player is setting permissions with regards to.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums). The permissions stored will be:&lt;br /&gt;
*Enemy: Serves the function of the booleans in the enemies_ array to allow for emulation of the current alliance system and less fragility during development. (Things to consider: &amp;quot;Ally&amp;quot; instead such that true is the &amp;quot;friendlier&amp;quot; setting for all permissions)&lt;br /&gt;
*CanAttack: If set to false, the active player will be unable to attack units of the passive player. If set to true, they may. (Things to consider: BlockAttack instead such that true is the &amp;quot;friendlier&amp;quot; setting, Is there a penalty to your defense or counterattack if you are attacked by the passive player while CanAttack is false? Prompt to check an attack?)&lt;br /&gt;
*TakeVillages: If set to true, the active player can capture the villages of the passive player. (Things to consider: Making true friendly. If set to true, will the active player be unable to move into the village, or will they move into the village without capturing it? Prompt?)&lt;br /&gt;
*AllowHealing: If set to true, the active player's healers will heal units of the passive players if those units are within the healer's range. (Things to consider: Possible enum implementation of NO, PREFER_US (Will only heal passive player's units if no active player units in range need healing), EQUAL (Will treat active player and passive player units equal) , PREFER_THEM (Will only heal active player's units if no passive player's units in range need healing)).&lt;br /&gt;
*AllowLeaders: If set to true, passive player units can benefits from active player units with leadership.&lt;br /&gt;
*GiveShroud: If set to true, the passive player will receive the shroud information which the active player has.&lt;br /&gt;
*GiveFog: If set to true, the passive player will receive the fog information which the active player has.&lt;br /&gt;
*AllowVillageTeleport: If set to true, the passive player will be able to use the active player's villages to teleport.&lt;br /&gt;
*UseZOC: If set to true, the passive player will be affected by the active player's zone of control. If set to false, passive player units will not be hindered by the zone of control of active player units. (Things to consider: Friendly true: IgnoreZOC)&lt;br /&gt;
*ShareTeamChat: If set to true, messages which the active player sends in the team chat channel will be sent to the passive player (Things to consider: This explanation is an assumption on how team chat works which will be confirmed or corrected when I play multiplayer)&lt;br /&gt;
*ShareTeamLabels: TODO: Figure out what team labels are.&lt;br /&gt;
*SharedVictory: At the basic level, if two or more players have this true for each other, than when one wins, they all win, and they will not count against each other's victory conditions (e.g. if the objective is &amp;quot;kill all enemy leaders&amp;quot;, then two players sharing victory will win when there are no leaders besides theirs). I also would like to put forward the idea to implement this specifically such that a player setting this to true means that the passive player wins when the active player wins and the active player does not count against the passive player's objective. Doing so would provide an asymmetry making shared victory the highest level of trust which it should be.&lt;br /&gt;
*If gabba implements his whiteboard idea whether through GSoC or not, at least one additional permission will be required. We are both aware of this fact and will collaborate to work this out.&lt;br /&gt;
&lt;br /&gt;
Upon doing this, a WML tag will be added to scenarios which marks whether the scenario uses the old or new alliance system. This will default to old such that scenarios written before the new alliance system will not be broken. The following step is one by one, making the permissions for the new system &amp;quot;active&amp;quot;--that is to say making the actions that concern permissions account for the permissions. This step may involve making AI that takes these restrictions and permissions into account when planning moves, or doing this may happen after the system is fully implemented for human players.&lt;br /&gt;
&lt;br /&gt;
WML functionality would then be added which allows individual permissions to be locked or unlocked in scenarios, with a default of unlocked. A diplomacy window would then be added to the GUI, allowing players to edit permissions. This window would only be accessible for scenarios where at least one permission is unlocked. This window would have tabs for each player other than the active player, with a checkbox (or if enums are used, radio buttons where appropriate) for each permission unlocked for this scenario. The window can be opened directly to the tab of a player by right clicking on one of that player's units and clicking on a &amp;quot;diplomacy&amp;quot; item on the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
Finally is any AI work left to be done:&lt;br /&gt;
Level 1 (very doable): AI that takes restrictions and permissions into account when planning moves.&lt;br /&gt;
Level 2 (probably doable with help from somebody more knowledgeable about AI): AI that will plan moves that benefits &amp;quot;allies&amp;quot;&lt;br /&gt;
Level 3 (very unlikely for summer, if even possible): AI which is able to change permissions in scenarios where permissions are unlocked. (Without this, all unlocked privileges will remain at their default value, which is just fine)&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Path&amp;quot; for development included in proposal.&lt;br /&gt;
Roughly speaking, I plan to refactor to an array before GSoC begins, Spend the time up until the mid-term evaluation doing the stuff other than the AI, and the time from the mid-term evaluation until the end doing AI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Technical detail included in above proposal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35534</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35534"/>
		<updated>2010-04-06T00:19:09Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: /* Questionnaire */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
=Quick Definitions=&lt;br /&gt;
Permission: A particular alliance rule.&lt;br /&gt;
Active Player: The player who is setting alliance permissions (or equivalent if alliance settings locked)&lt;br /&gt;
Passive Player: The player who the active player is setting permissions with regards to.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums). The permissions stored will be:&lt;br /&gt;
*Enemy: Serves the function of the booleans in the enemies_ array to allow for emulation of the current alliance system and less fragility during development. (Things to consider: &amp;quot;Ally&amp;quot; instead such that true is the &amp;quot;friendlier&amp;quot; setting for all permissions)&lt;br /&gt;
*CanAttack: If set to false, the active player will be unable to attack units of the passive player. If set to true, they may. (Things to consider: BlockAttack instead such that true is the &amp;quot;friendlier&amp;quot; setting, Is there a penalty to your defense or counterattack if you are attacked by the passive player while CanAttack is false? Prompt to check an attack?)&lt;br /&gt;
*TakeVillages: If set to true, the active player can capture the villages of the passive player. (Things to consider: Making true friendly. If set to true, will the active player be unable to move into the village, or will they move into the village without capturing it? Prompt?)&lt;br /&gt;
*AllowHealing: If set to true, the active player's healers will heal units of the passive players if those units are within the healer's range. (Things to consider: Possible enum implementation of NO, PREFER_US (Will only heal passive player's units if no active player units in range need healing), EQUAL (Will treat active player and passive player units equal) , PREFER_THEM (Will only heal active player's units if no passive player's units in range need healing)).&lt;br /&gt;
*AllowLeaders: If set to true, passive player units can benefits from active player units with leadership.&lt;br /&gt;
*GiveShroud: If set to true, the passive player will receive the shroud information which the active player has.&lt;br /&gt;
*GiveFog: If set to true, the passive player will receive the fog information which the active player has.&lt;br /&gt;
*AllowVillageTeleport: If set to true, the passive player will be able to use the active player's villages to teleport.&lt;br /&gt;
*UseZOC: If set to true, the passive player will be affected by the active player's zone of control. If set to false, passive player units will not be hindered by the zone of control of active player units. (Things to consider: Friendly true: IgnoreZOC)&lt;br /&gt;
*ShareTeamChat: If set to true, messages which the active player sends in the team chat channel will be sent to the passive player (Things to consider: This explanation is an assumption on how team chat works which will be confirmed or corrected when I play multiplayer)&lt;br /&gt;
*ShareTeamLabels: TODO: Figure out what team labels are.&lt;br /&gt;
*SharedVictory: At the basic level, if two or more players have this true for each other, than when one wins, they all win, and they will not count against each other's victory conditions (e.g. if the objective is &amp;quot;kill all enemy leaders&amp;quot;, then two players sharing victory will win when there are no leaders besides theirs). I also would like to put forward the idea to implement this specifically such that a player setting this to true means that the passive player wins when the active player wins and the active player does not count against the passive player's objective. Doing so would provide an asymmetry making shared victory the highest level of trust which it should be.&lt;br /&gt;
*If gabba implements his whiteboard idea whether through GSoC or not, at least one additional permission will be required. We are both aware of this fact and will collaborate to work this out.&lt;br /&gt;
&lt;br /&gt;
Upon doing this, a WML tag will be added to scenarios which marks whether the scenario uses the old or new alliance system. This will default to old such that scenarios written before the new alliance system will not be broken. The following step is one by one, making the permissions for the new system &amp;quot;active&amp;quot;--that is to say making the actions that concern permissions account for the permissions. This step may involve making AI that takes these restrictions and permissions into account when planning moves, or doing this may happen after the system is fully implemented for human players.&lt;br /&gt;
&lt;br /&gt;
WML functionality would then be added which allows individual permissions to be locked or unlocked in scenarios, with a default of unlocked. A diplomacy window would then be added to the GUI, allowing players to edit permissions. This window would only be accessible for scenarios where at least one permission is unlocked. This window would have tabs for each player other than the active player, with a checkbox (or if enums are used, radio buttons where appropriate) for each permission unlocked for this scenario. The window can be opened directly to the tab of a player by right clicking on one of that player's units and clicking on a &amp;quot;diplomacy&amp;quot; item on the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
Finally is any AI work left to be done:&lt;br /&gt;
Level 1 (very doable): AI that takes restrictions and permissions into account when planning moves.&lt;br /&gt;
Level 2 (probably doable with help from somebody more knowledgeable about AI): AI that will plan moves that benefits &amp;quot;allies&amp;quot;&lt;br /&gt;
Level 3 (very unlikely for summer, if even possible): AI which is able to change permissions in scenarios where permissions are unlocked. (Without this, all unlocked privileges will remain at their default value, which is just fine)&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;Path&amp;quot; for development included in proposal.&lt;br /&gt;
Roughly speaking, I plan to refactor to an array before GSoC begins, Spend the time up until the mid-term evaluation doing the stuff other than the AI, and the time from the mid-term evaluation until the end doing AI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Technical detail included in above proposal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35532</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35532"/>
		<updated>2010-04-06T00:12:14Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
=Quick Definitions=&lt;br /&gt;
Permission: A particular alliance rule.&lt;br /&gt;
Active Player: The player who is setting alliance permissions (or equivalent if alliance settings locked)&lt;br /&gt;
Passive Player: The player who the active player is setting permissions with regards to.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums). The permissions stored will be:&lt;br /&gt;
*Enemy: Serves the function of the booleans in the enemies_ array to allow for emulation of the current alliance system and less fragility during development. (Things to consider: &amp;quot;Ally&amp;quot; instead such that true is the &amp;quot;friendlier&amp;quot; setting for all permissions)&lt;br /&gt;
*CanAttack: If set to false, the active player will be unable to attack units of the passive player. If set to true, they may. (Things to consider: BlockAttack instead such that true is the &amp;quot;friendlier&amp;quot; setting, Is there a penalty to your defense or counterattack if you are attacked by the passive player while CanAttack is false? Prompt to check an attack?)&lt;br /&gt;
*TakeVillages: If set to true, the active player can capture the villages of the passive player. (Things to consider: Making true friendly. If set to true, will the active player be unable to move into the village, or will they move into the village without capturing it? Prompt?)&lt;br /&gt;
*AllowHealing: If set to true, the active player's healers will heal units of the passive players if those units are within the healer's range. (Things to consider: Possible enum implementation of NO, PREFER_US (Will only heal passive player's units if no active player units in range need healing), EQUAL (Will treat active player and passive player units equal) , PREFER_THEM (Will only heal active player's units if no passive player's units in range need healing)).&lt;br /&gt;
*AllowLeaders: If set to true, passive player units can benefits from active player units with leadership.&lt;br /&gt;
*GiveShroud: If set to true, the passive player will receive the shroud information which the active player has.&lt;br /&gt;
*GiveFog: If set to true, the passive player will receive the fog information which the active player has.&lt;br /&gt;
*AllowVillageTeleport: If set to true, the passive player will be able to use the active player's villages to teleport.&lt;br /&gt;
*UseZOC: If set to true, the passive player will be affected by the active player's zone of control. If set to false, passive player units will not be hindered by the zone of control of active player units. (Things to consider: Friendly true: IgnoreZOC)&lt;br /&gt;
*ShareTeamChat: If set to true, messages which the active player sends in the team chat channel will be sent to the passive player (Things to consider: This explanation is an assumption on how team chat works which will be confirmed or corrected when I play multiplayer)&lt;br /&gt;
*ShareTeamLabels: TODO: Figure out what team labels are.&lt;br /&gt;
*SharedVictory: At the basic level, if two or more players have this true for each other, than when one wins, they all win, and they will not count against each other's victory conditions (e.g. if the objective is &amp;quot;kill all enemy leaders&amp;quot;, then two players sharing victory will win when there are no leaders besides theirs). I also would like to put forward the idea to implement this specifically such that a player setting this to true means that the passive player wins when the active player wins and the active player does not count against the passive player's objective. Doing so would provide an asymmetry making shared victory the highest level of trust which it should be.&lt;br /&gt;
*If gabba implements his whiteboard idea whether through GSoC or not, at least one additional permission will be required. We are both aware of this fact and will collaborate to work this out.&lt;br /&gt;
&lt;br /&gt;
Upon doing this, a WML tag will be added to scenarios which marks whether the scenario uses the old or new alliance system. This will default to old such that scenarios written before the new alliance system will not be broken. The following step is one by one, making the permissions for the new system &amp;quot;active&amp;quot;--that is to say making the actions that concern permissions account for the permissions. This step may involve making AI that takes these restrictions and permissions into account when planning moves, or doing this may happen after the system is fully implemented for human players.&lt;br /&gt;
&lt;br /&gt;
WML functionality would then be added which allows individual permissions to be locked or unlocked in scenarios, with a default of unlocked. A diplomacy window would then be added to the GUI, allowing players to edit permissions. This window would only be accessible for scenarios where at least one permission is unlocked. This window would have tabs for each player other than the active player, with a checkbox (or if enums are used, radio buttons where appropriate) for each permission unlocked for this scenario. The window can be opened directly to the tab of a player by right clicking on one of that player's units and clicking on a &amp;quot;diplomacy&amp;quot; item on the drop-down menu.&lt;br /&gt;
&lt;br /&gt;
Finally is any AI work left to be done:&lt;br /&gt;
Level 1 (very doable): AI that takes restrictions and permissions into account when planning moves.&lt;br /&gt;
Level 2 (probably doable with help from somebody more knowledgeable about AI): AI that will plan moves that benefits &amp;quot;allies&amp;quot;&lt;br /&gt;
Level 3 (very unlikely for summer, if even possible): AI which is able to change permissions in scenarios where permissions are unlocked. (Without this, all unlocked privileges will remain at their default value, which is just fine)&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This is only a &amp;quot;phase&amp;quot; timeline which will be updated into a date timeline as I become more familiar with the code base and can better estimate how long things will take and refine my implementation.&lt;br /&gt;
&lt;br /&gt;
*Step One: Code the values for storage of different &amp;quot;alliance rules&amp;quot; (Current planned implementation: wrapper for enums to allow for future expansion from boolean values)&lt;br /&gt;
*Step Two: Code the grouping of these rules together for a set of rules between two players (Probably a class that has each rule)&lt;br /&gt;
*Step Three: Code the storage of relationships between two players (Write simple class that holds an active and a passive player, then hashmap these to rules)&lt;br /&gt;
*Step Four: Expose these to WML (Need to learn more about WML to even start figuring out an implementation for this)&lt;br /&gt;
*Step Five: Go into the code for the actions which the rules affect and make the rules work (with simple checks of the enums).&lt;br /&gt;
*Step Six: Make this settable from the GUI&lt;br /&gt;
*Step Seven: Add (probably at the WML level, but I could be wrong) a way to store a certain configuration of permissions for quick recall in the future, and use this to provide emulation of the current alliance system.&lt;br /&gt;
*Step Eight: GUI access of predefined configurations&lt;br /&gt;
*Step Nine: Add &amp;quot;Prompt&amp;quot; option to unit attacking, village taking, and any additional rules which are developed which affect the &amp;quot;active&amp;quot; player&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think I've included all my technical detail in my timeline.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35528</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35528"/>
		<updated>2010-04-05T21:07:02Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
=Quick Definitions=&lt;br /&gt;
Permission: A particular alliance rule.&lt;br /&gt;
Active Player: The player who is setting alliance permissions (or equivalent if alliance settings locked)&lt;br /&gt;
Passive Player: The player who the active player is setting permissions with regards to.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity and asymmetry in setting permissions. The first major step in this will be refactoring the array enemies_ which stores booleans with an array alliances_, which will store a vector of permissions (Probably stored as booleans, possibly stored as various implementations of an interface that will wrap either booleans or enums). The permissions stored will be:&lt;br /&gt;
*Enemy: Serves the function of the booleans in the enemies_ array to allow for emulation of the current alliance system and less fragility during development. (Things to consider: &amp;quot;Ally&amp;quot; instead such that true is the &amp;quot;friendlier&amp;quot; setting for all permissions)&lt;br /&gt;
*CanAttack: If set to false, the active player will be unable to attack units of the passive player. If set to true, they may. (Things to consider: BlockAttack instead such that true is the &amp;quot;friendlier&amp;quot; setting, Is there a penalty to your defense or counterattack if you are attacked by the passive player while CanAttack is false? Prompt to check an attack?)&lt;br /&gt;
*TakeVillages: If set to true, the active player can capture the villages of the passive player. (Things to consider: Making true friendly. If set to true, will the active player be unable to move into the village, or will they move into the village without capturing it? Prompt?)&lt;br /&gt;
*AllowHealing: If set to true, the active player's healers will heal units of the passive players if those units are within the healer's range. (Things to consider: Possible enum implementation of NO, PREFER_US (Will only heal passive player's units if no active player units in range need healing), EQUAL (Will treat active player and passive player units equal) , PREFER_THEM (Will only heal active player's units if no passive player's units in range need healing)).&lt;br /&gt;
*AllowLeaders: If set to true, passive player units can benefits from active player units with leadership.&lt;br /&gt;
*GiveShroud: If set to true, the passive player will receive the shroud information which the active player has.&lt;br /&gt;
*GiveFog: If set to true, the passive player will receive the fog information which the active player has.&lt;br /&gt;
*AllowVillageTeleport: If set to true, the passive player will be able to use the active player's villages to teleport.&lt;br /&gt;
*UseZOC: If set to true, the passive player will be affected by the active player's zone of control. If set to false, passive player units will not be hindered by the zone of control of active player units. (Things to consider: Friendly true: IgnoreZOC)&lt;br /&gt;
*ShareTeamChat: If set to true, messages which the active player sends in the team chat channel will be sent to the passive player (Things to consider: This explanation is an assumption on how team chat works which will be confirmed or corrected when I play multiplayer)&lt;br /&gt;
*ShareTeamLabels: TODO: Figure out what team labels are.&lt;br /&gt;
*If gabba implements his whiteboard idea whether through GSoC or not, at least one additional permission will be required. We are both aware of this fact and will collaborate to work this out.&lt;br /&gt;
&lt;br /&gt;
Upon doing this, a WML tag will be added to scenarios which marks whether the scenario uses the old or new alliance system. This will default to old such that scenarios written before the new alliance system will not be broken.&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This is only a &amp;quot;phase&amp;quot; timeline which will be updated into a date timeline as I become more familiar with the code base and can better estimate how long things will take and refine my implementation.&lt;br /&gt;
&lt;br /&gt;
*Step One: Code the values for storage of different &amp;quot;alliance rules&amp;quot; (Current planned implementation: wrapper for enums to allow for future expansion from boolean values)&lt;br /&gt;
*Step Two: Code the grouping of these rules together for a set of rules between two players (Probably a class that has each rule)&lt;br /&gt;
*Step Three: Code the storage of relationships between two players (Write simple class that holds an active and a passive player, then hashmap these to rules)&lt;br /&gt;
*Step Four: Expose these to WML (Need to learn more about WML to even start figuring out an implementation for this)&lt;br /&gt;
*Step Five: Go into the code for the actions which the rules affect and make the rules work (with simple checks of the enums).&lt;br /&gt;
*Step Six: Make this settable from the GUI&lt;br /&gt;
*Step Seven: Add (probably at the WML level, but I could be wrong) a way to store a certain configuration of permissions for quick recall in the future, and use this to provide emulation of the current alliance system.&lt;br /&gt;
*Step Eight: GUI access of predefined configurations&lt;br /&gt;
*Step Nine: Add &amp;quot;Prompt&amp;quot; option to unit attacking, village taking, and any additional rules which are developed which affect the &amp;quot;active&amp;quot; player&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think I've included all my technical detail in my timeline.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35368</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35368"/>
		<updated>2010-04-02T19:35:47Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity in setting permissions. I will be coding this in C++ and exposing this C++ code to UML. Though initially I will be providing these permissions on a yes/no basis, I will use enums instead of booleans to allow later expansion, and time permitting (or after the SoC), I hope to add a &amp;quot;prompt&amp;quot; option to the alliance settings that involve the setters actions (such as whether or not to attack the units of the person in question) that will confirm the action with the user before proceeding.&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.(r41930)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This is only a &amp;quot;phase&amp;quot; timeline which will be updated into a date timeline as I become more familiar with the code base and can better estimate how long things will take and refine my implementation.&lt;br /&gt;
&lt;br /&gt;
*Step One: Code the values for storage of different &amp;quot;alliance rules&amp;quot; (Current planned implementation: wrapper for enums to allow for future expansion from boolean values)&lt;br /&gt;
*Step Two: Code the grouping of these rules together for a set of rules between two players (Probably a class that has each rule)&lt;br /&gt;
*Step Three: Code the storage of relationships between two players (Write simple class that holds an active and a passive player, then hashmap these to rules)&lt;br /&gt;
*Step Four: Expose these to WML (Need to learn more about WML to even start figuring out an implementation for this)&lt;br /&gt;
*Step Five: Go into the code for the actions which the rules affect and make the rules work (with simple checks of the enums).&lt;br /&gt;
*Step Six: Make this settable from the GUI&lt;br /&gt;
*Step Seven: Add (probably at the WML level, but I could be wrong) a way to store a certain configuration of permissions for quick recall in the future, and use this to provide emulation of the current alliance system.&lt;br /&gt;
*Step Eight: GUI access of predefined configurations&lt;br /&gt;
*Step Nine: Add &amp;quot;Prompt&amp;quot; option to unit attacking, village taking, and any additional rules which are developed which affect the &amp;quot;active&amp;quot; player&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think I've included all my technical detail in my timeline.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35304</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35304"/>
		<updated>2010-04-01T17:33:06Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: Added new information with regards to other internship and added submitted patch.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity in setting permissions. I will be coding this in C++ and exposing this C++ code to UML. Though initially I will be providing these permissions on a yes/no basis, I will use enums instead of booleans to allow later expansion, and time permitting (or after the SoC), I hope to add a &amp;quot;prompt&amp;quot; option to the alliance settings that involve the setters actions (such as whether or not to attack the units of the person in question) that will confirm the action with the user before proceeding.&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. I have another internship, but from the sounds of it, it is roughly equivalent to a part-time job. I'd also be able to work on that on my own schedule, so my plan for handling both is to switch from one to the other when a problem needs time to &amp;quot;percolate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Submitted a small patch that will mark widescreen resolutions as &amp;quot; (widescreen)&amp;quot; in the change resolution screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This is only a &amp;quot;phase&amp;quot; timeline which will be updated into a date timeline as I become more familiar with the code base and can better estimate how long things will take and refine my implementation.&lt;br /&gt;
&lt;br /&gt;
*Step One: Code the values for storage of different &amp;quot;alliance rules&amp;quot; (Current planned implementation: wrapper for enums to allow for future expansion from boolean values)&lt;br /&gt;
*Step Two: Code the grouping of these rules together for a set of rules between two players (Probably a class that has each rule)&lt;br /&gt;
*Step Three: Code the storage of relationships between two players (Write simple class that holds an active and a passive player, then hashmap these to rules)&lt;br /&gt;
*Step Four: Expose these to WML (Need to learn more about WML to even start figuring out an implementation for this)&lt;br /&gt;
*Step Five: Go into the code for the actions which the rules affect and make the rules work (with simple checks of the enums).&lt;br /&gt;
*Step Six: Make this settable from the GUI&lt;br /&gt;
*Step Seven: Add (probably at the WML level, but I could be wrong) a way to store a certain configuration of permissions for quick recall in the future, and use this to provide emulation of the current alliance system.&lt;br /&gt;
*Step Eight: GUI access of predefined configurations&lt;br /&gt;
*Step Nine: Add &amp;quot;Prompt&amp;quot; option to unit attacking, village taking, and any additional rules which are developed which affect the &amp;quot;active&amp;quot; player&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think I've included all my technical detail in my timeline.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=35261</id>
		<title>EasyCoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=35261"/>
		<updated>2010-03-31T02:59:47Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Foreword ==&lt;br /&gt;
This page is here to document easy to do coding tasks. It is not here to double the feature request database, and should only be filled by people that know the code well enough to judge the difficulty of a given task. &lt;br /&gt;
&lt;br /&gt;
If you are such a person, you should feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
If you're not, you should post a feature request and discuss your idea on the forum or IRC. A coder with better knowledge of the code might give you the green light to add your feature here.&lt;br /&gt;
&lt;br /&gt;
Anybody should feel free to add &amp;quot;clues&amp;quot; to any tasks, that is entry points, traps to avoid, person to contact to discuss and so on.&lt;br /&gt;
&lt;br /&gt;
If you plan to work on a feature, write your name at the bottom of the feature, with the date. Note that if you are too long at working on a feature I'll &amp;quot;free&amp;quot; it back (that is if you're not working on it. If you have problems implementing it, just tell us....)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Boucman|Boucman]] 20:48, 3 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Since bugs are sometimes a good opportunity to get a first idea of the code, i will add some here that are easy to fix as soon as i stumble upon them (the one i had in mind is fixed already ;-).&lt;br /&gt;
&lt;br /&gt;
--Yogi Bear, 28 February 2008&lt;br /&gt;
&lt;br /&gt;
== MP related features ==&lt;br /&gt;
&lt;br /&gt;
=== Use different font for in-game chat ===&lt;br /&gt;
Since commas and dots are apparently hard to tell apart. As per FR #7470 [https://gna.org/bugs/?7470]&lt;br /&gt;
&lt;br /&gt;
== WML related features ==&lt;br /&gt;
&lt;br /&gt;
=== WML configurable village income / upkeep ===&lt;br /&gt;
Preferably as a [scenario], [side] or [campaign] keys. As per FR #6301 [https://gna.org/bugs/?6301]. Patch submitted: [https://gna.org/patch/index.php?1162] (gabba)&lt;br /&gt;
&lt;br /&gt;
--[[User:Boucman|Boucman]] 08:56, 28 February 2010 (UTC) : this is postponed for 1.8, can be considered reserved&lt;br /&gt;
&lt;br /&gt;
=== Add support of [if] for [scenario] ===&lt;br /&gt;
As per FR #4539 [https://gna.org/bugs/?4539]&lt;br /&gt;
&lt;br /&gt;
=== Make [have_unit] optionaly use full SUF ===&lt;br /&gt;
[have_unit] by default uses SUF but does not apply it to recall list. Introduce an optional key that will allow to lift that limitation.&lt;br /&gt;
&lt;br /&gt;
=== Side-specific results ===&lt;br /&gt;
Giving result=defeat or result=victory for specific sides. ([http://gna.org/bugs/index.php?4960 FR #4960]) -- [[User:dlr365|dlr365]] -- patch submitted [https://gna.org/bugs/index.php?4960]&lt;br /&gt;
&lt;br /&gt;
--[[User:Boucman|Boucman]] 08:58, 28 February 2010 (UTC) Patch seems abandonned, but can be used for further work feel free to take over the FR&lt;br /&gt;
&lt;br /&gt;
=== Support for leaderless multiplayergames ===&lt;br /&gt;
Add support for the WML key victory_when_enemies_defeated= in the scenario tag during multiplayergames. ([https://gna.org/bugs/index.php?8106 FR #8106])&lt;br /&gt;
--[[User:Endercoaster|endercoaster]] 30, March 2010. I'm gonna give this one a try.&lt;br /&gt;
&lt;br /&gt;
=== Support for standalone multiplayer scenarios ===&lt;br /&gt;
There used to be support for standalone scenarios in the userdata tree, in reorganising the trees this feature got lost and an add-on is now required to add a scenario.&lt;br /&gt;
Re-add this feature. It is probably a good idea to mirror the mainline multiplayer tree.&lt;br /&gt;
&lt;br /&gt;
=== Other Ideas ===&lt;br /&gt;
See [[FutureWML]]; some ideas there are easier than others.&lt;br /&gt;
&lt;br /&gt;
== Improvements to AI ==&lt;br /&gt;
&lt;br /&gt;
Fix some todos, add new formula functions, or do minor improvements to the formula language. Make it easier to debug the formula language, add more ai components.&lt;br /&gt;
&lt;br /&gt;
Please discuss these with Crab, Dragonking, Sirp or Boucman&lt;br /&gt;
&lt;br /&gt;
=== AI Batch testing ===&lt;br /&gt;
&lt;br /&gt;
Finish patch #1169 [https://gna.org/patch/?1169]&lt;br /&gt;
&lt;br /&gt;
=== Add more ai actions ===&lt;br /&gt;
&lt;br /&gt;
Add an ai action (and add formula_ai function to do that) to set a goto on a unit&lt;br /&gt;
&lt;br /&gt;
Add an ai action (and add formula_ai function to do that) to send a chat message to a player&lt;br /&gt;
&lt;br /&gt;
Add an ai action to set formula ai variable (convert existing code from formula_ai)&lt;br /&gt;
&lt;br /&gt;
Add an ai action to set formula ai unit variable (convert existing code from formula_ai)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add an ai action  (and add formula_ai function to do that) to fire a WML event &lt;br /&gt;
&lt;br /&gt;
=== write a (fai or c++ or lua) candidate action for leader control ===&lt;br /&gt;
&lt;br /&gt;
=== write a (fai or c++ or lua) candidate action for using leadership/illuminate  ===&lt;br /&gt;
special handling of units with leadership to have them support units. Only do it if it actually is useful (less hits needed to kill the unit) and ability to help multiple units in a single turn (assuming enough MP)&lt;br /&gt;
&lt;br /&gt;
=== write a (fai or c++ or lua) candidate action for healer control ===&lt;br /&gt;
Handle units with healing power, moving them at places where they can provide the most healing&lt;br /&gt;
&lt;br /&gt;
=== berserker improvement ===&lt;br /&gt;
The default AI's strategy of attacking as much as possible is very bad with berserker... A simple AI that would prevent the berserker from attacking (and keeping him close to fight without being exposed) and attack when the chance to kill is high enough would be an interesting addition&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== power projection improvement ===&lt;br /&gt;
AI sometimes wants to calculate 'how much firepower can enemy bring on location X'. in doing so, it considers enemy possible moves, time of day, attacks, enemy defense, etc.&lt;br /&gt;
There is specific problem with 'time_of_day' used in that calculation -sometimes, it's really needed to check 'time of day for NEXT turn', not time of day for THIS turn.(since the time of day might change next turn). &lt;br /&gt;
&lt;br /&gt;
power_projection must be fixed to account for the possibility of time_of_day being different.&lt;br /&gt;
&lt;br /&gt;
Note that some enemies might go after us (so, still on THIS turn), and some - before us (so, their next turn will be on NEXT turn).&lt;br /&gt;
&lt;br /&gt;
== GUI related features ==&lt;br /&gt;
-------------------&lt;br /&gt;
&lt;br /&gt;
Note at the moment Mordante is working on a new GUI system, these &lt;br /&gt;
changes will probably affect the way these items need to be implemented.&lt;br /&gt;
Contact Mordante on IRC before starting to work on these.&lt;br /&gt;
  &lt;br /&gt;
--[[User:SkeletonCrew|SkeletonCrew]] 14:04, 9 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Theme Changes ===&lt;br /&gt;
&lt;br /&gt;
* allow custom themes to display values of WML variables ([http://gna.org/bugs/index.php?6209 FR #6209])&lt;br /&gt;
* hide the hourglass item from the statusbar when there is no timer&lt;br /&gt;
&lt;br /&gt;
=== Widget Changes ===&lt;br /&gt;
* show side number, name and team association information in the status table &lt;br /&gt;
* make games sortable in the lobby (open slots, total number of players, era, XP modifier, gold per village, fog/shroud) &lt;br /&gt;
* input history (chat, commands, ..) - note: rujasu is working on this feature&lt;br /&gt;
&lt;br /&gt;
== GUI2 related features ==&lt;br /&gt;
GUI2 is the new gui engine Mordante/SkeletonCrew is working on. &lt;br /&gt;
* Information on the wiki can be found here http://www.wesnoth.org/wiki/GUIToolkit&lt;br /&gt;
* The source code is under src/gui/&lt;br /&gt;
* The configuration config files are under data/gui/default&lt;br /&gt;
&lt;br /&gt;
Some tasks need the --new-widgets since the code is only shown in the experimental mode. Tasks which need this switch have the * in the title.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Arrow keys for the slider ===&lt;br /&gt;
There's a new slider widget, but it doesn't support the keyboard yet.&lt;br /&gt;
gui/widgets/slider.[c|h]pp&lt;br /&gt;
&lt;br /&gt;
Clicking on the widget should capture the keyboard and then arrow left/right should move one step even if not all steps are visible.&lt;br /&gt;
&lt;br /&gt;
=== Slider sizing ===&lt;br /&gt;
There are some issues with the sizing of a slider.&lt;br /&gt;
gui/widgets/slider.[c|h]pp&lt;br /&gt;
&lt;br /&gt;
In a layout step it needs to try to shrink itself, not entirely sure where or how yet, best ask mordante on irc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
=== More powerful village naming ===&lt;br /&gt;
'''Adding mountain names and other features to village names, having a second random name in village names'''&lt;br /&gt;
&lt;br /&gt;
Currently the village naming engine has a very good structure that could allow &lt;br /&gt;
more powerfull names to be generated. &lt;br /&gt;
Understanding how it works should be quite easy, and a few usefull improvements could be added.&lt;br /&gt;
&lt;br /&gt;
* Currently villages can use lake names and river names, this should be extended to other features like bridges, swamps, mountains etc...&lt;br /&gt;
* It would be nice to have a separate list of &amp;quot;first sylabus&amp;quot; and &amp;quot;last sylabus&amp;quot; for naming. That's not really needed in english, but some translations could use it&lt;br /&gt;
* Again, it is common to have villages with more than one &amp;quot;random&amp;quot; word in them. having a $name2 variable would be nice&lt;br /&gt;
&lt;br /&gt;
Euschn 24/03/2009&lt;br /&gt;
&lt;br /&gt;
=== Debug Mode ===&lt;br /&gt;
* New debug command functionality (setting additional status.variables, possibly terrain)&lt;br /&gt;
=== Fixed parameter in a nimation ===&lt;br /&gt;
since we're a little short in easy codings, &lt;br /&gt;
[https://gna.org/bugs/index.php?13171 this feature request] is easy.&lt;br /&gt;
&lt;br /&gt;
Ask Boucman for details&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[NotSoEasyCoding]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Future]]&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35117</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35117"/>
		<updated>2010-03-29T20:56:17Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&amp;lt;h4&amp;gt;Endercoaster-New Alliance System&amp;lt;/h4&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity in setting permissions. I will be coding this in C++ and exposing this C++ code to UML. Though initially I will be providing these permissions on a yes/no basis, I will use enums instead of booleans to allow later expansion, and time permitting (or after the SoC), I hope to add a &amp;quot;prompt&amp;quot; option to the alliance settings that involve the setters actions (such as whether or not to attack the units of the person in question) that will confirm the action with the user before proceeding.&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. There is a chance that I will have another internship, though that will be strictly coding &amp;quot;during hours&amp;quot;, and should not interfere with when I plan to code for this. If I'm able to be accepted for that internship in a non-commital manner and am also accepted for GSoC, I will most likely drop the other internship to dedicate more effort to working on Battle of Wesnoth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet, will update as this changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This is only a &amp;quot;phase&amp;quot; timeline which will be updated into a date timeline as I become more familiar with the code base and can better estimate how long things will take and refine my implementation.&lt;br /&gt;
&lt;br /&gt;
*Step One: Code the values for storage of different &amp;quot;alliance rules&amp;quot; (Current planned implementation: wrapper for enums to allow for future expansion from boolean values)&lt;br /&gt;
*Step Two: Code the grouping of these rules together for a set of rules between two players (Probably a class that has each rule)&lt;br /&gt;
*Step Three: Code the storage of relationships between two players (Write simple class that holds an active and a passive player, then hashmap these to rules)&lt;br /&gt;
*Step Four: Expose these to WML (Need to learn more about WML to even start figuring out an implementation for this)&lt;br /&gt;
*Step Five: Go into the code for the actions which the rules affect and make the rules work (with simple checks of the enums).&lt;br /&gt;
*Step Six: Make this settable from the GUI&lt;br /&gt;
*Step Seven: Add (probably at the WML level, but I could be wrong) a way to store a certain configuration of permissions for quick recall in the future, and use this to provide emulation of the current alliance system.&lt;br /&gt;
*Step Eight: GUI access of predefined configurations&lt;br /&gt;
*Step Nine: Add &amp;quot;Prompt&amp;quot; option to unit attacking, village taking, and any additional rules which are developed which affect the &amp;quot;active&amp;quot; player&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think I've included all my technical detail in my timeline.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35115</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35115"/>
		<updated>2010-03-29T20:51:55Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
[[Category:SoC Ideas New Alliance System]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;=Description=&amp;lt;/h2&amp;gt;&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity in setting permissions. I will be coding this in C++ and exposing this C++ code to UML. Though initially I will be providing these permissions on a yes/no basis, I will use enums instead of booleans to allow later expansion, and time permitting (or after the SoC), I hope to add a &amp;quot;prompt&amp;quot; option to the alliance settings that involve the setters actions (such as whether or not to attack the units of the person in question) that will confirm the action with the user before proceeding.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;=IRC=&amp;lt;/h2&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;=Questionnaire=&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;1) The Basics)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;1.1) Write a small introduction to yourself.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.2) State your preferred email address.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.4) Why do you want to participate in summer of code?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.5) What are you studying, subject, level and school?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.6) What country are you from, at what time are you most likely to be able to join IRC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
There are no vacations that I'm aware of. There is a chance that I will have another internship, though that will be strictly coding &amp;quot;during hours&amp;quot;, and should not interfere with when I plan to code for this. If I'm able to be accepted for that internship in a non-commital manner and am also accepted for GSoC, I will most likely drop the other internship to dedicate more effort to working on Battle of Wesnoth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;2) Experience&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.1) What programs/software have you worked on before?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No, this is hopefully my first year doing Summer of Code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I have not been involved with any open source projects yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5) Gaming experience - Are you a gamer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.1) What type of gamer are you?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.2) What type of games?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.3) What type of opponents do you prefer?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.4) Are you more interested in story or gameplay?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not yet, will update as this changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;3) Communication skills&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.2) What spoken languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.4) Do you give constructive advice?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.5) Do you receive advice well?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;3.6) Are you good at sorting useful criticisms from useless ones?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4) Project&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.2) If you have invented your own project, please describe the project and the scope.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.3) Why did you choose this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note: This is only a &amp;quot;phase&amp;quot; timeline which will be updated into a date timeline as I become more familiar with the code base and can better estimate how long things will take and refine my implementation.&lt;br /&gt;
&lt;br /&gt;
*Step One: Code the values for storage of different &amp;quot;alliance rules&amp;quot; (Current planned implementation: wrapper for enums to allow for future expansion from boolean values)&lt;br /&gt;
*Step Two: Code the grouping of these rules together for a set of rules between two players (Probably a class that has each rule)&lt;br /&gt;
*Step Three: Code the storage of relationships between two players (Write simple class that holds an active and a passive player, then hashmap these to rules)&lt;br /&gt;
*Step Four: Expose these to WML (Need to learn more about WML to even start figuring out an implementation for this)&lt;br /&gt;
*Step Five: Go into the code for the actions which the rules affect and make the rules work (with simple checks of the enums).&lt;br /&gt;
*Step Six: Make this settable from the GUI&lt;br /&gt;
*Step Seven: Add (probably at the WML level, but I could be wrong) a way to store a certain configuration of permissions for quick recall in the future, and use this to provide emulation of the current alliance system.&lt;br /&gt;
*Step Eight: GUI access of predefined configurations&lt;br /&gt;
*Step Nine: Add &amp;quot;Prompt&amp;quot; option to unit attacking, village taking, and any additional rules which are developed which affect the &amp;quot;active&amp;quot; player&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.5) Include as much technical detail about your implementation as you can&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think I've included all my technical detail in my timeline.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.6) What do you expect to gain from this project?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;5) Practical considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.1) Are you familiar with any of the following tools or languages?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.2) Which tools do you normally use for development? Why do you use them?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;5.3) What programming languages are you fluent in?&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise!&amp;lt;/h4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35109</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35109"/>
		<updated>2010-03-29T18:52:17Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity in setting permissions. I will be coding this in C++ and exposing this C++ code to UML. Though initially I will be providing these permissions on a yes/no basis, I will use enums instead of booleans to allow later expansion, and time permitting (or after the SoC), I hope to add a &amp;quot;prompt&amp;quot; option to the alliance settings that involve the setters actions (such as whether or not to attack the units of the person in question) that will confirm the action with the user before proceeding.&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
1) Basics&lt;br /&gt;
&lt;br /&gt;
1.1) Write a small introduction to yourself.&lt;br /&gt;
&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
1.2) State your preferred email address.&lt;br /&gt;
&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&lt;br /&gt;
&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
1.4) Why do you want to participate in summer of code?&lt;br /&gt;
&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
1.5) What are you studying, subject, level and school?&lt;br /&gt;
&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
1.6) What country are you from, at what time are you most likely to be able to join IRC?&lt;br /&gt;
&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&lt;br /&gt;
&lt;br /&gt;
There are no vacations that I'm aware of. There is a chance that I will have another internship, though that will be strictly coding &amp;quot;during hours&amp;quot;, and should not interfere with when I plan to code for this. If I'm able to be accepted for that internship in a non-commital manner and am also accepted for GSoC, I will most likely drop the other internship to dedicate more effort to working on Battle of Wesnoth.&lt;br /&gt;
&lt;br /&gt;
2) Experience&lt;br /&gt;
&lt;br /&gt;
2.1) What programs/software have you worked on before?&lt;br /&gt;
&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&lt;br /&gt;
&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
No.&lt;br /&gt;
&lt;br /&gt;
2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&lt;br /&gt;
&lt;br /&gt;
No.&lt;br /&gt;
&lt;br /&gt;
2.5) Gaming experience - Are you a gamer?&lt;br /&gt;
&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
2.5.1) What type of gamer are you?&lt;br /&gt;
&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
2.5.2) What type of games?&lt;br /&gt;
&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time), though I dabble in most genres.&lt;br /&gt;
&lt;br /&gt;
2.5.3) What type of opponents do you prefer?&lt;br /&gt;
&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
2.5.4) Are you more interested in story or gameplay?&lt;br /&gt;
&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&lt;br /&gt;
&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Not yet, will update as this changes.&lt;br /&gt;
&lt;br /&gt;
3) Communication skills&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
3.2) What spoken languages are you fluent in?&lt;br /&gt;
&lt;br /&gt;
I know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&lt;br /&gt;
&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; is like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
3.4) Do you give constructive advice?&lt;br /&gt;
&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
3.5) Do you receive advice well?&lt;br /&gt;
&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
3.6) Are you good at sorting useful criticisms from useless ones?&lt;br /&gt;
&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&lt;br /&gt;
&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
4) Project&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
4.2) If you have invented your own project, please describe the project and the scope.&lt;br /&gt;
&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
4.3) Why did you choose this project?&lt;br /&gt;
&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
then&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note: This is only a &amp;quot;phase&amp;quot; timeline which will be updated into a date timeline as I become more familiar with the code base and can better estimate how long things will take and refine my implementation.&lt;br /&gt;
&lt;br /&gt;
*Step One: Code the values for storage of different &amp;quot;alliance rules&amp;quot; (Current planned implementation: wrapper for enums to allow for future expansion from boolean values)&lt;br /&gt;
*Step Two: Code the grouping of these rules together for a set of rules between two players (Probably a class that has each rule)&lt;br /&gt;
*Step Three: Code the storage of relationships between two players (Write simple class that holds an active and a passive player, then hashmap these to rules)&lt;br /&gt;
*Step Four: Expose these to WML (Need to learn more about WML to even start figuring out an implementation for this)&lt;br /&gt;
*Step Five: Go into the code for the actions which the rules affect and make the rules work (with simple checks of the enums).&lt;br /&gt;
*Step Six: Make this settable from the GUI&lt;br /&gt;
*Step Seven: Add (probably at the WML level, but I could be wrong) a way to store a certain configuration of permissions for quick recall in the future, and use this to provide emulation of the current alliance system.&lt;br /&gt;
*Step Eight: GUI access of predefined configurations&lt;br /&gt;
*Step Nine: Add &amp;quot;Prompt&amp;quot; option to unit attacking, village taking, and any additional rules which are developed which affect the &amp;quot;active&amp;quot; player&lt;br /&gt;
&lt;br /&gt;
4.5) Include as much technical detail about your implementation as you can&lt;br /&gt;
&lt;br /&gt;
I think I've included all my technical detail in my timeline.&lt;br /&gt;
&lt;br /&gt;
4.6) What do you expect to gain from this project?&lt;br /&gt;
&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&lt;br /&gt;
&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
5) Practical considerations&lt;br /&gt;
&lt;br /&gt;
5.1) Are you familiar with any of the following tools or languages?&lt;br /&gt;
&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
5.2) Which tools do you normally use for development? Why do you use them?&lt;br /&gt;
&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
5.3) What programming languages are you fluent in?&lt;br /&gt;
&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise! &lt;br /&gt;
&lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35108</id>
		<title>GSoC: Endercoaster</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GSoC:_Endercoaster&amp;diff=35108"/>
		<updated>2010-03-29T18:44:10Z</updated>

		<summary type="html">&lt;p&gt;Endercoaster: Created page with '{{SoC2010Student}}  =Description= I plan to develop an expanded alliance system for Wesnoth, providing greater granularity in setting permissions. I will be coding this in C++ an…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoC2010Student}}&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
I plan to develop an expanded alliance system for Wesnoth, providing greater granularity in setting permissions. I will be coding this in C++ and exposing this C++ code to UML. Though initially I will be providing these permissions on a yes/no basis, I will use enums instead of booleans to allow later expansion, and time permitting (or after the SoC), I hope to add a &amp;quot;prompt&amp;quot; option to the alliance settings that involve the setters actions (such as whether or not to attack the units of the person in question) that will confirm the action with the user before proceeding.&lt;br /&gt;
&lt;br /&gt;
=IRC=&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
=Questionnaire=&lt;br /&gt;
1) Basics&lt;br /&gt;
&lt;br /&gt;
1.1) Write a small introduction to yourself.&lt;br /&gt;
I'm Denny Vaccaro, and I'm a programming student who is passionate about medieval fantasy. Whether it's computer games, tabletop games, or fighting Belegarth, ever since I've gotten to college, a large part of my free time is spent &amp;quot;in&amp;quot; that setting. I eventually would like to get into game development professionally, and recognize the important of experience in breaking into that competitive field.&lt;br /&gt;
&lt;br /&gt;
1.2) State your preferred email address.&lt;br /&gt;
vaccarod@grinnell.edu&lt;br /&gt;
&lt;br /&gt;
1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?&lt;br /&gt;
endercoaster&lt;br /&gt;
&lt;br /&gt;
1.4) Why do you want to participate in summer of code?&lt;br /&gt;
While I had a very nice internship with Northrop Grumman last summer, it did not mesh with my personal goals for what I want to program professionally. Coding for Battle of Wesnoth would allow me to gain experience in game development, my first choice for a job post-graduation, while working on a project that I'd be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
1.5) What are you studying, subject, level and school?&lt;br /&gt;
I'm a 3rd year Computer Science major at Grinnell College in Iowa&lt;br /&gt;
&lt;br /&gt;
1.6) What country are you from, at what time are you most likely to be able to join IRC?&lt;br /&gt;
I'm from the US, and will most likely be on from 14:00 CT to at least 0:00 CT&lt;br /&gt;
&lt;br /&gt;
1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.&lt;br /&gt;
There are no vacations that I'm aware of. There is a chance that I will have another internship, though that will be strictly coding &amp;quot;during hours&amp;quot;, and should not interfere with when I plan to code for this. If I'm able to be accepted for that internship in a non-commital manner and am also accepted for GSoC, I will most likely drop the other internship to dedicate more effort to working on Battle &lt;br /&gt;
&lt;br /&gt;
of Wesnoth.&lt;br /&gt;
&lt;br /&gt;
2) Experience&lt;br /&gt;
&lt;br /&gt;
2.1) What programs/software have you worked on before?&lt;br /&gt;
In addition to various minor school assignments, last summer I had an internship with Northrop Grumman where I used QT to develop and &amp;quot;attach&amp;quot; the GUI for the lab test of a radar jammer. The class I am taking now is focused on the development of a large group project, in this case, a competitive multiplayer variant on Conway's Game of Life.&lt;br /&gt;
&lt;br /&gt;
2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)&lt;br /&gt;
Yes, both the GUI and my current class project are/were developed in team environments.&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
No.&lt;br /&gt;
&lt;br /&gt;
2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.&lt;br /&gt;
No.&lt;br /&gt;
&lt;br /&gt;
2.5) Gaming experience - Are you a gamer?&lt;br /&gt;
Yes, I've played video and computer games since the Nintendo 64, and have been tabletop gaming since I got to college.&lt;br /&gt;
&lt;br /&gt;
2.5.1) What type of gamer are you?&lt;br /&gt;
That weird type of middle ground where I'm not good enough to call myself a &amp;quot;hardcore&amp;quot; gamer, but care about gaming too much to call myself a &amp;quot;casual&amp;quot; gamer.&lt;br /&gt;
&lt;br /&gt;
2.5.2) What type of games?&lt;br /&gt;
Mostly RPGs and strategy games (both turn based and real-time).&lt;br /&gt;
&lt;br /&gt;
2.5.3) What type of opponents do you prefer?&lt;br /&gt;
I prefer opponents that are slightly better than me and friendly enough so that once the game's been decided they'll provide me with constructive criticism on my gameplay.&lt;br /&gt;
&lt;br /&gt;
2.5.4) Are you more interested in story or gameplay?&lt;br /&gt;
I think both are important, but am more likely to play a game with flawed gameplay for a good story than vice versa (though there's a difference between a game with a flawed story and a game that doesn't bother with story and just focuses on being a game).&lt;br /&gt;
&lt;br /&gt;
2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.&lt;br /&gt;
I'm a new Wesnoth player, having only gotten through the tutorial and most of The South Guard. In general, I lean more towards single player than multiplayer, though once I get a bit more attuned to the game through single player, I will give multiplayer a try. Most of all, though I haven't played much yet, I'm hooked, and will play a lot more by the time summer rolls around.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Not yet, will update as this changes.&lt;br /&gt;
&lt;br /&gt;
3) Communication skills&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Native speaker.&lt;br /&gt;
&lt;br /&gt;
3.2) What spoken languages are you fluent in?&lt;br /&gt;
Know Spanish grammar well enough for me to get by with somebody who can put up with me looking up vocabulary as needed.&lt;br /&gt;
&lt;br /&gt;
3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.&lt;br /&gt;
I'm not quite sure what interacting with &amp;quot;other players&amp;quot; are like, but I've worked as an usher at a movie theater and a concert venue, and between teenage girls texting in the movie theater and middle-aged women with only lawn admission at the concert venue wanting me to throw their panties on stage for them, I think I feel comfortable saying yes.&lt;br /&gt;
&lt;br /&gt;
3.4) Do you give constructive advice?&lt;br /&gt;
When I have constructive advice to give, I provide it. If I'm asked to provide some and I don't have any, I say that I don't.&lt;br /&gt;
&lt;br /&gt;
3.5) Do you receive advice well?&lt;br /&gt;
I consider who is giving the advice and what the advice is, and if it makes sense to follow it, I follow it.&lt;br /&gt;
&lt;br /&gt;
3.6) Are you good at sorting useful criticisms from useless ones?&lt;br /&gt;
When criticism is specific enough to be useful (i.e. not along the lines of &amp;quot;your game sucks&amp;quot;), it's advice, see 3.5.&lt;br /&gt;
&lt;br /&gt;
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 &lt;br /&gt;
to &amp;quot;see how it turn out&amp;quot;, taking the risk of having it thrown away if it doesn't match what the project wants?&lt;br /&gt;
I generally prefer to design things before I start coding, but there is definitely a point of design where you can implement two ideas in the time it takes to decide between them, and I generally will limit myself to 15 minutes actively thinking about a decision before either deciding, or moving on to something else and letting the decision work itself out on the backburner.&lt;br /&gt;
&lt;br /&gt;
4) Project&lt;br /&gt;
&lt;br /&gt;
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?&lt;br /&gt;
I selected the New Alliance System idea. The largest benefit to the game of this, in my opinion, is introducing asymmetry in diplomacy, where you need to trust the other player to have given you permission to do what you want to do.&lt;br /&gt;
&lt;br /&gt;
4.2) If you have invented your own project, please describe the project and the scope.&lt;br /&gt;
N/A&lt;br /&gt;
&lt;br /&gt;
4.3) Why did you choose this project?&lt;br /&gt;
It sounds like the game would benefit from, and while my idea will almost certainly need to be refined as I become more familiar with the code base, it was the project for which a potential implementation first formed in my head.&lt;br /&gt;
&lt;br /&gt;
4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like &amp;quot;I booked holidays between A and B&amp;quot; and &amp;quot;I got an exam at ABC and won't be doing much &lt;br /&gt;
&lt;br /&gt;
then&amp;quot;.&lt;br /&gt;
Note: This is only a &amp;quot;phase&amp;quot; timeline which will be updated into a date timeline as I become more familiar with the code base and can better estimate how long things will take and refine my implementation.&lt;br /&gt;
&lt;br /&gt;
Step One: Code the values for storage of different &amp;quot;alliance rules&amp;quot; (Current planned implementation: wrapper for enums to allow for future expansion from boolean values)&lt;br /&gt;
Step Two: Code the grouping of these rules together for a set of rules between two players (Probably a class that has each rule)&lt;br /&gt;
Step Three: Code the storage of relationships between two players (Write simple class that holds an active and a passive player, then hashmap these to rules)&lt;br /&gt;
Step Four: Expose these to WML (Need to learn more about WML to even start figuring out an implementation for this)&lt;br /&gt;
Step Five: Go into the code for the actions which the rules affect and make the rules work (with simple checks of the enums).&lt;br /&gt;
Step Six: Make this settable from the GUI&lt;br /&gt;
Step Seven: Add (probably at the WML level, but I could be wrong) a way to store a certain configuration of permissions for quick recall in the future, and use this to provide emulation of the current &lt;br /&gt;
&lt;br /&gt;
alliance system.&lt;br /&gt;
Step Eight: GUI access of predefined configurations&lt;br /&gt;
Step Nine: Add &amp;quot;Prompt&amp;quot; option to unit attacking, village taking, and any additional rules which are developed which affect the &amp;quot;active&amp;quot; player&lt;br /&gt;
&lt;br /&gt;
4.5) Include as much technical detail about your implementation as you can&lt;br /&gt;
I think I've included all my technical detail in my timeline.&lt;br /&gt;
&lt;br /&gt;
4.6) What do you expect to gain from this project?&lt;br /&gt;
Experience in game development and a place in what seems to be a wonderful developer community.&lt;br /&gt;
&lt;br /&gt;
4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?&lt;br /&gt;
The developer community and a superb product which I would be proud to be a part of.&lt;br /&gt;
&lt;br /&gt;
5) Practical considerations&lt;br /&gt;
&lt;br /&gt;
5.1) Are you familiar with any of the following tools or languages?&lt;br /&gt;
&lt;br /&gt;
    * Subversion (used for all commits)&lt;br /&gt;
	Yes, used in internship last summer and my current class.&lt;br /&gt;
    * C++ (language used for all the normal source code)&lt;br /&gt;
	Yes.&lt;br /&gt;
    * STL, Boost, Sdl (C++ libraries used by Wesnoth)&lt;br /&gt;
	No, though I'd be happy to learn.&lt;br /&gt;
    * Python (optional, mainly used for tools)&lt;br /&gt;
	Yes, but with more reference to documentation than C++&lt;br /&gt;
    * build environments (eg cmake/autotools/scons)&lt;br /&gt;
	Kind of iffy on writing Makefiles at the moment, but I should be better by summer.&lt;br /&gt;
    * WML (the wesnoth specific scenario language)&lt;br /&gt;
	No exposure yet, looking forward to learning it.&lt;br /&gt;
    * Lua (used in combination with WML to create scenarios) &lt;br /&gt;
	No exposure, ready to learn&lt;br /&gt;
&lt;br /&gt;
5.2) Which tools do you normally use for development? Why do you use them?&lt;br /&gt;
I generally use Netbeans for the languages it supports as it provides a very good IDE (though I'll admit that the auto-generation of Makefiles is the reason I didn't really learn Makefiles from my &lt;br /&gt;
&lt;br /&gt;
internship last summer). For the languages not supported by Netbeans, I use Emacs, though this is admittedly mostly a matter of familarity and comfort.&lt;br /&gt;
&lt;br /&gt;
5.3) What programming languages are you fluent in?&lt;br /&gt;
C, C++, Java, Python, Scheme&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
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&lt;br /&gt;
google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of &amp;quot;there is no way to contact you&amp;quot; does arise! &lt;br /&gt;
Not a problem at all. I'll include my phone number on the Google application.&lt;/div&gt;</summary>
		<author><name>Endercoaster</name></author>
		
	</entry>
</feed>