Skip to content

Latest commit

 

History

History
79 lines (57 loc) · 2.4 KB

ROADMAP.rdoc

File metadata and controls

79 lines (57 loc) · 2.4 KB

ROADMAP

This represents the direction Rubygame will be going in, but keep in mind that plans and details may change over time.

2.X (possible minor releases before 3.0)

Focus: Surface & Rect

  • Surface improvements

    • Make Surface instances copyable and marshalable

    • Support for palettes on 8-bit Surfaces

    • Export as OpenGL-ready 32bit pixel data.

    • To Fix: New Surfaces never have alpha channels

    • To Add: Surface#pixels= (set pixel data directly)

    • To Add: Surface.load_from_pixels (create from pixel data)

  • Optimize Rect for speed

Focus: Sprites

  • New sprite system

    • New Sprite, Scene, and Camera classes.

    • More powerful and simpler to use.

    • Integration with the Chipmunk physics library?

3.0 (next major release)

  • Backwards compatibility is broken:

    • Deprecated classes / methods retired:

      • Rubygame::Mixer module.

      • Rubygame::Mixer::Sample class. Use Rubygame::Sound.

      • Rubygame::Mixer::Music class. Use Rubygame::Music.

      • Rubygame::Surface.load_image method. Use Rubygame::Surface.load.

      • Rubygame::Ftor class. An alternative class will be provided.

      • Rubygame::MediaBag class. Use Surface#[], Sound#[], and Music#[].

    • Surface#get_at

    • Sprites::Group#collide_group

  • Change Sprites::Group#collide_group to scrap the ‘killa/killb’ stuff, take a block instead.

Possible future developments

  • Switch from SDL_gfx to SPriG for graphics primitives.

    • SPriG provides more functionality and flexibility, and a more consistent interface.

    • How does speed compare?

    • Is it buggy?

  • Alternative back-ends:

    • OpenGL (faster rendering, better Mac support)

    • Allegro?

  • Polygon, circle, and other geometric primitives

    • Drawing, with styles?

    • OpenGL drawing?

    • Collision detection?

    • Physical shapes w/ Chipmunk?

    • Generate bounding Polygon from an image automatically?

  • Path (Curve?) (graphs/plots for tracing position and other uses)

    • Can find the position N units along the path.

    • Can draw a line showing the path.

    • LinearPath (connect the dots, linear interpolation)

    • BezierPath (chain of continuous cubic Bézier curves)

    • CodePath (calculated from a code block)

  • Effect (Action?)

    • “Attach” to an instance, does something over time.

    • E.g. moves a sprite from point A to point B over N seconds.

    • Many types of effects, easy to define custom ones.

    • Takes parameters: start/end time, others depending on effect.