= ROADMAP This represents the direction Rubygame will be going in, but keep in mind that specific details may change over time. == 2.X.0 (_possible_ minor releases before 3.0.0) === Focus: Clock - New Events::ClockTicked class with lots of information - Time since last frame, in both seconds and milliseconds - Current time - Current framerate - New clock class - Based on Ruby's timer (allows multi-threading) - Better framerate calculation algorithm - #tick returns an instance of Events::Tick === Focus: Surface & Rect - Surface improvements - Make Surface instances copyable and marshalable - Support for palettes on 8-bit Surfaces - To Fix: New Surfaces never have alpha channels - To Fix: Surface#set_at doesn't respect alpha - To Add: Surface#pixels= (set pixel data directly) - To Add: Surface.load_from_pixels (create from pixel data) - Rewrite Rect class in C 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.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. User Rubygame::Surface.load. - Surface#get_at - Sprites::Group#collide_group - Change Sprites::Group#collide_group to scrap the 'killa/killb' stuff, take a block instead. == On the horizon... - 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. - C equivalent of Rect.new_from_object (see rect.rb) - Screen#update (cannot pass object with rect attribute) - Screen#update_rects (same as above) - Why not just call the ruby function from within C?