<?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=Dudegaurav</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=Dudegaurav"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/Dudegaurav"/>
	<updated>2026-06-18T04:14:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25283</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25283"/>
		<updated>2008-04-11T23:01:03Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Player Profiles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and i feel that its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
More Clarification included in [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
* Ability for a player to play multiple games simultaneously . With the integration of the hall system , this might actually be one step closer to reality !&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
I shall try hard to adhere to this timeline , however slight modifications may be made in the course of the project.&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it, if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either player stats from a current popular ladder website are imported into the profiles, or the win/loss stats of a player are not made public . The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25282</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25282"/>
		<updated>2008-04-11T23:00:14Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Me */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and i feel that its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
More Clarification included in [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
* Ability for a player to play multiple games simultaneously . With the integration of the hall system , this might actually be one step closer to reality !&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
I shall try hard to adhere to this timeline , however slight modifications may be made in the course of the project.&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it, if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either player stats from a current popular ladder website are imported into the profiles, or the win/loss stats of a player are not made public . The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25281</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25281"/>
		<updated>2008-04-11T22:58:42Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* More ambitious goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
More Clarification included in [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
* Ability for a player to play multiple games simultaneously . With the integration of the hall system , this might actually be one step closer to reality !&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
I shall try hard to adhere to this timeline , however slight modifications may be made in the course of the project.&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it, if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either player stats from a current popular ladder website are imported into the profiles, or the win/loss stats of a player are not made public . The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25280</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25280"/>
		<updated>2008-04-11T22:56:24Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Tips from the Wesnoth community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
More Clarification included in [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
I shall try hard to adhere to this timeline , however slight modifications may be made in the course of the project.&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it, if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either player stats from a current popular ladder website are imported into the profiles, or the win/loss stats of a player are not made public . The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25279</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25279"/>
		<updated>2008-04-11T22:55:03Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Tips from the Wesnoth community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
More Clarification included in [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
I shall try hard to adhere to this timeline , however slight modifications may be made in the course of the project.&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it, if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either, player stats from a current popular ladder website are imported into the profiles, or not making the win/loss stats in the profiles public. The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25278</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25278"/>
		<updated>2008-04-11T22:52:34Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Overview and Estimated Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
More Clarification included in [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
I shall try hard to adhere to this timeline , however slight modifications may be made in the course of the project.&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either, player stats from a current popular ladder website are imported into the profiles, or not making the win/loss stats in the profiles public. The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25277</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25277"/>
		<updated>2008-04-11T22:37:53Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
More Clarification included in [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either, player stats from a current popular ladder website are imported into the profiles, or not making the win/loss stats in the profiles public. The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25276</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25276"/>
		<updated>2008-04-11T22:36:46Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Game Grouping and Layout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
More Clarification included in [[#Tips from the Wesnoth community|Tips from the Wesnoth community]] below.&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the Tips from the Wesnoth Community section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either, player stats from a current popular ladder website are imported into the profiles, or not making the win/loss stats in the profiles public. The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25275</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25275"/>
		<updated>2008-04-11T22:32:14Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Coding Experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts . I am also familiar with multi threaded programming as in my 2nd year I have developed multithreaded programs in C using POSIX threads , and of course in ADA.&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the Tips from the Wesnoth Community section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either, player stats from a current popular ladder website are imported into the profiles, or not making the win/loss stats in the profiles public. The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25274</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25274"/>
		<updated>2008-04-11T22:30:10Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Coding Experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
* SQL&lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* In my 2nd year I have developed multithreaded programs in C using POSIX threads , and in ADA&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the Tips from the Wesnoth Community section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either, player stats from a current popular ladder website are imported into the profiles, or not making the win/loss stats in the profiles public. The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25273</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25273"/>
		<updated>2008-04-11T22:25:24Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Player Profiles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
* In regards to what information may be made public / private , i have included more details in the Tips from the Wesnoth Community section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either, player stats from a current popular ladder website are imported into the profiles, or not making the win/loss stats in the profiles public. The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25272</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25272"/>
		<updated>2008-04-11T22:17:04Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Tips from the Wesnoth community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
I received some valuable tips from Mordante as an application comment , here are the proposed solutions:&lt;br /&gt;
&lt;br /&gt;
 How do grouping and halls work together?&lt;br /&gt;
&lt;br /&gt;
Grouping would be done for the main lobby , which would have the games in a grid layout with similar types of games having the same level in the grid .A Hall would probably be a copy of the main lobby containing only the players who join a respective hall. So a hall would have a similar grouped layout of games created by players in the respective hall( These games would not be visible to players who have not joined the hall). When a player enters the server, he would be in the main lobby where all public games would be visible to him. If he then joins a hall, he would be redirected to the hall and would then be able to view the games created in that particular hall. Now , the halls may be in a tabbed view similar to multiple IRC chat rooms . If it were so , a player would be able to join multiple halls and view them by clicking on their respective tabs. This is how I would want to implement the halls ideally.&lt;br /&gt;
&lt;br /&gt;
 Player Profiles(Controvertial ?) after discussion with MP devs / others , data storage solution ?&lt;br /&gt;
&lt;br /&gt;
Discussing with devs /others in the multiplayer IRC room, I found that people are inclined towards having a profile which would have:&lt;br /&gt;
*Public information (Visible to all players):&lt;br /&gt;
**Nick &lt;br /&gt;
**Last Login time &lt;br /&gt;
**Game type preference &lt;br /&gt;
**Idle time (For current session) &lt;br /&gt;
*Private information (visible to the player only):&lt;br /&gt;
**List of buddies &lt;br /&gt;
**Some sort of game statistics&lt;br /&gt;
&lt;br /&gt;
Sirp mentioned that Mist and himself are working towards integrating the forum profiles with the wesnothd profiles. I would be happy to assist with that in any way possible, or perhaps even implement components of it if assigned to the task.&lt;br /&gt;
I intend to keep controversy out of the profile system if I get to implement it. This means that either, player stats from a current popular ladder website are imported into the profiles, or not making the win/loss stats in the profiles public. The profiles I intend on making are primarily to maintain buddy lists and give online status indication (idle or not) which I think would be very useful.&lt;br /&gt;
&lt;br /&gt;
As far as storing data goes, I haven’t thought about it explicitly yet.  Another couple of days of exploring wesnoth code would give me a better idea of efficient data structures commonly used. Please check back here in 3 days to get more info on this issue.&lt;br /&gt;
&lt;br /&gt;
 TimeLine Update ?&lt;br /&gt;
&lt;br /&gt;
Timeline has been updated as of today !&lt;br /&gt;
&lt;br /&gt;
 Patches ?&lt;br /&gt;
&lt;br /&gt;
Unfortunately I haven’t been able to supply any patches as yet , but am working on delivering one by the 21st if its possible .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25257</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25257"/>
		<updated>2008-04-11T20:55:47Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* IRC style Room(Hall) System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25256</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=25256"/>
		<updated>2008-04-11T20:53:31Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Overview and Estimated Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
For the last week and a half I was completely unable to work on my wiki and proposal details as I had quite a few assignments due and a mid semester exam !  This timeline has now been organized into periods of dates , with varying period sizes. Breaks , exams , assignments have been indicated clearly and details of work to be done in every time period has been included. Whenever assignments are due or exams are present my work habits will be affected for one or two days before the due date , sorry ! But during breaks , I shall be working full time and there will be no disturbances in work habits .&lt;br /&gt;
&lt;br /&gt;
TimeLine as of April 12th :&lt;br /&gt;
&lt;br /&gt;
 Mid Sem Break Begins 11/04 &lt;br /&gt;
*12/04 – 21/04 : Understand and familiarize with Wesnoth Code  i.e. class dependencies etc&lt;br /&gt;
*21/04 – 28/04 : Research on other Multiplayer Lobbies , put up discussions on the forum , take opinions on IRC on finer details of my ideas . Also , by the 28th , I hope to have familiarized myself with wesnoth code entirely. (~~ Assignment due on 28/04 ~~)&lt;br /&gt;
 Mid Sem Break Ends 28/04 &lt;br /&gt;
*29/04  – 10/05 : Design proposed interface (i.e. Class diagrams , dependencies , finer details etc) Prepare presentation on my proposed interface of the mp server.  I would probably present this to the mentors around the 11th. (~~ Assignment due on 04/05 , exam on 05/05 ~~)&lt;br /&gt;
*11/05 – 14/05 : Finalize design after incorporating changes suggested by mentors &lt;br /&gt;
*15/05 – 11/06 : Develop/Code first prototype of intended interface and deliver to mentors for evaluation.  (~~ Assignments due on 18/05 , 28/05 , 01/06 ~~)&lt;br /&gt;
 Semester Exam period begins 12/06  ( 3 actual exam days  for me which haven’t been announced yet ) &lt;br /&gt;
*12/06 – 28/06 : Fix bugs , try to improve code performance etc ( light jobs due to exams :)&lt;br /&gt;
 Semester Exam period ends 28/06 , Semester Break Begins 29/06&lt;br /&gt;
*29/06 – 07/07 : Incorporate changes suggested by mentors to first prototype , generate 2nd prototype . Try to fix preliminary bugs , generate some meaningful documentation&lt;br /&gt;
*08/07 – 14/07 : Prepare and submit mid-term evaluation , fix more bugs , finish incorporating changes &lt;br /&gt;
*15/07 – 31/07 : Improve performance of 2nd  prototype , fix most bugs , submit code to mentors again to evaluate.&lt;br /&gt;
 Semester break ends 29/07 , 2nd Semester begins &lt;br /&gt;
*01/08 –07/08 : Finalize 2nd  prototype to 3rd and Final prototype and ask mentors for comments&lt;br /&gt;
*08/08 – 18/08 : Write tests , beautify code , improve documentation &lt;br /&gt;
*19/08 – 31/08 : Prepare Final evaluation and finalize code to be submitted.&lt;br /&gt;
*01/09  – Submit Final evaluation &lt;br /&gt;
*03/09  – Submit Code to google.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24950</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24950"/>
		<updated>2008-03-31T10:28:49Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* More ambitious goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large .&lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable . Of course , i havent yet included details of my exams and assignments at uni here at the moment , will be incorporating them very soon.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24650</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24650"/>
		<updated>2008-03-26T16:10:33Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable . Of course , i havent yet included details of my exams and assignments at uni here at the moment , will be incorporating them very soon.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24649</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24649"/>
		<updated>2008-03-26T16:09:42Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also believe that Wesnoth despite its origins as an adventure game , makes an excellent human vs. human game , as an AI can only do so much when it comes to tactics in battle ! Hence without advanced multiplayer capabilities Wesnoth is incomplete so to say ! &lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Here are some thoughts that may be interesting enough to implement .....&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable . Of course , i havent yet included details of my exams and assignments at uni here at the moment , will be incorporating them very soon.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24642</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24642"/>
		<updated>2008-03-26T02:30:40Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also beleive that wesnoth is mainly a human vs. human game , as an AI can only do so much when it comes to tactics in battle ! Hence without advanced multiplayer capabilities wesnoth is incomplete so to say ! &lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable . Of course , i havent yet included details of my exams and assignments at uni here at the moment , will be incorporating them very soon.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24599</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24599"/>
		<updated>2008-03-25T19:50:26Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Overview and Estimated Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also beleive that wesnoth is mainly a human vs. human game , as an AI can only do so much when it comes to tactics in battle ! Hence without advanced multiplayer capabilities wesnoth is incomplete so to say ! &lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable . Of course , i havent yet included details of my exams and assignments at uni here at the moment , will be incorporating them very soon.&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24598</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24598"/>
		<updated>2008-03-25T19:31:03Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also beleive that wesnoth is mainly a human vs. human game , as an AI can only do so much when it comes to tactics in battle ! Hence without advanced multiplayer capabilities wesnoth is incomplete so to say ! &lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I'm proficient in C++ and am a quick learner of concepts . I'm very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24597</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24597"/>
		<updated>2008-03-25T19:26:49Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* My Ideas for Extending the Multiplayer Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I also beleive that wesnoth is mainly a human vs. human game , as an AI can only do so much when it comes to tactics in battle ! I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24596</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24596"/>
		<updated>2008-03-25T18:57:04Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Admin &amp;amp; Moderation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, I would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24595</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24595"/>
		<updated>2008-03-25T18:56:33Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Overview and Estimated Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By August the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24594</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24594"/>
		<updated>2008-03-25T18:56:00Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Tips from the wesnoth community */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
==Tips from the Wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if I'm not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24593</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24593"/>
		<updated>2008-03-25T18:55:03Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Overview and Estimated Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as I see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24592</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24592"/>
		<updated>2008-03-25T18:54:37Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Player Profiles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time. This would reflect even while playing a game , so if an opponent(after almost being brutally defeated !) is idle for 10 mins and does not reply to chat , the player in his good judgement can leave the game .&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as i see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24591</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24591"/>
		<updated>2008-03-25T18:52:15Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* IRC style Room(Hall) System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers ( This problem is addressed in the &amp;quot;Player profile&amp;quot; section )&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as i see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24590</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24590"/>
		<updated>2008-03-25T18:49:46Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* IRC style Room(Hall) System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , I agree the last 2 points were very far fetched but who knows , anything is possible !&lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as i see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24589</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24589"/>
		<updated>2008-03-25T18:49:01Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Player Profiles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , i agree the last 2 points were very far fetched but who knows , anything is possible ! &lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could have a real time indicator on their profiles if they are online of not , and maybe also have an indicator if they have been inactive(idle) for a certain period of time&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as i see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24588</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24588"/>
		<updated>2008-03-25T18:46:54Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , i agree the last 2 points were very far fetched but who knows , anything is possible ! &lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted. One of my own problems with the authentication system that i have encountered is :&lt;br /&gt;
*Often when a player logs out of the server, and if he wants to log back in immediately , he has do so with a different ID because the server still has the player nick as active. &lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as i see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24587</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24587"/>
		<updated>2008-03-25T18:43:20Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* My Ideas for Extending the Multiplayer Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , I find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers&lt;br /&gt;
*Often when a player logs out of the server, he has to log back in with a different ID because the server still has the player nick as active. (Maybe a problem of authentication , but I feel its related)&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , i agree the last 2 points were very far fetched but who knows , anything is possible ! &lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted.&lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as i see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=24586</id>
		<title>SummerOfCodeIdeas</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=24586"/>
		<updated>2008-03-25T18:40:36Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* ExtendingMultiplayerServer (dudegaurav) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a compilation of ideas from ML. Needs to be refined (more detailed description, deliverables, workload estimation?):&lt;br /&gt;
&lt;br /&gt;
== I want to be one of your Google Summer of Code students, what should I do... ==&lt;br /&gt;
&lt;br /&gt;
Here is a quick list of things to do to get you started&lt;br /&gt;
* Create an account on gna.org&lt;br /&gt;
* Create an account on the wesnoth forum&lt;br /&gt;
* Join the irc channel (#wesnoth-dev on irc.freenode.net) and introduce yourself. We will not give formal interviews, but we will clearly favor people we have learnt to know during the selection process&lt;br /&gt;
* Contact one of our SummerOfCode people (Ivanovic, Sirp, Boucman, Mordante) to have your forum nick marked as a Summer of code student&lt;br /&gt;
&lt;br /&gt;
* Start a wiki page about your idea, add a link on the bottom of this page and add this information on it:&lt;br /&gt;
** List your account names (gna, forum, irc nick) so that we can recognize you&lt;br /&gt;
** Fill the questionnaire on this page: [[SoC_Information_for_Google#Does_your_organization_have_an_application_template_you_would_like_to_see_students_use.3F_If_so.2C_please_provide_it_now.| List of questions to answer]]&lt;br /&gt;
** Detail your idea as much as possible, look at other students pages, and please give milestones and studies you've done&lt;br /&gt;
&lt;br /&gt;
* Though not mandatory, it is highly advisable to go to the [[EasyCoding]] and [[NotSoEasyCoding]] pages and implement one of these ideas (or any idea of similar scope) so we have an idea how you work. Be sure to use your gna account when submitting these patches so we know who it is coming from. You can also implement some features from our feature request database at gna. When you implement something, also list it on your own page with a reference to the patch.&lt;br /&gt;
&lt;br /&gt;
* Once you have everything done here and think your idea is okay, go to [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants to page at google] to submit your application. You have to submit it before '''Monday, March 31, 2008''' or you have no chance to get in!&lt;br /&gt;
&lt;br /&gt;
== List of Ideas for the Project (Suggestions from the wesnoth developers) ==&lt;br /&gt;
&lt;br /&gt;
Here is only a short description of possible Ideas we have, each has a page of its own with a more detailed version on it.&lt;br /&gt;
&lt;br /&gt;
=== Writing an AI based on the formula AI ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has always had a simple C++ based AI. David (our lead developer) has been working on a simple language to write AI in Wesnoth: [[FormulaAI]]&lt;br /&gt;
&lt;br /&gt;
The Wesnoth AI is used as an opponent in most campaigns, and as such is an important piece of code for the Wesnoth project. Unfortunately, because the skills required to understand and modify it are rather arcane, it is also one of the most neglected parts of the Wesnoth code. This is a place where a lot of research and useful work could be done. But keep in mind that [[WhyWritingAWesnothAIIsHard|writing an AI for Wesnoth is difficult]].&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas FormulaAI]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Extending the Multiplayer server ===&lt;br /&gt;
&lt;br /&gt;
Our multiplayer community is generally strong and healthy, but we believe its growth is limited by some problems in the interface of the multiplayer lobby.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Multiplayer server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Scenario/Campaign editor ===&lt;br /&gt;
&lt;br /&gt;
Currently, in order to create campaign or multiplayer scenarios, it is necessary to manually edit WML files - XML-like configuration files. The goal of this project would be to create a graphical editor to make the creative process easier.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Scenario and Campaign Editor]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Addon server ===&lt;br /&gt;
Wesnoth has an addon server which offers users to upload user &lt;br /&gt;
made content (UMC). This allows all other users of Wesnoth&lt;br /&gt;
to easily download and install this content. The server was &lt;br /&gt;
originally written for user-made campaigns but contains a lot&lt;br /&gt;
more types of addons nowadays. Both the server side and the &lt;br /&gt;
client side need to be improved.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Addon Server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Map editor ===&lt;br /&gt;
The map editor in Wesnoth serves two goals, making it easy to create&lt;br /&gt;
a new map and helping the terrain artists to test their new terrains.&lt;br /&gt;
&lt;br /&gt;
[[SoC_Ideas_Map_Editor]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Other possible ideas to be fleshed out ===&lt;br /&gt;
A MapGenerator rewrite - better scalable for outdoor maps, plus the possibility to define areas (similar to the caverns in the cave generator) etc.&lt;br /&gt;
&lt;br /&gt;
=== Make your own ideas ===&lt;br /&gt;
If you have your own idea the best thing is to join IRC wesnoth-dev at irc.freenode.net and discuss the idea with the developers there. If the developers think your idea is interesting and like the feature you can start to turn it into a full proposal. Once done discuss it again on IRC so the developers can accept your idea.&lt;br /&gt;
&lt;br /&gt;
== Information about our Project ==&lt;br /&gt;
The information we provided google with about our project can be looked up at the site [[SoC Information for Google]].&lt;br /&gt;
&lt;br /&gt;
Also see the [[DeveloperResources]] link (from the [[Project]] page).&lt;br /&gt;
&lt;br /&gt;
== People to bug on IRC ==&lt;br /&gt;
We have prepared a list of people with their &amp;quot;area of competence&amp;quot;. This is to give you an idea on which areas those people can be of help for you. Of course you should always just ask in the IRC chan, but those are the most likely ones to answer questions in the respective area. And here is the list:&lt;br /&gt;
&lt;br /&gt;
[[SoC People to bug on IRC]]&lt;br /&gt;
&lt;br /&gt;
== GSoC Student Applicant Ideas == &lt;br /&gt;
&lt;br /&gt;
Every student interested to work on Wesnoth as part of Summer of Code should create a page of his own where several things should be listed. Here is a short list of what should be mentioned on the list (the more info for us, the better...):&lt;br /&gt;
&lt;br /&gt;
* Who are you? Please list your IRC and forum nickname in here and describe yourself so that we get you to know.&lt;br /&gt;
* What do you want to work on? Please flesh out your personal ideas, so that we get to know what you plan to work on.&lt;br /&gt;
* If you already submitted patches, please list those so that we have a reference.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas FormulaAI|Formula AI]]===&lt;br /&gt;
====[[FormulaAIandAdaptation]] (Alesis-Novik) ====&lt;br /&gt;
The new idea and aproach using strategic and inside game knowledge&lt;br /&gt;
&lt;br /&gt;
==== [[FormulaAIandDynamicScripting]] (barbarianhero) ====&lt;br /&gt;
This project idea uses Formula AI and Dynamic Scripting to create a tunable and adaptive AI.&lt;br /&gt;
&lt;br /&gt;
====[[FormulaAIBaseAI]] (Dragonking) ====&lt;br /&gt;
Developing smart and pluggable AI, which would be really easy tweakable by Scenario and Campaign Developers &lt;br /&gt;
&lt;br /&gt;
====[[Building A Strategic Planner with Formula AI|FormulaAIPlanner]] (TVincent) ====&lt;br /&gt;
This project idea uses (and maybe extends) Formula AI to create a strategic, responsive AI of the Planner model.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Multiplayer server|Multiplayer Server]]===&lt;br /&gt;
====[[ExtendingMultiplayerServer]] (dudegaurav) ====&lt;br /&gt;
This project proposal incorporates several ideas on how to refine the current Multiplayer Server !&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Scenario and Campaign Editor|Scenario/Campaign Editor]]===&lt;br /&gt;
====[[ExtensibleScenarioEditor]] (david.hilton) ====&lt;br /&gt;
On a conceptual level, this idea combines a finite state machine editor with a code generator to create scenarios.&lt;br /&gt;
&lt;br /&gt;
====[[pyQTScenarioEditor]] (Malle) ====&lt;br /&gt;
That's me!&lt;br /&gt;
&lt;br /&gt;
====[[RujasuScenarioEditor]] (rujasu) ====&lt;br /&gt;
Scenario editor that will coordinate with the look and feel of the Wesnoth game.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Addon Server|Addon Server]]===&lt;br /&gt;
====[[AddonServerSocial]] (lao) ====&lt;br /&gt;
Improving addon Server/Client by adding some social content.&lt;br /&gt;
&lt;br /&gt;
====[[AddonServer]] (giebfried) ====&lt;br /&gt;
This project is to improve the server and client sides of the addon server, as suggested above.&lt;br /&gt;
&lt;br /&gt;
===[[SoC Ideas Map Editor|Map Editor]]===&lt;br /&gt;
====[[EvolutionaryMapEditor]] (xonev) ====&lt;br /&gt;
An evolutionary approach to improving the map editor.&lt;br /&gt;
&lt;br /&gt;
====[[VimzardMapEditor]] (vimzard) ====&lt;br /&gt;
A better random map generator, some essential features and a tie-in with the Scenario Editor.&lt;br /&gt;
&lt;br /&gt;
====[[NewMapEditor]] (Cecen) ====&lt;br /&gt;
This is basically a rewrite of the current map editor with various added features and tweaks to both increase the versatility of the editor and make it easier for the user to create maps with.&lt;br /&gt;
&lt;br /&gt;
====[[MapEditorRewrite]] (dlr365)====&lt;br /&gt;
A rewrite of the map editor, then taking it in the direction of a combined map/scenario editor for both quick scenarios and more complex ones.&lt;br /&gt;
&lt;br /&gt;
===Map Generator===&lt;br /&gt;
====[[RandomCampaignGenerator]] (kartik thakore, refining idea) ====&lt;br /&gt;
Procedural map generation that will hope to give writers better control over the random map generator using an interface.&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
====[[WesnothStatistics]] (radx) ====&lt;br /&gt;
Project related to Wesnoth statistics (campaign) submission, gathering and presentation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code|*]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24585</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24585"/>
		<updated>2008-03-25T18:37:23Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , i find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded i.e. if players have their own versions that they want to play with.&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers&lt;br /&gt;
*Often when a player logs out of the server, he has to log back in with a different ID because the server still has the player nick as active. (Maybe a problem of authentication , but I feel its related)&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , i agree the last 2 points were very far fetched but who knows , anything is possible ! &lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted.&lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as i see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24584</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24584"/>
		<updated>2008-03-25T18:36:04Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , i find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded ( elaboration required )&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers&lt;br /&gt;
*Often when a player logs out of the server, he has to log back in with a different ID because the server still has the player nick as active. (Maybe a problem of authentication , but I feel its related)&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , i agree the last 2 points were very far fetched but who knows , anything is possible ! &lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted.&lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Scalability of ideas==&lt;br /&gt;
The ideas mentioned here , I feel are very much scalable. Mainly ,&lt;br /&gt;
&lt;br /&gt;
*The Hall system , could support many times the current number of players , without much confusion , as it would be properly categorized. A vast number of player groups would be able to communicate amongst themselves in their private halls , avoiding public chat mayhem . &lt;br /&gt;
*Player profiles could start simply as a statistical database but could grow into a future ranking system which is agreeable to a multitude of players&lt;br /&gt;
*The proposed grid layout could support many more games in an organized fashion than the current layout. Having such a layout in each hall(by default) would make individual halls capable of hosting a large number of games&lt;br /&gt;
*The proposed system of game grouping into types may be extended according to player input&lt;br /&gt;
&lt;br /&gt;
==Admin &amp;amp; Moderation==&lt;br /&gt;
By introducing the ability for players to define their own Halls , a certain moderation factor should also introduce itself. If these ideas are implemented,  it would be natural for the devs to assign mods for the server. Mods would have privileges to remove any offensive groups which might have been created. By my initial study of other multiplayer communities, i would possibly discover many more moderation issues involved in my design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
Overall , my ideas are a starting point upon which I hope to build extensively by further research. Even after GSoC is over I hope  to continue to be a Wesnoth developer. By participating in GSoC I hope to contribute to open source development , and more importantly , contribute to Wesnoth ! In the process , I would also significantly develop my coding skills ,my knowledge of networks  and possibly my abilty to work in a virtual team environment ! I am very open to criticism and reasonable arguments , hence can only be on the trail of improvement !&lt;br /&gt;
&lt;br /&gt;
My proposed timeline would be :&lt;br /&gt;
*I would start the project by doing research on the wesnoth lobby asking players about improvements that can be made, maybe putting up polls on the wiki page for players to participate in. &lt;br /&gt;
*Then I would research other multiplayer lobbies such as GameSpy , studying their patterns and judging what features would be best for wesnoth. I have already started doing this , and will be editing this page with more suitable details pretty soon. &lt;br /&gt;
*After this stage , during the community bonding period I would give a presentation of my proposed interface for the multiplayer server to my mentors. After incorporating possible changes to my proposal given by mentors , I would start coding. This would possibly be during the last week of april / early may , going by google’s timeline. &lt;br /&gt;
*By July , the mid term evaluations would be submitted.&lt;br /&gt;
*By august the code. &lt;br /&gt;
*By September , everything should be ready to roll !&lt;br /&gt;
&lt;br /&gt;
This is only a rough estimate of the project as i see it now , and many changes in it will be inevitable .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tips from the wesnoth community==&lt;br /&gt;
My ideas are very fundamental to say the least, and may have many flaws which I am oblivious to at the moment.  All constructive criticism from the devs , or anyone for that matter is more than welcome ! I shall be available on IRC most of the time, but if im not, please list your tips in this section of the page if you want to. Emailing me would be appreciated, but I can understand the trouble one has to go through for that! &lt;br /&gt;
&lt;br /&gt;
Tips from others……….&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24581</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24581"/>
		<updated>2008-03-25T17:46:16Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
&lt;br /&gt;
Looking into the current wesnoth multiplayer lobby , i find that certain issues have a definite need for remedy !&lt;br /&gt;
&lt;br /&gt;
====Game Grouping and Layout====&lt;br /&gt;
The games are currently grouped in a simple list format with a scrollbar. It would be pretty inconvenient for a new player entering the server to choose a game of his liking with the current interface. What I propose is to create a Grid Layout , having separate levels for separate types of games . More elaborately, types of games could be categorized in the following ways :&lt;br /&gt;
&lt;br /&gt;
*Unlimited/Limited turn games&lt;br /&gt;
*Epic games (eg. 100x100 maps)&lt;br /&gt;
*Moderate games (eg. 50x50 maps)&lt;br /&gt;
*Quick games (eg. 20x20 maps)&lt;br /&gt;
*Games with turn timers , as in turns would have time limits &lt;br /&gt;
*Custom games with mod patches to be downloaded ( elaboration required )&lt;br /&gt;
&lt;br /&gt;
These are the types that come to mind at the moment, but obviously there can be many more depending on player inputs I receive during the project.  For each type of game I propose to have a level in the grid interface, with lines clearly demarcating each level.  &lt;br /&gt;
In each level, the games with the most amount of free slots would be displayed first and so on in a horizontal scrolling manner. Players would then be able to choose easily what sort of game they are interested in and join them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC style Room(Hall) System====&lt;br /&gt;
The current server has a single room interface ,a pretty basic one. Players have the following options that may be disadvantageous in some ways:&lt;br /&gt;
&lt;br /&gt;
*All chat before a match is public&lt;br /&gt;
*Have to wait for random players to join into a match for it to start&lt;br /&gt;
*Have limited options for challenging other players into matches if they aren’t reading the public chats&lt;br /&gt;
*Players have no way of understanding whether their opponent(s) have left their computer(gone idle) or not in games which do not have turn timers&lt;br /&gt;
*Often when a player logs out of the server, he has to log back in with a different ID because the server still has the player nick as active. (Maybe a problem of authentication , but I feel its related)&lt;br /&gt;
&lt;br /&gt;
As solutions to some of these problems, I propose to make a Hall (Room) system which may have the following options:&lt;br /&gt;
&lt;br /&gt;
*Players can create their own rooms (Halls) , similar to IRC , which would enable them to chat with players of their choice about the matches they want to play within the hall. &lt;br /&gt;
*The Halls would appear in a separate section, “The Halls” section, maybe to the left hand corner of the screen. The exact position of this section in the startup interface is variable.&lt;br /&gt;
*In the Halls section, players could create/delete their own Halls or join other Halls. Probably, buttons for these actions will have to be provided, or maybe a command line “\join” style may be used.&lt;br /&gt;
*A default “Challengers” Hall may be a good idea to start with where players who want a quick random challenge may dwell!&lt;br /&gt;
*Upon creating a Hall, it would appear as another tab with the main room , having similar traits such as the main room.  Upon joining a hall , a similar tab would appear  containing the hall’s current members and their games&lt;br /&gt;
*Players would be able to create and play games within a Hall. The game might/might not be displayed in the main room, depending on the options specified by the players as they may want a private game with known friends only!&lt;br /&gt;
&lt;br /&gt;
With a Hall system like this, it would be possible for players to: &lt;br /&gt;
&lt;br /&gt;
*Chat with known friends privately before a game , and then create the game accordingly&lt;br /&gt;
*Have the ability to create halls that may be grouping players with similar common attributes or interests . For example , a Player could create a Hall called “CanberraWarriors” where players from Canberra might join and compete.&lt;br /&gt;
*The scalability of wesnoth to a much larger multiplayer community may be a reality&lt;br /&gt;
*Thinking ambitiously , inter Hall tournaments could be organized where the best players from a hall would compete ! The best players would obviously be chosen from the hall with criteria determined by members of the hall , so no controversies arise from ranking !&lt;br /&gt;
*Possibly in the future , some Halls may even keep a criteria on entry ( this is really thinking way ahead ! ) , such as a player would be granted entry if he played a match with one of the members of the Hall and fared well !&lt;br /&gt;
&lt;br /&gt;
Well , i agree the last 2 points were very far fetched but who knows , anything is possible ! &lt;br /&gt;
&lt;br /&gt;
====Player Profiles====&lt;br /&gt;
Any multiplayer game server would have to incorporate player profiles to be popular. At the moment there are various external websites that provide a ladder format for wesnoth players to have profiles and possibly be ranked , for example , ladder.subversiva.org . However, an internal server database containing basic player statistics would be pretty handy in a lot of ways , mainly :&lt;br /&gt;
&lt;br /&gt;
*Players could maintain list of friends(buddies) on their profile and could check quickly whether any buddies are online at the moment&lt;br /&gt;
*Other players could look at fellow competitor’s stats and challenge them to a match maybe&lt;br /&gt;
&lt;br /&gt;
While there is a contention in the fact that people who have been playing for a while and have won many games, will have to start afresh on their profile stats, I feel this problem may have a solution.The current stats from the ladder websites could be ported in to the profiles and players could continue from where they left off on the ladder. This process may be achieved in many ways, either by correspondence with the admins of the ladder websites, or by the players themselves, whichever is feasible.&lt;br /&gt;
&lt;br /&gt;
====Login authentication similar to IRC====&lt;br /&gt;
Speaking to devs in IRC , I heard that login authentication was already under construction . I would be happy to contribute to its development if permitted.&lt;br /&gt;
&lt;br /&gt;
====Different Version support====&lt;br /&gt;
A problem I had encountered earlier when playing from outdated development releases was not being able to connect to the current multiplayer server. A solution for such a problem may be to incorporate such a provision , and then have a version stamp beside the player nick so that other similar players may group together. Possibly , there may be Halls for different versions .&lt;br /&gt;
&lt;br /&gt;
====More ambitious goals====&lt;br /&gt;
*Game Search system based on criteria - This may only be needed by players if the number of games is seriously large , which may not be the case in the near future. &lt;br /&gt;
*Player ranking system ( **Controvertial!** )  –  depends heavily on feedback from players and devs !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
I also think it would also be a good idea to do some online research in the multiplayer lobby to find out what other Wesnoth players think needs improving!&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24485</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24485"/>
		<updated>2008-03-24T15:00:29Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* My Ideas for Extending the Multiplayer Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that I am a fan of multiplayer games and believe that Wesnoth would become more popular with more advanced multiplayer capabilities. I'm also proficient in C++ which helps I guess, and am a quick learner of concepts.&lt;br /&gt;
 &lt;br /&gt;
As mentioned by Wesnoth developers in their suggestions for this topic, the basic idea is to study the current multiplayer lobby, come up with tweaks, get them approved and code them! At the moment, the tweaks that are evident to me are:&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of Wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games (eg 100x100 maps), fast-turn games, large games and so on. Groupings of game types would enable players to choose games they are interested in faster and more easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles, having info about player details, number of games played , won, lost, best match etc&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats, game stats etc.&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games, maybe making a grid layout rather than the current scroll up/down one&lt;br /&gt;
*Improved communication system between players i.e. private chat modes etc&lt;br /&gt;
*Simple room system similar to IRC, and separate rooms for different wesnoth versions, maybe more rooms for match-making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots, playing against whom (i.e. Northerners/Elves...), number of players, map size, map terrain, etc.&lt;br /&gt;
*Support for other languages for player convenience .&lt;br /&gt;
&lt;br /&gt;
I also think it would also be a good idea to do some online research in the multiplayer lobby to find out what other Wesnoth players think needs improving!&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24482</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24482"/>
		<updated>2008-03-24T14:48:03Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Communication Skills */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi!&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that i am a fan of multiplayer games and wesnoth would have much better market value with more advanced multiplayer capabilities. Im also proficient in C++ which helps i guess , and am a quick learner of concepts.&lt;br /&gt;
 &lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
*Support for other languages for player convenience .&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24481</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24481"/>
		<updated>2008-03-24T14:47:37Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Contact Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav, available for voip anytime!&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible, usually I sleep from 15:00 to 21:00 UTC and am available the rest of the time.&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that i am a fan of multiplayer games and wesnoth would have much better market value with more advanced multiplayer capabilities. Im also proficient in C++ which helps i guess , and am a quick learner of concepts.&lt;br /&gt;
 &lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
*Support for other languages for player convenience .&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24480</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24480"/>
		<updated>2008-03-24T14:46:42Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Me */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
Hi, my name is Gaurav Mitra. I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University, Canberra. I have been playing Wesnoth for about 2 years now, and its about time I contributed to its development!&lt;br /&gt;
&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done. However, one of my home pc's has windows on it where I use Cygwin to compile programs. But I prefer Eclipse for Java and C++ projects. My favourite code editors other than Eclipse are Kate on Linux and Notepad++ on Windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows:&lt;br /&gt;
* In my 1st year I worked on a Java version of BlockOut in a team of 4 people&lt;br /&gt;
* I am currently working in a team of 6 on a year long project to develop a Linux Robotic Framework (in C)&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and I like working in small groups (eg 2-3 people).&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes, this is my first time! My motivation for participating is mainly to gain experience in developing a professional project and I get to develop Wesnoth which is great! But i intend on going through with Wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when I got my first pc. I prefer strategy war games rather than first person ones, hence my interest in wesnoth. My personal favourite game though is Age Of Empires II Conquerors, in which I have a fair bit of multiplayer gaming experience. I also enjoy Rome: Total War. In general I do not favour the AI as an opponent because its moves can be predicted. I find human opponents more unpredictable and hence exciting to fight, which makes me play multiplayer games more often! I also prefer more of gameplay rather than storyline. I'm also very much in contact with a big wesnoth playing community here on ANU campus so I am in constant competition with them via LAN games!&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav , available for voip anytime !&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that i am a fan of multiplayer games and wesnoth would have much better market value with more advanced multiplayer capabilities. Im also proficient in C++ which helps i guess , and am a quick learner of concepts.&lt;br /&gt;
 &lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
*Support for other languages for player convenience .&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24467</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24467"/>
		<updated>2008-03-24T10:29:20Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! My motivation for participating is mainly to gain experience in developing a professional project and i get to develop wesnoth which is great ! But i intend on going through with wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . As an opponent i do not favour AI because invariably its moves can be predicted . Human opponents are unpredictable and hence exciting to fight , which makes me play multiplayer games more often ! I also prefer more of gameplay rather than storyline . Im also very much in contact with a big wesnoth playing community here in ANU so am in constant competition with them in gameplay !&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav , available for voip anytime !&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that i am a fan of multiplayer games and wesnoth would have much better market value with more advanced multiplayer capabilities. Im also proficient in C++ which helps i guess , and am a quick learner of concepts.&lt;br /&gt;
 &lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
*Support for other languages for player convenience .&lt;br /&gt;
&lt;br /&gt;
==Overview and Estimated Timeline==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24466</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24466"/>
		<updated>2008-03-24T10:27:27Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Contact Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! My motivation for participating is mainly to gain experience in developing a professional project and i get to develop wesnoth which is great ! But i intend on going through with wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . As an opponent i do not favour AI because invariably its moves can be predicted . Human opponents are unpredictable and hence exciting to fight , which makes me play multiplayer games more often ! I also prefer more of gameplay rather than storyline . Im also very much in contact with a big wesnoth playing community here in ANU so am in constant competition with them in gameplay !&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Skype name: dude.gaurav , available for voip anytime !&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that i am a fan of multiplayer games and wesnoth would have much better market value with more advanced multiplayer capabilities. Im also proficient in C++ which helps i guess , and am a quick learner of concepts.&lt;br /&gt;
 &lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
*Support for other languages for player convenience .&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24465</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24465"/>
		<updated>2008-03-24T10:25:32Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* My Ideas for Extending the Multiplayer Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! My motivation for participating is mainly to gain experience in developing a professional project and i get to develop wesnoth which is great ! But i intend on going through with wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . As an opponent i do not favour AI because invariably its moves can be predicted . Human opponents are unpredictable and hence exciting to fight , which makes me play multiplayer games more often ! I also prefer more of gameplay rather than storyline . Im also very much in contact with a big wesnoth playing community here in ANU so am in constant competition with them in gameplay !&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that i am a fan of multiplayer games and wesnoth would have much better market value with more advanced multiplayer capabilities. Im also proficient in C++ which helps i guess , and am a quick learner of concepts.&lt;br /&gt;
 &lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
*Support for other languages for player convenience .&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24464</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24464"/>
		<updated>2008-03-24T10:22:31Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* My Ideas for Extending the Multiplayer Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! My motivation for participating is mainly to gain experience in developing a professional project and i get to develop wesnoth which is great ! But i intend on going through with wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . As an opponent i do not favour AI because invariably its moves can be predicted . Human opponents are unpredictable and hence exciting to fight , which makes me play multiplayer games more often ! I also prefer more of gameplay rather than storyline . Im also very much in contact with a big wesnoth playing community here in ANU so am in constant competition with them in gameplay !&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
My motivation for choosing this project comes from the fact that i am a fan of multiplayer games and wesnoth would have much better market value with more advanced multiplayer capabilities. Im also proficient in C++ which helps i guess , and am a quick learner of concepts.&lt;br /&gt;
 &lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24463</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24463"/>
		<updated>2008-03-24T10:18:46Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Gaming Experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! My motivation for participating is mainly to gain experience in developing a professional project and i get to develop wesnoth which is great ! But i intend on going through with wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . As an opponent i do not favour AI because invariably its moves can be predicted . Human opponents are unpredictable and hence exciting to fight , which makes me play multiplayer games more often ! I also prefer more of gameplay rather than storyline . Im also very much in contact with a big wesnoth playing community here in ANU so am in constant competition with them in gameplay !&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
&lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24462</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24462"/>
		<updated>2008-03-24T10:11:57Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Gaming Experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! My motivation for participating is mainly to gain experience in developing a professional project and i get to develop wesnoth which is great ! But i intend on going through with wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . As an opponent i do not favour AI because invariably its moves can be predicted . Human opponents are unpredictable and hence exciting to fight !&lt;br /&gt;
&lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
&lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24461</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24461"/>
		<updated>2008-03-24T10:09:17Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Coding Experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! My motivation for participating is mainly to gain experience in developing a professional project and i get to develop wesnoth which is great ! But i intend on going through with wesnoth development even after its over.&lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . &lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
&lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24460</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24460"/>
		<updated>2008-03-24T10:03:01Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! But i intend on going through with wesnoth development even after its over. &lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . &lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
&lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24459</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24459"/>
		<updated>2008-03-24T09:55:52Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* My Ideas for Extending the Multiplayer Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! But i intend on going through with wesnoth development even after its over. &lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . &lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
&lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth i.e. different versions would have separate rooms and they could compete there rather than having to download the latest version again &lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on . Grouping of a certain type of game would enable players to choose games they are interested in , easily&lt;br /&gt;
*Providing proper login authentication similar to IRC &lt;br /&gt;
*Player profiles , having info about player details , number of games played , won , lost , best match etc&lt;br /&gt;
*Database for storing player profiles and ranking players based on their game statistics&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC , and separate rooms for different wesnoth versions , maybe more rooms for match making purposes&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24457</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24457"/>
		<updated>2008-03-24T06:25:10Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! But i intend on going through with wesnoth development even after its over. &lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . &lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
The times that i am awake are generally very flexible , usually i sleep from 15:00 to 21:00 UTC and am available the rest of the time .&lt;br /&gt;
I will be logged into IRC most of the time but may not be checking it frequently so feel free to email me as i check mail every 30 mins !&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
&lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth&lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on &lt;br /&gt;
*Providing proper login authentication similar to IRC&lt;br /&gt;
*Player profiles &lt;br /&gt;
*Database for storing player profiles and ranking players based on games won , their skill level etc&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24456</id>
		<title>ExtendingMultiplayerServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ExtendingMultiplayerServer&amp;diff=24456"/>
		<updated>2008-03-24T06:05:48Z</updated>

		<summary type="html">&lt;p&gt;Dudegaurav: /* Me */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Me==&lt;br /&gt;
&lt;br /&gt;
Hi, my name is Gaurav Mitra . I am 21 years old and a 3rd year Software Engineering/Science student at the Australian National University , Canberra. I have been playing wesnoth for about 2 years now , and its about time i contributed to its development !&lt;br /&gt;
====Coding Experience====&lt;br /&gt;
I am proficient in the following programming languages :&lt;br /&gt;
* C &lt;br /&gt;
* C++&lt;br /&gt;
* Java&lt;br /&gt;
* Haskell&lt;br /&gt;
* ADA &lt;br /&gt;
&lt;br /&gt;
I am familiar with Linux environments which is where most of my coding is done . However, one of my home pc's has windows on it where i use cygwin to compile programs. But i prefer Eclipse for Java and C++ projects. My favourite code editors other than eclipse are Kate on linux and Notepad++ on windows.&lt;br /&gt;
I have used SVN extensively for coursework and use the Tortoise SVN shell extension in windows for version control. I am also familiar with basic Networking concepts&lt;br /&gt;
&lt;br /&gt;
My teamwork experience is as follows :&lt;br /&gt;
* In my 1st year I had worked on a Java game called blockOut in a team of 4 people&lt;br /&gt;
* Am currently working in a team of 6 to develop a Linux Robotic Framework written in C as a year long university project&lt;br /&gt;
* I have worked in groups of 2-4 for numerous presentations on topics such as AJAX etc&lt;br /&gt;
&lt;br /&gt;
My preferred method of development is Agile and i like working in groups of 2-3 people.&lt;br /&gt;
&lt;br /&gt;
As far as GSoC participation goes , this is my first time ! But i intend on going through with wesnoth development even after its over. &lt;br /&gt;
&lt;br /&gt;
====Gaming Experience====&lt;br /&gt;
I started playing games about 10 years back when i got my first pc . I prefer strategy war games rather than first person ones, hence my interest in wesnoth . My personal favourite game though is Age Of Empires II Conquerors , of which i have a fair bit of multiplayer gaming experience . &lt;br /&gt;
====Communication Skills====&lt;br /&gt;
I speak fluent English , Bengali and Hindi !&lt;br /&gt;
====Contact Info====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; IRC nick: dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Wesnoth Forum : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gna : dudegaurav&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Email: dude.gaurav@gmail.com&lt;br /&gt;
&lt;br /&gt;
==My Ideas for Extending the Multiplayer Server==&lt;br /&gt;
&lt;br /&gt;
As mentioned by wesnoth developers in their suggestions for this topic , the basic idea is to study the current multiplayer lobby , come up with tweaks , get them approved and code them ! At the moment , the tweaks that are evident to me are :&lt;br /&gt;
&lt;br /&gt;
*Support for different versions of wesnoth&lt;br /&gt;
*Support for different game types eg. Epic games ( maybe 100x100 maps ) , Large games and so on &lt;br /&gt;
*Providing proper login authentication similar to IRC&lt;br /&gt;
*Player profiles &lt;br /&gt;
*Database for storing player profiles and ranking players based on games won , their skill level etc&lt;br /&gt;
*Grouping similar games , maybe making a grid layout rather than the scroll up/down (current) one&lt;br /&gt;
*Improved communication system between players i.e. private chat etc&lt;br /&gt;
*Simple room system similar to IRC&lt;br /&gt;
*Filtering mechanism for games interested in i.e. game search system by specifying different criteria such as number of free slots , playing against whom ( i.e. Northeners/Elves.. ) , number of players , map size , map terrain , etc.&lt;br /&gt;
*Having a multiplayer section on the website detailing player stats , game stats etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Page under construction at the moment , rest will be up shortly !&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Dudegaurav</name></author>
		
	</entry>
</feed>