Last Update: 2009-10-24 15:52:57 -0500


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)

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.