• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

da1nerd/prism: A 3D game engine written in crystal

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

da1nerd/prism

开源软件地址:

https://github.com/da1nerd/prism

开源编程语言:

Crystal 96.7%

开源软件介绍:

Prism

GitHub release Build Status

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.

Goals

  • 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.

Demo

NOTE: this was recorded at 5fps, but runs at 60fps.

Peek 2020-04-29 09-53

You can find code for this demo at https://github.com/da1nerd/tutorial-game

Installation

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

Usage

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)

Contributing

  1. Fork it (https://github.com/da1nerd/prism/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • joel - creator, maintainer

Special Thanks

This project was largely inspired by "The Benny Box" and his 3D Game Engine Tutorial. Thanks for all the good tutorials Benny!




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
thomaseding/hearthshroud: Hearthstone card game engine library发布时间:2022-06-07
下一篇:
Sponsor @ryanpcmcquen on GitHub Sponsors · GitHub发布时间:2022-06-07
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap