SDL-Crystal-Bindings alternatives and similar shards
Based on the "Game Development" category.
Alternatively, view SDL-Crystal-Bindings alternatives based on common mentions on social networks and blogs.
cray10.0 9.0 SDL-Crystal-Bindings VS crayA simple and easy-to-use library to enjoy videogames programming
glove8.2 0.5 SDL-Crystal-Bindings VS gloveCrystal framework for making games
crystal-chipmunkCrystal bindings to Chipmunk, a fast and lightweight 2D game physics library
entitas.crEntity Component System Framework writen in crystal
mos_game4.4 0.0 SDL-Crystal-Bindings VS mos_gameMini Offline Singleplayer game in Crystal
inari3.3 0.0 SDL-Crystal-Bindings VS inariA collection of games written in Crystal
crystal-imgui-sfmlCrystal bindings to ImGui-SFML
MyECS3.2 0.0 SDL-Crystal-Bindings VS MyECSmy ECS(Entity-Component-System) framework in Crystal
flight-crusaderPOC top down flight game in crystal lang!
medico1.4 0.0 SDL-Crystal-Bindings VS medicoGame about a medieval doctor. Very early, unplayable stage.
Static code analysis for 29 languages.
Do you think we are missing an alternative of SDL-Crystal-Bindings or a related project?
Direct SDL bindings to Crystal
This shard allows for the direct use of all unsafe SDL functions. It is designed to use as a low-level foundation for your own libraries.
Note that it is NOT recommended to use these bindings unless you want to write your own wrappers (which are not provided). The bindings here are unsafe and are therefore able to crash your program.
You need to have SDL installed or the SDL library files accessible by Crystal for linking and running.
For the other SDL library bindings, you also need to have SDL_image, SDL_mixer and SDL_ttf available.
Simply add this shard (
sdl-crystal-bindings) to your
This repository comes with pre-generated binding files.
For the other SDL libraries, you can use
require "sdl-crystal-bindings/sdl-image-bindings", for example.
Note that the examples use the relative paths to the respective files.
Regular SDL functions, structs, enums, unions and constants are accessible using the
LibSDL namespace, while
preprocessor macro functions are accessible using the
LibSDLMacro module. This separation is due to the fact
that no functions can be added to the Crystal
lib modules, which do not already exist in C. Since these are
simple macro expressions, they have no real analogon and thus need to be implemented separately.
Note that also the syntax differs from regular SDL in many aspects and is more oriented to Crystal (for example, functions are in snake_case, while structs are in CamelCase).
To test the examples, you need to add the contents of the
crystal run examples/XX/main.cr to start the example with number
Generating new bindings
To update the bindings, you need to have Ruby, gcc and clang installed on your system (ideally Linux or might not work).
ruby generate.rb from the main directory of this shard and the files under
src/ will be generated or updated.
The script will download the newest SDL headers and generate automated bindings.
If you need to add manual changes, please either use the filters from the script to exclude structs and/or modify the
files in the
additions directory to add specific bindings manually.
If you encounter any problems while generating the bindings, please open an issue.
- Binding generator
- Working bindings
- Bindings for sdl_image, sdl_mixer and sdl_ttf
- Basic set of examples
- More examples
- Continuous integration
- Examples in separate submodule
- Decoupling of the different libraries
- Fixed some binding inconsistencies
- [ ] Even more examples
- [ ] Fix weird formatting in some header files