This is a stable, though not completely baked, 3D game engine. Documentation is a little sparse right now, but hopefully the example linked below will help. Disclaimer: I barely know anything about game development much less game engine development. This has been a learn-as-i-go project. If you have ideas or suggestions I would love it if you opened an issue.
- Defaults most things should "just work" with sane defaults.
- Pure other than a few system level dependencies, this should be 100% pure crystal code. Wrapping an existing project is cheating.
- Simple try to avoid obtuse graphics language, or at least document it very well so noobs can understand what's going on.
- Extensible you can extend/replace/add engines to the core with ease.
NOTE: this was recorded at 5fps, but runs at 60fps.
You can find code for this demo at https://github.com/neutrinog/tutorial-game
Add this to your application's
dependencies: prism: github: neutrinog/prism
Install GLFW on your system
# on linux sudo apt-get install libglfw3-dev # on macOS brew install glfw3
# on linux sudo apt install mesa-common-dev # on mac # TODO: give install instructions
require "prism" class Game < Prism::GameEngine def init # Cube # TODO: draw a box to look at # Sun light sun = Prism::Entity.new sun_color = Prism::Maths::Vector3f.new(0.2, 0.2, 0.2) sun.add Prism::PointLight.new(sun_color) sun.transform.move_to(0, 10000, -7000) add_entity sun # Camera add_entity Prism::GhostCamera.new end end Prism::Context.run("Hello World", Game.new)
- Fork it (https://github.com/neutrinog/prism/fork)
- 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 a new Pull Request
- neutrinog Joel Lonbeck - creator, maintainer