Welcome to Slickr
Slickr is a JRuby, Slick2D, project framework.
Slickr tries to merge concepts from Entity-Component and good old fashion Object Oriented Design. Ruby gives you a lot of power to write great code and Slickr tries to help you do that, while developing games.
"Slick2D is an easy to use set of tools and utilities wrapped around LWJGL OpenGL bindings to make 2D Java game development easier." — http://www.slick2d.org/wiki/index.php/Main_Page
Getting Started
1. Install Slickr
$ gem install slickr
2. Create a new Slickr game
$ slickr new my_game
where "my_game" is the name of the game.
3. Change directory to my_game
and play it
$ cd my_game
$ rake play
You should see a Window with nothing but a white background and some FPS information.
Generating New Code
$ slickr generate [component|entity|renderer|system] NAME
Project Structure
├── Rakefile
├── assets/
├── java/
│ ├── jinput.jar
│ ├── lwjgl.jar
│ └── slick.jar
├── lib/
│ ├── behaviors/
│ ├── behaviors.rb
│ ├── engine.rb
│ ├── entities/
│ ├── entities.rb
│ ├── renderers/
│ ├── renderers.rb
│ ├── reactors/
│ └── reactors.rb
├── libjinput-osx.jnilib
├── liblwjgl.jnilib
└── openal.dylib
assets/
Images, sounds, videos, etc.
java/
Slick2D framework jars.
lib/behaviors/
Behaviors that entities will include.
lib/entities/
The actual objects that live your game's world.
lib/renderers/
Draws the current state of entities to the screen.
lib/reactors/
Reactors take changes in the world and updates entitites accordingly.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request