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.
NOTE: this was recorded at 5fps, but runs at 60fps.
You can find code for this demo at https://github.com/da1nerd/tutorial-game
Add this to your application's shard.yml
:
dependencies:
prism:
github: da1nerd/prism
Install GLFW on your system
# on linux
sudo apt-get install libglfw3-dev
# on macOS
brew install glfw3
Install OpenGL
# 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)
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)This project was largely inspired by "The Benny Box" and his 3D Game Engine Tutorial. Thanks for all the good tutorials Benny!