Fetching contributors…
Cannot retrieve contributors at this time
86 lines (60 sloc) 2.53 KB
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?