Menu

Google_Summer_of_Code:_2015

Hugh Greene

Small functionality tweaks/additions

These are small tasks to get a student or potential contributor familiar
with the inner-workings of ENIGMA. They are minor tasks which would take
less time for a mentor to implement than explain, but they have actually
not been done yet, and so are good candidates for introductory tasks.

  1. Rename resources whose names are not valid identifiers. Right
    now, ENIGMA will let you name a sprite "while" or "if" or "Mario's
    Cap" or "string." These resources can cause name conflicts and
    should be assigned a different name, or no name at all.
  2. Sound system improvements. The current implementations of
    sound_volume is not working, and sound_position is missing.
  3. Particle system features. The current particle system is missing
    attractors, and in general offers plenty of room for improvement.

API Extension Tasks

These are large, modular tasks which would require elevated interest in
a topic. They are potentially the most fun and the most useful.

  1. Add support for Scalable Vector Graphics. ENIGMA currently
    supports only pre-rasterized graphics resources. This task would
    involve adding a method to rasterize vector graphics. After that, at
    the student's option, this task could be extended to render vector
    graphics live in-game. Prior experience with OpenVG is a plus. Prior
    experience with OpenGL is strongly encouraged.
  2. Further Box2D support. FEATURE REQUEST: ELABORATION REQUIRED

IDE Tasks

These are largish tasks which concern the IDE. Students will have the
option of working with Java for LateralGM or
with C++ using Qt for NaturalGM.

  1. A polygon editor. Used primarily for designing polygon collision
    masks. Work points include a marching-squares algorithm (or the
    like) for bitmap tracing, and a point editor.
  2. Texture groups. Add support for generating texture atlases to
    the IDE, then support writing them in the backend (compiler).

Extremely Specialized

These tasks would be useful to the project, but require special skills
or equipment. They are listed in case a student has a deep interest in a
subject, coupled with existing skills. Mentors will be less able to
assist with these tasks.

  1. Support for virtual reality displays, such as Oculus Rift.
    Design and implement a simple-to-use API for virtual reality
    development in existing games. This would require a VR device for
    testing, and the team does not presently have any experience with
    these APIs.
  2. Recode LateralGM frontend using JavaFX. This is a large,
    UI-intensive task. Mentors would be able to assist, but the
    magnitude of work and learning curve seems too high for a GSoC task
    for an inexperienced student. Mentors would potentially not suffice.

Related

Wiki: LateralGM
Wiki: NaturalGM

MongoDB Logo MongoDB