Difference between revisions of "SummerOfCodeIdeas"

From The Battle for Wesnoth Wiki
m (Result from Google acceptance)
m (I want to be one of your Google Summer of Code students, what should I do...)
Line 3: Line 3:
 
= 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 at this time:
 
Here is a quick list of things to do at this time:
  

Revision as of 20:01, 26 March 2013

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



Contents

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 at this time:

  • MOST IMPORTANT Submit your application to Google till May 3rd.
  • MOST IMPORTANT Join the irc channel (#wesnoth-dev on irc.freenode.net) and talk about your project and your appilication. 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 IRC logs.).
  • VERY IMPORTANT Create the wiki page about your idea (Make a copy of the student proposal page template: SoC2013 Template of Student page):
    • Fill the questionnaire.
    • Detail your idea as much as possible, look at other students pages, and please give timeline, milestones and studies you've done
  • If you haven't done so yet, create an account on gna.org (required for committing later on)
  • If you haven't done so yet, create an account on the wesnoth forum, and tell an admin of the forum or leader of the group on the IRC channel to mark it as a GSoC Student account (admins/group leaders are: Boucman, Crab, fendrin/Fabi, Ivanovic, Mordante/SkeletonCrew, Noy, shadowm/shadowmaster, Sirp/Dave, Soliton)
  • 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. This should give you a good idea what the Wesnoth sourcecode is like and will provide a good start to getting used to our coding style, too. You can also start working on your project and submit patches/prototypes related to it

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 DeveloperResources link (from the Project page).

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:

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 Summer of Code 2013 Idea category. DO NOT TRY TO EDIT THIS LIST BY HAND - IT WON'T WORK. INSTEAD, CREATE A NEW PAGE WITH THE 'Soc Ideas2013 Template' template.
NOTE: to add a student page, create a new page based on copy the student proposal page template: SoC2013 Template of Student page):


Addon Server: Create a new and shiny one

Page for the idea: SoC_Ideas_Addon_Server_2013

Wesnoth has an addon server that originally only hosted extra campaigns, but now also hosts Multiplayer Maps, Factions, Eras and more. Also the amount of hosted addon has increased over the years. The server itself is almost unchanged and can use an upgrade. Performance-wise things are not bad, but it would be nice to store additional meta-information on the server and have a better integration for translations.


There are 2 submitted student proposals for this idea The revamped addon server/client will feature the following (mostly in addition to the existing capabilities):

  • Include integration with the various tools, such interacting with WesCamp
  • Better versioning handling: new versions will be recorded as separate entries in the database to track updates and file differences or git repository may be used; automatic update detection will be supported on the client side
  • Database: a MySQL database will be used to store information about add-ons
  • Forum accounts: give add-on authors the ability to publish using forum account(s) instead of the passphrase
  • Documentation: improve documentation of server configuration and guide on how to setup an addon server


See Perennate for more information.

This proposal aims to rewrite and improve the addon server with Boost.Asio. The current server becomes old and has few drawbacks:

  • The code is monolithic, resumed in a single file which made it hard to extend and maintain.
  • The responses are in english only, support for gettext should be added.
  • The translation of the addons are not synchronized with Wescamp.
  • Native handling of the different types of add-on (campaigns, factions, eras, …).

The hope is to design a new and robust server with the help of Boost.Asio, make it extensible with every layer of code clearly defined. Moreover the wire has been completely reviewed to integrate translatable features. It'll add meta-information on the different types of add-on.
See Trademark/GSoC 2013/Addon Server: Create a new and shiny one for more information.


AI: Implement a 'total defense' strategy

Page for the idea: SoC Ideas AI Defense Strategies 2013

AI in wesnoth's is good at killing things but is bad at defending. Therefore we are forced to make it attack at 2:1 odds. This is the single biggest limiter of the AI skill at the moment. To solve that, we need to teach the AI to defend.

Suggested skills: C++, knowledge of wesnoth's gameplay (can be learned during the project)

There are 7 submitted student proposals for this idea

Arkist - AI: Implement a total defense strategy

When AI calculates how to attack don't consider what could happen in next turn. I want to change this, caulculating different possibilities without increasing the computation complexity (or increasing it slightly, not increasing the 'loading' time). Maybe I could use 'branch and bound' algorithm, trying different heuristics.


See Arkist for more information.

Dragos Ristache: Implement a total defense strategy

I intend to implement a total defense strategy for the Wesnoth AI. Currently the Wesnoth AI is really good at doing attacks but it's not that good at defending. The AI currently tries to maximize the formula (enemy losses - aggression*own_losses), which can't generate a defending behavior making it easy to defeat in certain situation.
See Dragos/GsoC 2013/AI: Implement a 'total defense' strategy for more information.

