-
Notifications
You must be signed in to change notification settings - Fork 95
GSoC 2014
This page lists project proposals for Google Summer of Code 2014.
These ideas were contributed by our developers. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.
Being accepted as a Google Summer of Code student is quite competitive. Accepted students typically have thoroughly researched the technologies of their proposed project and have been in frequent contact with potential mentors. Simply copying and pasting an idea here will not work. On the other hand, creating a completely new idea without first consulting potential mentors is unlikely to work out.
When writing your proposal or asking for help from the general MegaGlest community don't assume people are familiar with the ideas here.
If there is no specific contact given you can ask questions on our IRC channel on freenode at #megaglest. For more context see the MegaGlest development web page and contact the developers on the projects' forums and mailing lists.
Brief explanation:
Expected results:
Knowledge Prerequisite:
Mentor:
When adding an idea to this section, please try to include the following data:
- a brief explanation
- the expected results
- pre-requisites for working on your project
- if applicable, links to more information or discussions
- mailing list or IRC channel for your demo/library/module
- your name and email address for contact (if you're willing to be a mentor)
How to find ideas?
Obvious sources of projects are
- bug reports: on the forums, on sourceforge (legacy), on GitHub (new - game engine and assets)
- feature requests: on the forums, on sourceforge (legacy)
- discussions on the general forum
- your personal experiences while playing the game.
Currently MegaGlest uses an A* (a-star) implementation for its pathfinding algorithm. During times in game where many units need to be moving and pathfinding, this can cause performance problems (or lagging). We would like someone to investigate plugging in an accurate / fast performing (possibly an AI pathfinding technique called flocking or swarm AI) alternative and possible replacement.
An idea that looks promising:
This teamliquid.net forum post discusses how Blizzard software handles pathfinding in SC2.
Expected results:
A pathfinder in game that performs well under a load of 1000 -> 1500 concurrent units of different sizes on a complex map with various obstacles.
The work is to be delivered as a series of pull requests against the project Git repository.
Knowledge prerequisite:
C++ is the main language of MegaGlest, therefore the code should be in C++. The more you know about C++, OpenGL, and Pathfinding techniques the better.
This idea encompasses so much different stuff the student is not expected to know everything before he starts coding (but will certainly get to know a lot in the process!).
The work is to be delivered as a series of pull requests against the project Git repository.
Skill level: medium to advanced
Mentor:
Mark Vejvoda (SoftCoder) as general mentor and someone to ask for directions.
Currently MegaGlest uses SDL 1.2. The current use (especially for multi-language keybaord input) among other things is messy. We'd like to take advantage of the VAST IMPROVEMENTS in SDL 2.0 (see here: https://icculus.org/SteamDevDays/SteamDevDays2014-SDL2.pdf)
Likewise there are many other wonderful items in SDL 2 such as cross platform dialog boxes and many other clean interfaces that would allow us to clean up a lot of our input handling as well as some resource management offered by this great update.
Expected results:
A clean implementation of input device handling using SDL2.0 using a unified way of processing input and handling resource and libraries in a unified manner.
Knowledge prerequisite:
C/C++ is the main language of MegaGlest, therefore the code should be in C++. The more you know about C++, OpenGL, SDL, and internationalization the better.
This upgrade would aim to streamline code that SDL2.0 handles better than our custom implementations, offering a more stable cross platform experience.
Skill level: medium to advanced
Mentor:
Mark Vejvoda (SoftCoder) as general mentor and someone to ask for directions.
The MegaGlest network game architecture consists of multiple game clients, optionally a headless server and a masterserver which retrieves, stores and returns information on past and present game servers, games played and attending players, as well as about available game mods. Currently, clients and headless server use simple HTTP GET queries to make requests to the masterserver to both send and retrieve information. The master server is currently written in simple procedural PHP 5.2 code.
As part of this project, the communication protocol between game clients and headless servers on the one hand, and the masterserver on the other end, is to be redesigned to become a HTTP REST API. Additionally, a new masterserver implementation based on this API shall be developed.
Expected results:
- HTTP REST API design documentation (on the project wiki), similar to http://developer.github.com/v3/
- Masterserver implementation in (object oriented) Python, Ruby, or PHP
- The work is to be delivered as a series of pull requests against the project Git repository
- Prior experience (must be demonstrated) in designing or implementing a RESTful API
- Alternatively experience in designing or implementing any structured communication protocol and >= 2 years experience in using a common RESTful API
Mentor:
Tom Reynolds (tomreyn) as general mentor and someone to ask for directions.
Unless noted otherwise, all MegaGlest documentation is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.