Google Summer of Code 2013 - Ideas List

Hedgewars @ Google Summer of Code portal: http://hedgewars.org/gsoc.html

Here you can find a growing list of ideas that we think students would enjoy coding and that would make a great addition to the game.

For each idea there are a short description, a list of people you should bug on IRC for more information, some non-compulsory skills and what impact it would make on the game.

The idea description is just to give you a taste of the work: we'd rather have the student application concentrate on telling us *how* they'll solve the thing, more than convincing us they figured out what the idea is about.

Of course we're always open to new ideas, so if one is not listed, propose your own proposal! Be sure to read the FAQ and to join our IRC channel.

  1. Test framework

    after reaching the n-th line of code, you often start wondering if what you wrote actually works. This project involves creating a test framework from scratch triggering all possible values for the most important sections of the game. Using CTest would be preferred.

    Skills: test modeling and validation
    People to bug: unc0rr, koda, sheepluva
    Impact: making sure that our code does what we think

  2. Mission campaign - Episode 2

    our campaign and our training system just received some love, but it's never enough! For this project you should design another adventure from scratch and implement it with easy lua scripts; we have a lot of examples to learn from! Similarly, you could design some training missions to teach how to play the game.

    Skills: game design, lua
    People to bug: mikade (ask for mail)
    Impact: another episode of campaign and training for newcomers

  3. One common frontend

    it'd be nice to have a common frontend for all our platforms! Qt5 should be able to provide the necessary tools to bring the existing frontend to the mobile platforms, but a lot of the GUI should be tailored for small screens and a few sections could benefit from some performance improvements.

    Skills: gui, c++
    People to bug: unc0rr, koda, sheepluva
    Impact: having a familiar UI (and codebase) across desktop and mobile devices

  4. GL-ES 2 + WebGL (take two)

    we have an experimental branch that uses OpenGL-ES 2 and was once able to compile all the engine in a pure HTML5/WebGL version! It is not complete and doesn't have all the new juicy stuff of the main branch. For this project you'll resurrect the code and maintain the branch for some time. You should also merge and complete the texture atlas and batching work, as well as update the HTML API.

    Skills: html, fpc, opengl
    People to bug: nemo, koda
    Impact: faster graphics on mobile devices, portability and WebGL awesomness

  5. Pascal <3 C from the CrossPascal project

    Our Webgl port leverages on a Pascal to C converter and then have that C code compiled to LLVM bytecode and then finally to javascript with emscripten. All this procedure is very complex and the Pascal converter is fragile and difficult to maintain. A correct way to do things would be to have a Pascal compiler output directly LLVM bytecode (or at least C) and then use clang/emscripten to process it. A few projects are involved around this but have just started: are you able to lend a hand and make this a reality?

    Skills: compilers, pascal, llvm
    People to bug: tangentstorm, red^, rosseaux
    Impact: improved code portability
    Project URL: http://crosspascal.googlecode.com/

  6. Tick Tack Tock

    we were thinking of slimming down our timing/event system; depending on the implementation we will have some performance benefits and easier code. Read more here: http://code.google.com/p/hedgewars/issues/detail?id=318

    Skills: fpc
    People to bug: unc0rr, nemo
    Impact: performance benefits, especially on mobile devices

  7. AI

    even though computers are stupid, there's always room for improvement! Let's teach AI teams how to properly use weapons so that single play can become as fun as network play!

    Skills: fpc, artificial intelligence
    People to bug: unc0rr, nemo, sheepluva
    Impact: makes single player and campaign more interesting

  8. Do you speak Hedge?

    we currently have more than 10 different files to be edited every time we update the strings of our game. That's not user friendly, especially for the translators: is there a way to improve things a little bit? Note that we'd like to preserve the already-translated strings too!

    Skills: translation tools, concurrent editing systems
    People to bug: koda, nemo, unc0rr
    Impact: attracting translation contribution easily

  9. Construction

    we have random maps, static maps and hand drawn maps to play with already, but what about creating the map during the game and react to the other teams constructions. See this page for more details. This task should involve a complete GUI overhaul of course.

    Skills: fpc
    People to bug: mikade
    Impact: interactive map creation requiring tactics

  10. Network sync

    since Hedgewars can be played across several platform we would like to have a way to keep the data folder synchronized, so that you can use you team and weapons on any platform on the fly.

    Skills: haskell/c++, networking
    People to bug: unc0rr
    Impact: making using many computers and phones easier

  11. Editors

    not every one playing and wanting to contribute to the game knows how to code or how the game works. Creating a mission editor with helpful features or a theme editor will allow many more to create content.

    Skills: c++/lua, qt
    People to bug: unc0rr, mikade
    Impact: easier creation of content and therefore more content

  12. Input system

    we have some ideas that need exploring with esoteric keyboard layouts, on the fly gamepad, touchscreen/multitouch support, modern mouse-controlled gameplay, sdl2 input... we need some abstraction-ing.

    Skills: fpc
    People to bug: unc0rr, nemo, koda
    Impact: improved controls for better gameplay experience

  13. Variety

    in our engine there are some corner cases that are often complex to implement. For example when you are disconnected from the server you are also expelled from the game, while you should be able to resume your game; or we could add a different map algorithm (http://accidentalnoise.sourceforge.net/minecraftworlds.html); or add a way to synchronize pause in multiplayer... help us identify such issues and fix them!

    Skills: vary
    People to bug: anyone
    Impact: removing hard to get bugs and offers a more accurate gameplay

  14. Insert your idea here

    Ok, so you don't like any of our ideas at all? Submit your own! Tell us what you would like to do and we can help you in writing a nice application.

    Skills: vary
    People to bug: anyone
    Impact: vary

User login

Copyright © 2004-2024 Hedgewars Project. All rights reserved. [ contact ]