SummerOfCodeIdeas: Difference between revisions

From The Battle for Wesnoth Wiki
Ryochan7 (talk | contribs)
No edit summary
 
(184 intermediate revisions by 32 users not shown)
Line 1: Line 1:
This is a compilation of ideas from ML. Needs to be refined (more detailed description, deliverables, workload estimation?):
{{SoC2014}}
== I want to be one of your Google Summer of Code students, what should I do? ==


== I want to be one of your Google Summer of Code students, what should I do... ==
Welcome! Here is a quick list of things to do:


Here is a quick list of things to do to get you started
* '''MOST IMPORTANT:''' Submit your application to [https://www.google-melange.com Google] before '''March 21st'''.
* Create an account on gna.org
* '''MOST IMPORTANT:''' Join our IRC channel, '''#wesnoth-dev''' on irc.freenode.net ([http://webchat.freenode.net/ webchat]), and talk about your project and your application. We will not give formal interviews, but we will clearly favor people we have learned to know during the selection process. IRC is the main, mandatory communication medium for the Battle for Wesnoth Project; for the same reason, it's also a good idea to regularly read the [http://www.wesnoth.org/irclogs/2014/ IRC logs].
* Create an account on the wesnoth forum, and tell an admin on the IRC channel to mark is as a GSoC Student account (Admins are boucman, Ivanovic, mordante, Shadow_Master, Sirp and Turuk)
* '''VERY IMPORTANT:''' Create a wiki page about your idea, using our '''[[SoC2014 Template of Student page|student proposal page template]]''' as base.
* 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 learned to know during the selection process (basically communication via IRC is mandatory for our project! it is the main way of "every day communication" for Wesnoth. For the same reason, it's also a good idea to regularly read the [http://wesnoth.debian.net/?C=M;O=A IRC logs].).
** To create a new page, enter the desired URL for the page in your browser's address bar, e.g. <code><nowiki>http://wiki.wesnoth.org/New_Page</nowiki></code>. (See also http://www.mediawiki.org/wiki/Help:Starting_a_new_page)
 
** Go into editing mode on the template page http://wiki.wesnoth.org/index.php?title=SoC2014_Template_of_Student_page&action=edit and copy the contents to your new page. '''DO NOT ACTUALLY EDIT ANYTHING IN THE TEMPLATE!'''
* Start a wiki page about your idea, add a link on the bottom of this page and add this information on it:
** Fill the questionnaire.
** List your account names (gna, forum, irc nick) so that we can recognize you
** Describe and explain your idea in as much detail as possible. Look at other student pages, and provide a timeline, milestones, and studies you've done.
** 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]]
* If you haven't done so yet, create an account on [https://github.com/ GitHub]. ('''Required''' for pull requests and for granting you commit access to the main repository later on.)
** Detail your idea as much as possible, look at other students pages, and please give milestones and studies you've done
* If you haven't done so yet, create an account on [https://gna.org/ Gna.org], where our [http://bugs.wesnoth.org/ bugs tracker] and [https://mail.gna.org/listinfo/wesnoth-dev developers mailing list] are hosted. ('''Recommended''' for submitting bug reports with a single identity, '''required''' for managing bug reports if you are granted commit access.)
** Add a link to the page at the bottom of this page
* If you haven't done so yet, create an account in the [http://forums.wesnoth.org/ Wesnoth.org forums], and tell a leader of the [http://forums.wesnoth.org/memberlist.php?mode=group&g=6644 Summer of Code group] or a forum administrator on the IRC channel to give it SoC group membership.
 
** Forum administrators: Ivanovic, Noy, shadowm, Soliton, Turuk
* 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.
** SoC group leaders: AI, Crab, mordante/SkeletonCrew, thunderstruck, Trademark
 
* Though not mandatory, it is '''highly advisable''' to take a look at the [[EasyCoding]] and [[NotSoEasyCoding]] pages and implement one of the proposed ideas ideas (or any idea of similar scope) so we can have an idea of how you work. Be sure to use your GitHub account when submitting pull requests so we know who it is coming from. You can also implement features from our [http://bugs.wesnoth.org/ bugs tracker].
* For working on Wesnoth you have to be able to compile trunk. To do so you should have a look at the [[WesnothSVN|page about svn]] and afterwards [[CompilingWesnoth|compile Wesnoth svn]].
** This should give you a good idea what the Wesnoth source code is like and help you get used to our coding style as well.
 
** When you implement something, also list it on your own page with a reference to the pull request.  
* 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 page at google] to submit your application. You have to submit it before '''Date to be supplied later''' or you have no chance to get in!
** You can also start working on your project and submit patches/prototypes related to it.
 
* For working on Wesnoth you '''must''' be able to compile Git master. See our [[WesnothRepository|repository information page]] and the guide on [https://github.com/wesnoth/wesnoth/blob/master/INSTALL.md Compiling Wesnoth].
== List of Ideas for the Project (Suggestions from the wesnoth developers) ==
 
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.
 
=== Optimize implementation of WML for memory usage ===
 
Based on this idea: [http://dave.wesnoth.org/?p=9] optimize WML to minimize its memory usage. High memory usage has been a problem for Wesnoth, and this project will aim to reduce it.
 
=== Implement campaign statistics reports on stats.wesnoth.org ===
 
Wesnoth has an infrastructure which records details of campaigns that players play into a centralized MySQL database. However, we only have rudimentary reports based on this MySQL database available at this time, at [http://stats.wesnoth.org].
 
This project would involve writing a stats reporting web site which would take the data from the MySQL database and produce reports in chart and table form. Campaign designers would be able to use these reports to gather feedback on their campaigns and get ideas for improvements.
 
A student could largely make their choice of infrastructure for creating the Website -- whether they prefer Python, Perl, Ruby, PHP, etc. This is a great opportunity for someone who doesn't want to dive into hardcore C++ to make a valuable contribution to Wesnoth.
 
[[SoC Ideas Stats Server]] - Full Version of the idea, with detailed information
 
=== Extending the Multiplayer server ===
 
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.
 
[[SoC Ideas Multiplayer server]] - Full version of the idea, with detailed information
 
=== Addon server ===
Wesnoth has an addon server which offers users to upload user
made content (UMC). This allows all other users of Wesnoth
to easily download and install this content. The server was
originally written for user-made campaigns but contains a lot
more types of addons nowadays. Both the server side and the  
client side need to be improved.
 
[[SoC Ideas Addon Server]] - Full version of the idea, with detailed information
 
=== WML validation schemes ===
Wesnoth uses WML as basic data structure. Over the years
this language has evolved and got more complex. At the
moment the WML is validated at runtime and in case of a
problem the engine stops. With schemes these problems can
be validated when loading the WML, making it easier to find
problems before running into them.
 
[[SoC Ideas Schemes]] - Full version of the idea, with detailed information
 
=== Write a primitive library for Formula AI ===
 
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]]
 
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]].
 
Writing a whole AI is so complicated that we believe it can't be done in a single Summer of code. All proposals should keep that in mind and try to identify an interesting subset that would be workable in the limited time of a summer of code
 
 
[[SoC Ideas FormulaAI]] - Full version of the idea, with detailed information
 
=== Savegame reorganization ===
The savegame formats of Wesnoth for single player campaigns
and multiplayer differ from each other. And they are processed
differently as well. Now there is an additional request coming
up: Multiplayer campaigns. The task will be to unify the savegames
for all types of scenarios in order to provide a maintainable code
again.
 
[[SoC Ideas Savegame]] - Full version of the idea, with detailed information
 
 
=== Other possible ideas to be fleshed out ===
A MapGenerator rewrite - better scalable for outdoor maps, plus the possibility to define areas (similar to the caverns in the cave generator) etc.
 
=== Make your own ideas ===
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.


== Information about our Project ==
== Information about our Project ==
The information we provided google with about our project can be looked up at the site [[SoC Information for Google]].
The information we provided Google with about our project can be looked up at the site [[SoC Information for Google]].


Also see the [[DeveloperResources]] link (from the [[Project]] page).
Also see the [[DeveloperResources|Developer Resources]] listing (linked from the [[Project]] page).


== People to bug on IRC ==
== People to bug on IRC ==
We have prepared a list of people with their "area of competence". 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:
We have prepared a list of people with their areas of competence. This should give you an idea of which areas those people can help you with. Of course you should always ask in the IRC channel first, but these are the most likely people to be able to help you.


[[SoC People to bug on IRC]]
[[SoC People to bug on IRC]]


== GSoC Student pages ==
== List of Ideas for the Project (Suggestions from Wesnoth developers) ==
 
Please add a link to your wiki page below
 
[[SummerOfCodeProposal_Velory| Velory - SoC Proposal]]


[[SummerOfCodeProposal_AI_Improvement_Crab| Crab - SoC Proposal - AI Improvement]]
{| border=1
| '''Note:''' This list of ideas is automatically generated from the ''Description'' section of pages in the ''Summer of Code 2014 Idea'' category. '''DO NOT TRY TO EDIT THIS LIST BY HAND - IT WON'T WORK.''' Instead, create a new page using the '''[[SoC_Ideas2014_Template|GSoC idea page template]]'''.
|-
| '''Note:''' To add a student page, create a new page copying the contents of the '''[[SoC2014 Template of Student page|student proposal page template]]'''.
|}


[[SummerOfCodeProposal_Sparksteel | Sparksteel - Improving the AI engine design]]
{{#dpl:
|noresultsheader=''No ideas yet. Why not create one?''<br/>
|category=Summer of Code 2014 Idea
|include=#Description
|mode=userformat
|format=,,<br/>,
|nottitlematch=SoC_Ideas2014_Template
}}


[[SummerOfCodeProposal_Euschn | Euschn - Savegame reorganization]]
==Student proposals not submitted to Google==
{{#dpl:
|resultsheader=''There are %PAGES% student proposals which were not submitted to google''<br/>
|oneresultheader=''There is 1 student proposal which was not submitted to google''<br/>
|suppresserrors=true
|noresultsheader=''All the proposals were submitted to google''<br/>
|category=Summer of Code 2014 Student Page
|nottitlematch=SoC2014 Template of Student page
|include=#IRC, #SoC Application
|includenotmatch= ,/google/s
|mode=userformat
|format=,,[[%PAGE%|%TITLE%]]<br/>,
}}


[[SummerOfCodeProposal_rubend | rubend - Extending the Multiplayer server]]
==Student proposals submitted both to the wiki and Google==
(Marked by hand. If your proposal is not here, don't panic; check Google's site instead, and ping us if necessary.)


[[SummerOfCodeProposal_Ryochan7| Ryochan7 - Addon server]]
{{#dpl:
|resultsheader=''There are %PAGES% student proposals which were submitted both to the wiki and Google''<br/>
|oneresultheader=''There is 1 student proposal which was submitted both to the wiki and Google''<br/>
|suppresserrors=true
|noresultsheader=''All the proposals were submitted to Google''<br/>
|category=Summer of Code 2014 Student Page
|nottitlematch=SoC2014 Template of Student page
|include=#IRC, #SoC Application
|includematch= ,/Submitted to google/s
|mode=userformat
|format=,,[[%PAGE%|%TITLE%]]<br/>,
}}


[[Category:Summer of Code|*]]
==Results from Google acceptance==
The list of proposals accepted by Google will be available on April 21st.

Latest revision as of 20:09, 15 May 2020

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


I want to be one of your Google Summer of Code students, what should I do?

Welcome! Here is a quick list of things to do:

  • MOST IMPORTANT: Submit your application to Google before March 21st.
  • MOST IMPORTANT: Join our IRC channel, #wesnoth-dev on irc.freenode.net (webchat), and talk about your project and your application. We will not give formal interviews, but we will clearly favor people we have learned to know during the selection process. IRC is the main, mandatory communication medium for the Battle for Wesnoth Project; for the same reason, it's also a good idea to regularly read the IRC logs.
  • VERY IMPORTANT: Create a wiki page about your idea, using our student proposal page template as base.
  • If you haven't done so yet, create an account on GitHub. (Required for pull requests and for granting you commit access to the main repository later on.)
  • If you haven't done so yet, create an account on Gna.org, where our bugs tracker and developers mailing list are hosted. (Recommended for submitting bug reports with a single identity, required for managing bug reports if you are granted commit access.)
  • If you haven't done so yet, create an account in the Wesnoth.org forums, and tell a leader of the Summer of Code group or a forum administrator on the IRC channel to give it SoC group membership.
    • Forum administrators: Ivanovic, Noy, shadowm, Soliton, Turuk
    • SoC group leaders: AI, Crab, mordante/SkeletonCrew, thunderstruck, Trademark
  • Though not mandatory, it is highly advisable to take a look at the EasyCoding and NotSoEasyCoding pages and implement one of the proposed ideas ideas (or any idea of similar scope) so we can have an idea of how you work. Be sure to use your GitHub account when submitting pull requests so we know who it is coming from. You can also implement features from our bugs tracker.
    • This should give you a good idea what the Wesnoth source code is like and help you get used to our coding style as well.
    • When you implement something, also list it on your own page with a reference to the pull request.
    • You can also start working on your project and submit patches/prototypes related to it.
  • For working on Wesnoth you must be able to compile Git master. See our repository information page and the guide on Compiling Wesnoth.

Information about our Project

The information we provided Google with about our project can be looked up at the site SoC Information for Google.

Also see the Developer Resources listing (linked from the Project page).

People to bug on IRC

We have prepared a list of people with their areas of competence. This should give you an idea of which areas those people can help you with. Of course you should always ask in the IRC channel first, but these are the most likely people to be able to help you.

SoC People to bug on IRC

List of Ideas for the Project (Suggestions from Wesnoth developers)

Note: This list of ideas is automatically generated from the Description section of pages in the Summer of Code 2014 Idea category. DO NOT TRY TO EDIT THIS LIST BY HAND - IT WON'T WORK. Instead, create a new page using the GSoC idea page template.
Note: To add a student page, create a new page copying the contents of the student proposal page template.


AI: Improve AI by implementing global attack/retreat decision

Page for the idea: SoC_Ideas_AI_Global_strategy

The Wesnoth AI works by making local decisions about moves and attacks. Teach it to determine if it's worth to fight offensively or defensively in a given situation.


There are no submitted student proposals for this idea

Improve the automated collection and display of multiplayer game data

Page for the idea: SoC_Ideas_Multiplayer_Data_Analysis

Multiplayer games are currently archived. This includes lots of interesting and potentially useful data, including recruits, deaths, number of turns and other things. The only way to access this information currently is parsing the WML one save file at a time. Additionally, which side(s) won the game is only recorded in some cases. We would like to record which side(s) won or lost (for as many games as possible) and then display useful information about these games for balancing and feedback purposes.

There are no submitted student proposals for this idea

SDL2

Page for the idea: SoC_Ideas_SDL2

The Wesnoth project uses the SDL library. Last year, a new major version (2.0) of SDL was released. This version of the library has better support for mobile devices like the Android and the iPhone. This project involves helping porting Wesnoth from SDL 1.2 to 2.0.

There are no submitted student proposals for this idea

SpriteSheet

Page for the idea: SoC_Ideas_SpriteSheets2014

Wesnoth uses thousands of images, each of them stored in separate files. It would be more efficient to store multiple images in a single file. In order to make that possible, the Wesnoth engine needs to be adapted to allow this change.

There are no submitted student proposals for this idea

UMCD

Page of the idea: SoC_Ideas_UMCD_2014 Improving and completing the new add-ons server, UMCD (User-made Content Daemon).

There are no submitted student proposals for this idea

Game Engine: Unify SP and MP

Page for the idea: SoC_Ideas_Unify_SP_and_MP_2014

Wesnoth has lots of user made content, but some of it works only for either singleplayer or multiplayer. To solve this, some of the engine's singleplayer and multiplayer code paths need to be unified and extended.

There are no submitted student proposals for this idea

Other: Your own ideas

Page for the idea: SoC_Ideas_Your_Own_Ideas_2014

Suggested skills: C++ (depends on the project).

There are no student proposals for this idea

Student proposals not submitted to Google

There are 25 student proposals which were not submitted to google
adityapande Aditya Pande Global AI
dragonofair0 Dragonofair0/GSoC2014 project idea
Dugi Dugi's Campaign Wizard
goblinThing GoblinThing Wizard
sachith500 GSoC sachith500 Proposal
TODO: Put only your IRC nickname in there. In case of alternate nicks, separate with commas.

Example contents for this section (without the quotes): "user" "user1, user2" GSoCMindblank
ALourenco GSoCSpriteSheetsALourenco
Vahen Improve AI
demiurgos Improve Random Maps
jchb Jchb AI Global Strat
juanmi91 Juan Miguel Ruiz Ladron/GSoC2014 Proposal
neonosos Neonosos
spoffy SoC 2014 Spoffy Finishing and Enhancing the UMCD
arveanor SoC2014 arveanor ai
Daniwa SOC2014 Daniwa Ai
Kevin_Xi SoC2014 kevin AI
lipkab SoC2014 lipkab SDL2
RiftWalker SoC2014 RiftWalker Unify SP MP
zerophase SoC2014 SDL2 DrawingTransition
stevedes SoC2014 SDL2 stevedes
vorobeez SoC2014 vorobeez AI
Youngoli SoC2014 youngoli UnifySPandMP
ZubinKapadia SoC2014 Zubin AI
Aishiko, Aishiko_laptop SpriteSheetApplicationSAB
ykanarev YKanarev AI impl

Student proposals submitted both to the wiki and Google

(Marked by hand. If your proposal is not here, don't panic; check Google's site instead, and ping us if necessary.)

All the proposals were submitted to Google
Aditya Pande Global AI
Dragonofair0/GSoC2014 project idea
Dugi's Campaign Wizard
GoblinThing Wizard
GSoC sachith500 Proposal
GSoCMindblank
GSoCSpriteSheetsALourenco
Improve AI
Improve Random Maps
Jchb AI Global Strat
Juan Miguel Ruiz Ladron/GSoC2014 Proposal
Neonosos
SoC 2014 Spoffy Finishing and Enhancing the UMCD
SoC2014 arveanor ai
SOC2014 Daniwa Ai
SoC2014 kevin AI
SoC2014 lipkab SDL2
SoC2014 RiftWalker Unify SP MP
SoC2014 SDL2 DrawingTransition
SoC2014 SDL2 stevedes
SoC2014 vorobeez AI
SoC2014 youngoli UnifySPandMP
SoC2014 Zubin AI
SpriteSheetApplicationSAB
YKanarev AI impl

Results from Google acceptance

The list of proposals accepted by Google will be available on April 21st.

This page was last edited on 15 May 2020, at 20:09.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.