A Ruby game Framework - based on Gosu
NeoGame is a (not yet) powerful Ruby game framework built on Gosu multimedia library.
The framework make the game developpement easy, fast and robust.
It's entierly writed in Ruby for Ruby !
Pong sample (Neogame 0.2) :
How to use it ? No more simple, just take a shot in the wiki section (in progress).
(You can also check the website : https://niobean-generation.000webhostapp.com/tutorials.html, though it is outdated)
You l'ill discover all about the game library :
The basics :
- Create a window
- Draw a image
- ...
And the API :
- Make collision
- Manipulate audio
- ...
Briefly, you l'ill discover all you need to make a powerful game using the Ruby programming language.
For creating a sample window in example, NeoGame look like this :
# Neogame 0.4 - Sample Window
require "neogame" # We import Neogame
include Neogame # We include it
# Now, we create the window
class Game < Window
def initialize
super Settings.new(640, 480, false, "Sample window") # We send the properties in order to create the window
end
def update
# Game logic here
end
def draw
# Render everything here
end
end
Game.new.run
Just type that in your terminal :
gem install Neogame
Now You're ready to go !
Currently, NeoGame is in version 0.1 -> Early alpha
NeoGame is in version 0.2 -> Early Alpha
Changelog :
- Fixed square collision bug
- Added Audio class (for music and sound)
- Fixed bugs about Sprite and SpriteSheet class
- Sprite class is not extended anymore from Gosu::Image, but it has his own image
- Better flexibility (for Sprite and SpriteSheet)
- Sprite and SpriteSheet getPixel method return a Gosu::Color instance instead of an array
- Added circle shape, but not collision with yet...
- You can change the sprite color using the color attribute
- Refactored a bit the code
Neogame is in version 0.2.1 -> Early alpha
NOTE: This version is a minor update
Changelog :
- Added getWidth and getHeight method for Text class
Neogame is in version 0.3 -> Early alpha
NOTE: This version is a MAJOR update
Changelog :
- Converted all the library to ruby convention
- Fixed Sprite class bugs
- Fixed SpriteSheet class bugs
- Fixed Media class bugs
- Added structure "Position"
- Added Input class
- Added input methods for when key / mouse is down / pressed / released
- Deleted every module except Shapes and Neogame
- Added collision between rectangle and circle and between circle and circle
- Spritesheet attribute :anim_time has moved to :frame_time
- Camera class has now render, scale, rotate and record method
- Camera class has now a ":render_order" attribute (who is an array) for render method (for tell to Neogame what to do in order : scale ?, translate ?, ...)
- Added StateManager class for manage game state
- Added GameState class for use with state manager
- Added "options = {}" argument for sprite and spritesheet. These options are the same in Gosu when you create an image.
- Added some examples
Neogame is in version 0.4 -> Early alpha
NOTE: This version is a MAJOR update
Changelog :
- Added path variable to Sprite & SpriteSheet class
- Added an ObjectsManager class
- Modified a bit the code of the "StateManager"
- "GameState" class name changed to "State"
- Added GUI::Button class
- Added GUI::Panel class
- Added GUI::ProgressBar class
- Text class 'get_width' and 'get_height' method are now 'width' & 'height'
- Added 'size' and 'position' getter & setter (used with Vector2) in GUI::Panel class
- For Input::mouse_down is now a static function
- For every movable object, added a "position" and "position=" method / accessor
- Now read image pixel is way faster
- "Position" struct deleted
- Neogame module now include all Gosu methods
- Added "resize" method to the window class
- Use "run" method instead of "start" to launch a new window