elf11 - AI Project

TODO: Write a small (1-4 sentences) description of your proposal here. I am thinking about working on one of the AI projects, the total defense project. I still have to talk with a mentor and write a patch for the project, so after doing that and getting better understanding of the existing code I will update this section.

TODO: Add more first-level sections to detail your proposal
See Elf11 for more information.

Jeffrey Eldridge - AI: Implement a 'total defense' strategy

I believe that the defense of the AI can be improved by aiming to move units into the best position, instead of simply maximizing the number of losses the enemy takes. Assuming that the AI wants to actually hold and defend a position against the enemy (as opposed to just running away and minimizing its own losses), the best position would be the one that minimizes enemy presence in the defended area while also minimizing the amount of damage that can be done by the enemy to the AI's own units.
See Jleldridge for more information.

PL_kolek - AI 'total defense strategy'

My goal is to make AI play more cautiously. Currently it only tries to kill as many units as possible without taking into account possible enemy moves. I'm going to build into the current algorithm some mechanism to improve AI behavious, that connected together would boost it's thinking great boost.
See PL kolek for more information.


See YoungWolf for more information.

Zazweda - Total defense Strategy

The defense project would include taking more information and probabilities into account (next turn for example).
See Zazweda for more information.


AI: Improve configuration and behavior in mainline campaigns

Page for the idea: SoC Ideas AI in Mainline Campaigns Refactoring_2013

We need to ensure our mainline campaigns are using the new capabilities of the AI engine, and improve AI in them by using behavior scripts implemented in lua and C++ code.

Suggested skills: testing and QA skills, C++, lua (can be learned during the project).

There are 2 submitted student proposals for this idea

darius42 - AI: Improve configuration and behavior in mainline campaigns

This is an idea suggested by Wesnoth developers. Main goal of the idea is to configure campaign AI to utilize new capabilities of the engine. For AI to utilize these capabilities, it is necessary to configure the AI with Lua snippets with which we can bind specific implementations of behaviour to the AI. This will be done manually for all campaings since AI requires scenario specific behaviour.


See SoC2013 Darius42 for more information.

threkk - Improve configuration and behavior in mainline campaigns

I have been reading about the project, and at first, I would update the current AI with the new capabilities of the engine. After that, I would increase the engine with new behaviours if needed, but after seeing the effect of the previous changes.


See Threkk for more information.


AI: Refactor recruitment algorithm

Page for the idea: SoC_Ideas_AI_Recruitment_2013

We need to refactor existing wesnoth's recruitment algorithm to:

  1. support recruiting with multiple leaders.
  2. support per-leader recruit/recall lists.
  3. support easy limiting of recruitable units.
  4. analyze map terrain better
  5. recruit units that are more useful
  6. improve counter-recruiting strategies.
  7. improve recruiting for AI-playable campaigns where AI has to not spend all the gold.

Most likely, a new implementation would be coded from scratch, taking parts of existing C++ code as a guideline.

Suggested skills: mainly C++, a bit of lua (can be learned during the project)

There are 4 submitted student proposals for this idea

Dragos Ristache: Refactor the recruitment algorithm

I propose to work on the "Refactor the recruiting algorithm" project. The new implemented algorithm should be very customizable from LUA (this will be extremely useful to help campaign creation). The new recruiting algorithm should also be capable of doing the listed features in the project description.
See Dragos/GsoC 2013/AI: Refactor recruitment algorithm for more information.

flix: Refactor recruitment algorithm

An AI opponent have to decide in a separate phase which units to recruit. Right now the default recruitment algorithm is very simple and can be improved in many ways. I want to make the AI recruiting better, more fun to play against and more configurable by a scenario editor.
See Flixx/GSoC 2013/AI: AI: Refactor recruitment algorithm for more information.

rsyh93 - AI Recruitment Restructuring

I want to make a recruitment algorithm that is able to integrate with the unit movement AI that puts more emphasis on the usage of the units and their place on the overall strategy (e.g. scouts in early game - transition as more information becomes revealed for counter recruitment) The algorithm will recruit somewhat slowly and cautiously, implementing a generic unit set for the beginning (modifying depending on terrain) then putting more emphasis on the late-game, when the game is more developed and explicit unit purposes become more apparent.
See Rsyh93 for more information.

Shofixti - Smarter and more human recruitment algorithm

As I have come to understand it, the current RCA AI recruitment algorithm suffers from a few flaws and a general lack of complexity. Given the chance, i'd like to completely redo this algorithm to allow the AI to factor in more variables and generally behave more like a human opponent than it currently does.
See Shofixti/GSoC13/Proposal for more information.


Game Engine: Improve Multiplayer Campaign Support

Page for the idea: SoC Ideas Multiplayer Campaign Support 2013

