GSoC 2011: Difference between revisions

From PSwiki
Jump to navigation Jump to search
 
(30 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Welcome To Google Summer of Code and Atomic Blue! ==
== Welcome To Google Summer of Code and Atomic Blue! ==


This is the central page for Google SoC. Join the fun!
This is the central page for [http://www.google-melange.com/gsoc/homepage/google/gsoc2011 Google GSoC]. Join the fun!


== Registering and signing in ==
== Registering and signing in ==


The program just started, and it's important for you to understand what's needed and how to proceed. These are the main next milestones:  
The registration for the students is CLOSED ! The final list of students for this year has been COMPLETED! If you are unhappy about that, you can click [http://www.nooooooooooooooo.com here].


'''March 18-27''' : Would-be student participants discuss application ideas with mentoring organizations. For this part of the program, we ask you to do the following:
== What to do if you have not been selected ==


* Review our ideas list below.
If you want to have more details on why you were not selected please connect to [http://webchat.freenode.net/?channels=planeshift-prospects IRC] and speak with us.
* Create an account on this web app (nexus) so we can more easily track your profile.
** Please use "gsoc_" as prefix of your nick, example "gsoc_talad"
** Select "Programming" as department
** In the section "Previous Experiences" paste the questions present in the section "Background" in our gsoc app, with your answers.
** In the section "RPG Experience" you can list what's your knoweledge of RPG games, but it's not required for GSoC.
** In the section "Portfolio" paste the questions present in the section "Google Summer Of Code" in our gsoc app, with your answers.
* Connect to our IRC channel at irc.freenode.net #planeshift-prospects
* Discuss and improve the current ideas together with us.
* Participate in game to the event name "GSoC students welcome", you can find the date and time in our event calendar. For this event you need to download the game, create an account and create a character (it's free!!). Your presence there is not required to be part of gsoc, but can be fun and a different way to have a chat, also you will see better our current software.
* [http://www.planeshift.it/sources.html Download our sources] and start to familiarize with the code. Build our server and client if you want to go one step further!


The main output of this phase is for you to get a good understanding of our organization, our goals and the ideas. But it's also the time for you to contribute and to make a proposal on how you would like to implement a specific idea.
Second you can still work with us outside of GSoC! We are always seeking new talented contributors. In case you want to contribute to PlaneShift outside the GSoC contact us in [http://webchat.freenode.net/?channels=planeshift-prospects IRC].


'''March 28-April 8''': Students can apply on the Google web site for being a student. This part is very important and you should absolutely not miss the deadline. The registration is done on the Google web site, not on our website. We will post more info on this as soon as the GSoC page opens officially for this task. This is when you actually select one or more projects you are interested in, and you add your name to participate to the selection process.
Meanwhile: [http://www.planeshift.it/sources.html Download our sources] and start to familiarize with the code. [https://planeshift.svn.sf.net/svnroot/planeshift/trunk/docs/compiling.html Build our server and client] and have it running on your machine.
 
== Next steps ==
 
'''April 9-April 18''': We will run a more detailed set of interviews during this period based on our needs to understand better your capabilities and your profile. This will allow us to know better the students and to make the final selection, which will be announced on the 25th.


'''April 25''': Accepted student proposals announced on the Google Summer of Code 2011 site.
'''April 25''': Accepted student proposals announced on the Google Summer of Code 2011 site.
Line 31: Line 25:
For more details on the overall timeline please read [http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/timeline this page].
For more details on the overall timeline please read [http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/timeline this page].


== Dynamic Economy ==
== Main Ideas ==
This section collects ideas we think are large enough to be developed over a period of 3 months. Please note that we are improving the ideas right now, so check back often for updates.
 
If you think you have a good idea to add to the list, please let us know! We are eager to add one project if it's worth it.
 
=== Dynamic Economy ===


* Implementation of an Economy Manager to allow a more [[Dynamic Economy]] (medium)
* Implementation of an Economy Manager to allow a more [[Dynamic Economy]] (medium)


== Tribes ==
=== Tribes ===


* Artificial intelligence for [[Tribes expansion]] (composed of various tasks from medium to high)  
* Artificial intelligence for [[Tribes expansion]] (composed of various tasks from medium to high)  


== Statistics ==
=== Statistics ===


* [[Analysis package]] of data mining data (Medium) and better server reporting (Easy)
* [[Analysis package]] of data mining data (Medium) and better server reporting (Easy)


== GUI ==
=== GUI ===


* [[Improved UI]] Includes improvements to the Help system, fixes to the interface, conversion to plugin. Enhancement to the Container System, and Crafting of books.
* [[Improved UI 2011]] Includes improvements to the Help system, fixes to the interface, conversion to plugin. Enhancement to the Container System, and Crafting of books.


== Sound System ==
=== Sound System ===


* [[Sound System]] . Improve the sound manager, make it more flexible and allow association of sounds to in game events, scripts, monsters actions.
* [[Sound System]] . Improve the sound manager, make it more flexible and allow association of sounds to in game events, scripts, monsters actions.


=== Hardcoding removal ===
* [[Hardcoding removal]]: Involves moving some of the hardcoded skills/stats/rules/mechanics from the code to the database, making the engine more flexible and more maintainable. (easy to hard)
=== Combat enhancements ===
* [[Combat enhancements]]: The objective of this idea is to make combat more interactive and smoother, to add special abilities and make it more fun to play.


== Other smaller / fragmented tasks ==
== Other smaller / fragmented tasks ==
This section contains ideas which have not yet been developed into main ideas. We are not sure if one of these can really cover the 3 months period of GSoC and so those are pending review, discussion and expansion to be moved in the previous section.


=== Database ===
=== Database ===
Line 59: Line 68:


=== Networking ===
=== Networking ===
* TCP layer: add a TCP layer so that clients have the option of connecting with TCP instead. TCP can be preferable for people connecting via wireless or high-bandwidth connections, which is increasingly the case. The relatively high latency to PS servers also means the latency benefits of UDP are not as useful. (hard)


* IPV4 TO IPV6: changing the code so it doesn't rely specifically on IPV4 or IPV6, allow to define various listen interfaces either IPV4 and IPV6. Remove network logic which can be left to system libraries. Conversion to plugin.(easy to medium depending on the parts which are picked up)
* IPV4 TO IPV6: changing the code so it doesn't rely specifically on IPV4 or IPV6, allow to define various listen interfaces either IPV4 and IPV6. Remove network logic which can be left to system libraries. Conversion to plugin.(easy to medium depending on the parts which are picked up)
Line 65: Line 76:


* PSEFFECT: conversion to plugin and performance optimizations. Maybe adding support for 2d objects.(medium)
* PSEFFECT: conversion to plugin and performance optimizations. Maybe adding support for 2d objects.(medium)
=== Headless Client ===
* Integration testing: Modify the client to have a headless option to allow for easy integration testing and for combat simulation. This can make it much easier to test balance changes. (medium)


=== Server reliability ===
=== Server reliability ===
Line 70: Line 85:
* Unit Testing: Implement a basic unit testing framework for common server commands and actions. (Medium)
* Unit Testing: Implement a basic unit testing framework for common server commands and actions. (Medium)


=== General ===


* Hardcoding removal: Due to the fact the PlaneShift engine has been in development for years, unfortunately, it brings with itself some design faults which at the time allowed to speed up development but now are an hindrance and will require editing of the project source for deployment. The scope of removing hardcoding is moving all the resources previously in code (like skills, money specifications, interfaces, database tables design) in order to be data driven (at maximum script driven) and not anymore hard wired in the internals of the engine. This is actually a lot of sub works some bigger and more difficult and some more easy and fast to accomplish.(easy to hard)
=== Weekly progress reports ===
 
Here we post the [[GSoC weekly reports]] for every student.

Latest revision as of 11:27, 21 February 2012

Welcome To Google Summer of Code and Atomic Blue!

This is the central page for Google GSoC. Join the fun!

Registering and signing in

The registration for the students is CLOSED ! The final list of students for this year has been COMPLETED! If you are unhappy about that, you can click here.

What to do if you have not been selected

If you want to have more details on why you were not selected please connect to IRC and speak with us.

Second you can still work with us outside of GSoC! We are always seeking new talented contributors. In case you want to contribute to PlaneShift outside the GSoC contact us in IRC.

Meanwhile: Download our sources and start to familiarize with the code. Build our server and client and have it running on your machine.

Next steps

April 9-April 18: We will run a more detailed set of interviews during this period based on our needs to understand better your capabilities and your profile. This will allow us to know better the students and to make the final selection, which will be announced on the 25th.

April 25: Accepted student proposals announced on the Google Summer of Code 2011 site.

April 26 - August 22: Finally you can start working on the project! August 22 is the last day of work on the code.

For more details on the overall timeline please read this page.

Main Ideas

This section collects ideas we think are large enough to be developed over a period of 3 months. Please note that we are improving the ideas right now, so check back often for updates.

If you think you have a good idea to add to the list, please let us know! We are eager to add one project if it's worth it.

Dynamic Economy

  • Implementation of an Economy Manager to allow a more Dynamic Economy (medium)

Tribes

  • Artificial intelligence for Tribes expansion (composed of various tasks from medium to high)

Statistics

  • Analysis package of data mining data (Medium) and better server reporting (Easy)

GUI

  • Improved UI 2011 Includes improvements to the Help system, fixes to the interface, conversion to plugin. Enhancement to the Container System, and Crafting of books.

Sound System

  • Sound System . Improve the sound manager, make it more flexible and allow association of sounds to in game events, scripts, monsters actions.

Hardcoding removal

  • Hardcoding removal: Involves moving some of the hardcoded skills/stats/rules/mechanics from the code to the database, making the engine more flexible and more maintainable. (easy to hard)

Combat enhancements

  • Combat enhancements: The objective of this idea is to make combat more interactive and smoother, to add special abilities and make it more fun to play.

Other smaller / fragmented tasks

This section contains ideas which have not yet been developed into main ideas. We are not sure if one of these can really cover the 3 months period of GSoC and so those are pending review, discussion and expansion to be moved in the previous section.


Database

  • Database reconstruction: Optimise database with innodb triggers, rework of tables, new index, scalability and subdivision of data between different servers...(hard)

Networking

  • TCP layer: add a TCP layer so that clients have the option of connecting with TCP instead. TCP can be preferable for people connecting via wireless or high-bandwidth connections, which is increasingly the case. The relatively high latency to PS servers also means the latency benefits of UDP are not as useful. (hard)
  • IPV4 TO IPV6: changing the code so it doesn't rely specifically on IPV4 or IPV6, allow to define various listen interfaces either IPV4 and IPV6. Remove network logic which can be left to system libraries. Conversion to plugin.(easy to medium depending on the parts which are picked up)

Effect Library

  • PSEFFECT: conversion to plugin and performance optimizations. Maybe adding support for 2d objects.(medium)

Headless Client

  • Integration testing: Modify the client to have a headless option to allow for easy integration testing and for combat simulation. This can make it much easier to test balance changes. (medium)

Server reliability

  • Unit Testing: Implement a basic unit testing framework for common server commands and actions. (Medium)


Weekly progress reports

Here we post the GSoC weekly reports for every student.