Version 4 (modified by ptx, 4 years ago)

--

Google Summer of Code 2009!

Project Suggestions

  • GUI
    • Idea: Creating an in-game GUI.
    • Difficulty: Depending on the completeness of the project. A tiny menu system would be fairly easy to implement, while a complete GUI with text field and editors are more complex.
  • Low Level Optimization
    • Idea: Improving the speed of math operations, to gain more speed.
    • Difficulty: Require a good understanding of math, and how compilers optimize code.
  • Offscreen Rendering
    • Idea: Rendering frames to a offscreen enables prerendering of non-real time graphics.
    • Difficulty: A little understanding of OpenGL would be good, but otherwise a simple project.
  • Physics
    • Idea: Implement a physics engine, or create the bindings to an existing one (e.g.  bullet)
    • Difficulty: Can be very hard if you want to implement a full physics engine. Creating the bindings should be simple, depending one the documentation of the chosen engine.

  • Post Processing Effects
    • Idea: Using post processing, very cool effect can be archived very cheaply. Think shadows, lighting, motion blur etc.
    • Difficulty: Creating the effects would require learning about shaders.
  • Multi Threading
    • Idea: As multi-core CPU's have become a common thing, having a single threaded engine is a performance bottleneck.
    • Difficulty: Very difficult! Most of the core parts of the engine have to be rewritten, and everything most be made thread-safe.
  • Sound
    • Idea: The current Audio-system lack the ability to play audio from a stream, instead the whole audio clip most be preloaded.
    • Difficulty: Knowledge of OpenAL is needed.
  • Animation
    • Idea: Creating an animation framework or adding inverse kinematics to the engine.
    • Difficulty: Depends one the ambitions, but can be both very easy and complex.
  • Network
    • Idea: Improve and extend the existing network code.
    • Difficulty: Our network server is written in erlang, so experience in erlang is needed.