We need to make coding multiplayer campaigns as easy as coding single player campaigns, making it possible to use different difficulty levels, save/restore progress, and switch/remove/add players easily.

Suggested skills: C++ coding (the project some hard C++ coding tasks in a large codebase)

There is 1 student proposal for this idea

Andrius Silinskas (thunderstruck) - Multiplayer campaign improvements

The current multiplayer campaign support from both UMC developers/maintainers and players perspective is far behind comparing to singleplayer support. I propose a project to improve overall quality of multiplayer games by enabling singleplayer campaigns to be used as multiplayer campaigns and fixing most of the well known issues. The old multiplayer campaigns and scenarios should remain supported.
See SoC2013 thunderstruck MP Campaign Support for more information.


Other: Your own ideas

Page for the idea: SoC_Ideas_Your_Own_Ideas_2013

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

There are 7 submitted student proposals for this idea

TODO: add proposal title in this h4 tag


See Gray for more information.

Forrest Keppler - undecided

TODO: Write a small (1-4 sentences) description of your proposal here.

TODO: Add more first-level sections to detail your proposal
See Kelpy for more information.

MaraJade - AI Total Defense Strategy

Attacking: The AI does not always choose the best attacks. It needs to take into account the health of the unit being attacked, the units around it, the health of the attacking unit, and what would be the best method to attack with.

Introduce retreating: The AI does not retreat. There are situations where it needs to be able to, such as when it's castle is under attack, or when it's outnumbered.

Grouping: The AI has a tendency of having its troops to spread out, making them more vulnerable. When there are no good attacks, units should group together to present a better defense.

Prediction: The AI needs to be able to calculate what the player can do, and respond appropriately. This will also help with defense.
See MaraJade for more information.

Nephro - AI project SoC2013

A project to improve the existing AI developer toolset and implement a concurrent block for AI developers to be able to exploit the vast amounts of CPU time wasted during turns of other players.
See Nephro SoC2013 for more information.

PJ - Proposal

AI Recruitment Algorithms

The current recruitment system is too weak for the AI to properly recruit units. AI is prone to not recruiting the best units for terrain and is also weak against counter recruitment. This problems can be fixed through a code overhaul in both the C++ section of recruitment and the Lua sections.
See PJ for more information.

--

TODO: Look for the new one TODO: Add more first-level sections to detail your proposal
See Redeian for more information.

TODO: Copy this page and write "your name - proposal title" in this h4 section

TODO: Write a small (1-4 sentences) description of your proposal here.

TODO: Add more first-level sections to detail your proposal
See Varunv for more information.


Student proposals not submitted to google

There are 24 student proposals which were not submitted to google
Arkist Arkist
dragos Dragos/GsoC 2013/AI: Implement a 'total defense' strategy
dragos Dragos/GsoC 2013/AI: Refactor recruitment algorithm
elf11, elf_11, elf__11 Elf11
flix Flixx/GSoC 2013/AI: AI: Refactor recruitment algorithm
GrayS Gray
jleldridge Jleldridge
kelpy Kelpy
MaraJade MaraJade
Nephro, nephNephro SoC2013
perennate Perennate
pjte PJ
PL_kolek, PL_kolek_, PL_kolek__, PL_kolek___ PL kolek
redeian Redeian
rsyh93 Rsyh93
Shofixti

Questionnaire

Please see the following page for the questionnaire: User:Shofixti/GSoC13/QuestionnaireShofixti/GSoC13/Proposal
darius42 SoC2013 Darius42
thunderstruck SoC2013 thunderstruck MP Campaign Support
threkk Threkk
Trademark Trademark/GSoC 2013/Addon Server: Create a new and shiny one
varunv Varunv
Vinipsmaker/GSoC13
YoungWolf YoungWolf
Zazweda, ValentinD Zazweda

Student proposals submitted both to wiki and google

(marked by hand, so if your proposal is not there, don't panic, check google's site instead and ping us, if necessary) All the proposals were submitted to google
Arkist
Dragos/GsoC 2013/AI: Implement a 'total defense' strategy
Dragos/GsoC 2013/AI: Refactor recruitment algorithm
Elf11
Flixx/GSoC 2013/AI: AI: Refactor recruitment algorithm
Gray
Jleldridge
Kelpy
MaraJade
Nephro SoC2013
Perennate
PJ
PL kolek
Redeian
Rsyh93
Shofixti/GSoC13/Proposal
SoC2013 Darius42
SoC2013 thunderstruck MP Campaign Support
Threkk
Trademark/GSoC 2013/Addon Server: Create a new and shiny one
Varunv
Vinipsmaker/GSoC13
YoungWolf
Zazweda

Result from Google acceptance

List of proposals accepted by Google would be available on May 27th