`

Ruby游戏开发利器Gosu

阅读更多
在2009年的Railsconf大会上,Hongli Lai和Ninh Bui of Phusion(开发Passenger的家伙)为了展示Ruby语言的强大,能运行3D游戏,他们构建了一个Wolfenstein游戏的山寨版,用的是Gosu游戏开发库。

Zed Shaw 在游戏中扮演BOSS  

体验方法:
项目地址:http://github.com/FooBarWidget/rubystein/tree/master
Git拖下来:git clone git://github.com/FooBarWidget/rubystein.git (没有Git也可以直接在项目主页中下载)

在运行游戏之前在安装gosu gem
gem install gosu

我是在ubuntu下测试的,为了安装gosu,还要先安装依赖的库:
sudo apt-get install g++ libgl1-mesa-dev libpango1.0-dev libboost-dev libsdl-mixer1.2-dev

在安装好了gosu gem后,直接运行游戏目录中的wolf3d.rb文件:
ruby wolf3d.rb
如图:



空格键开枪

很强大吧。
Gosu的网站:http://www.libgosu.org/
Gosu的google code地址:http://code.google.com/p/gosu/

游戏程序代码的大体结构如下,很简单,很明了:
require 'rubygems'
require 'gosu'

class GameWindow < Gosu::Window
  def initialize
    super(640, 480, false)
    self.caption = "Gosu Tutorial Game"
  end

  def update
   # 更新游戏画面的方法
  end

  def draw
    # 游戏画面的绘画方法
  end
end

window = GameWindow.new
window.show



我在gosu的网站又找到了几个case,都很不错,用gosu开发游戏很不错,代码结构很清析和容易理解。


1.Space Jumper(和雷电类似的游戏) :
下载地址:http://andre.semler-service.de/games/SpaceJumper.zip

2.Space shooter ,这个游戏和上面也差不多
项目地址:http://github.com/belen-albeza/space-shooter



强烈推荐想要用Ruby玩玩游戏开发的同学们用这个gosu库。另外好像有一个叫rubygame的开发库,不知道怎么样,有时间也研究一下。
分享到:
评论
19 楼 qichunren 2009-05-31  
量产型人型自走炮 写道
http://code.google.com/p/starruby/

偶然找到的ruby2dgame扩展..下载试用了一下各种功能甚合我意..可惜的是没有文档没什么人气不敢用...

很好的东西,我有空再研究一下。
18 楼 量产型人型自走炮 2009-05-31  
http://code.google.com/p/starruby/

偶然找到的ruby2dgame扩展..下载试用了一下各种功能甚合我意..可惜的是没有文档没什么人气不敢用...
17 楼 河蟹骑士 2009-05-31  
传言索尼打算搞一个网上appstore,下载游戏用,大家赶快写血书建议官方语言(开发游戏)采用ruby,有大公司支持了,你们说话底气更足了
ps:本人对电玩一窍不通,消息来源于记忆,失真之处就当放屁
16 楼 Julien 2009-05-31  
嘿,你又习惯性的把这个话题拐成“你凭什么说我ms的东西不能用,我明明有这个功能那个功能”了

我完全没有一星半点的这个意思,我的意思就是说游戏圈子跟编程软件圈子是两码事
咱们在这里指点江山豪气万丈的点评这个语言那个框架,在人家那里只是圈外人在装模作样自作聪明罢了,人家有人家的道道,人家就盯着用C和类C,管你编程圈子这一套。

说到简化开发过程,事实上3D游戏开发主要看的是现成引擎的功能性能而不是这个那个底层API怎样怎样。你真的去看看游戏制作的社区,一万人在研究无数现成引擎,没几个人研究底层API,不就是XNA X么?做引擎的顺手就把你加上去了,你根本不用去碰那玩意。只有到了大游戏公司内部才一点一点用directx楞挤牙膏才去研究底层细节,对于个人和小公司来说,买引擎用引擎才是天经地义。
15 楼 ray_linn 2009-05-31  
Julien 写道

你们在编程界研究游戏制作界的社区活跃度就可笑。
游戏制作圈子的主流语言一定是C和类C,其他东西都是这两年新搞出来的,没经过时间检验的。
我认识玩gamemaker的人,说是学的时候每两天都能找个游戏源码拆着看一遍,新的社区绝对到不了这个规模。


这你说得不对了。在怎么搞C,终归还是访问DirectX(更准确的说,大部分人是访问DirectX API,小部分可能还会用OpenGL)

XNA并没有禁止你用C访问DirectX,但是它提供了一些游戏中需要共同使用的东西,比如网络API,比如力反馈,比如建模工具等等,这些工具可以简化游戏的开发过程(对于小游戏,这些工具完全适用开发)。

这终归是个生产率的问题,你可别指望说用XNA开发WOW.
14 楼 Julien 2009-05-30  
ray_linn 写道
liusong1111 写道
ray_linn 写道
那还不如用XNA呢。

除了能在XBox上跑,XNA还有什么优势,能不能详细说说。



XNA为XBox和PC Game提供了开放的可扩展的API集,这个在以前是不可想象。

XNA - X代表Direct X和Xbox 360,这是目前游戏的主流方向(PS2,还算可抗衡的吧),XNA弥合了二者的区别,你觉得意义大不大?


至于扩展性和社区活跃度,就更不是ruby gosu能比的了,随便看看就是一堆,这效果区别的:

看这些被弄出来的游戏
http://catalog.xna.com/en-US/GameDetails.aspx?catalogEntryId=a2257b63-f5e4-4003-8d9b-b6613851350b&type=2


你们在编程界研究游戏制作界的社区活跃度就可笑。
游戏制作圈子的主流语言一定是C和类C,其他东西都是这两年新搞出来的,没经过时间检验的。
我认识玩gamemaker的人,说是学的时候每两天都能找个游戏源码拆着看一遍,新的社区绝对到不了这个规模。
13 楼 ray_linn 2009-05-30  
liusong1111 写道
ray_linn 写道
那还不如用XNA呢。

除了能在XBox上跑,XNA还有什么优势,能不能详细说说。



XNA为XBox和PC Game提供了开放的可扩展的API集,这个在以前是不可想象。

XNA - X代表Direct X和Xbox 360,这是目前游戏的主流方向(PS2,还算可抗衡的吧),XNA弥合了二者的区别,你觉得意义大不大?


至于扩展性和社区活跃度,就更不是ruby gosu能比的了,随便看看就是一堆,这效果区别的:




看这些被弄出来的游戏
http://catalog.xna.com/en-US/GameDetails.aspx?catalogEntryId=a2257b63-f5e4-4003-8d9b-b6613851350b&type=2
12 楼 liusong1111 2009-05-30  
ray_linn 写道
那还不如用XNA呢。

除了能在XBox上跑,XNA还有什么优势,能不能详细说说。

11 楼 ray_linn 2009-05-30  
kaven 写道
干吗非要问运行效率,现在还有很多2D游戏,只要创意好,都有人玩,
提供一个快速开发平台,把主要精力都集中到内容上。功效等同于rails
对web开发的加速



那还不如用XNA呢。
10 楼 kaven 2009-05-29  
干吗非要问运行效率,现在还有很多2D游戏,只要创意好,都有人玩,
提供一个快速开发平台,把主要精力都集中到内容上。功效等同于rails
对web开发的加速
9 楼 CoxZhang 2009-05-26  
运行效率如何?
8 楼 jiezhuang 2009-05-20  
ubuntu的依赖库真是麻烦,还要搞掉很多冲突才行
7 楼 neodoxy 2009-05-20  
ruby在日本本来就广泛的用于游戏
6 楼 Julien 2009-05-19  
同志们,基于ruby的RPGMAKER XP出来的时候,可没人知道ROR是啥……
5 楼 moonranger 2009-05-19  
仅仅是玩具而已。真想做游戏,还是得靠C/C++啊……
4 楼 RednaxelaFX 2009-05-17  
记得RubyConf 2007上就有一个session是讲用Ruby写游戏的,其中有提到Gosu,还有很多别的,都值得看看。
3 楼 night_stalker 2009-05-17  
有意思,可以教弟弟妹妹玩玩这个
2 楼 ray_linn 2009-05-17  
这是利器。。。。感觉象Dos时代。。甚至还不如。。
1 楼 liusong1111 2009-05-16  
gosu主页提供了两个系列文章:
creating games in ruby:
http://www.oreillynet.com/pub/a/ruby/2007/12/04/creating-games-in-ruby.html
creating games in ruby part 2:
http://www.oreillynet.com/pub/a/ruby/2007/12/18/creating-games-in-ruby-part-2.html

系列一对现有ruby游戏开发库基本上都讲了,还有示例,十分有参考价值

粗浅感觉,这些库提供了:
1. 时间桢(frame)的封装
2. scene和widget的封装
3. 碰撞(collision)检测
4. 图形处理辅助方法

相关推荐

    gosu-windows-ruby-0.7.14

    ruby 游戏开发 gosu-windows-ruby-0.7.14.zip

    gosu, 2D ruby 和 C 游戏开发库.zip

    gosu, 2D ruby 和 C 游戏开发库 欢迎使用 Gosu !Gosu是 ruby 和 C 的2D 游戏开发库。主要网站是 www.libgosu.org 。 源代码。wiki 。问题跟踪器和变更日志都是 GitHub的主机。Gosu是在MIT许可证下发布的。正在启动

    ruby 和 gosu 的 图像处理工具_c语言_代码_下载

    ruby 和 gosu 的图像处理工具

    用 Ruby/Gosu 制作的RPG游戏示例,为想要用 ruby​​ 制作 RPG 的其他人提供基础_Ruby_代码_下载

    这是一个让您轻松拥有jRPG的模板! 您无需担心地图引擎、菜单等基本内容 ... 所有代码都以最好的方式组织起来,以便在代码中进行编辑时提供更大的灵活性。 目前的一些功能是: ...- 碰撞(英雄与 NPC 和对象,以及 NPC ...

    gosu:用于Ruby和C ++的2D游戏开发库

    Gosu是针对Ruby和C ++的2D游戏开发库。 主要网站是 。 源代码,Wiki,问题跟踪器和变更日志都托管在。 Gosu是根据MIT许可发布的。入门进入Gosu文档的最佳入口是。 如果您不知道如何入门,请尝试在那里做教程,或者...

    Recursion-Trees:非常简单的分形树,用 Ruby 和 Gosu 制作

    分形树非常简单的分形树生成器,虽然有趣,但观看不多。要求Ruby 1.8+ Gosu 0.8 ( )平台应该适用于 Gosu 支持的任何东西,但仅在 OSX 上测试过。执照上市

    texplay:ruby 和 gosu 的图像处理工具

    ruby 和 gosu 的图像处理工具 指示 TexPlay 版本 0.4.3 宝石安装: 须藤宝石安装 texplay 如何建造宝石? (仅限维护者) 安装 rake-compiler ( ) 安装 1.9.1 和 1.8.6 mingw ruby​​ 版本(上面的说明) 类型...

    Inception_Release:Ruby Gosu 游戏

    您将需要 ruby​​ 1.9.3 和 gosu 2D 游戏开发库来运行此游戏,然后只需打开主文件。 关于游戏逻辑: 我能够制作的一些很酷的功能是地图的渲染,它是从文本文件加载的,它只加载和绘制屏幕大小和相机当前位置的矩阵...

    gosu-examples:RubyGosu的示例游戏收藏,请发送PR来添加您的收藏!

    这是的Ruby示例游戏的。 (您可以在找到C ++示例。) 要安装和运行gosu-examples gem,请执行以下操作: gem install gosu-examples gosu-examples 您还可以,然后从终端运行各个示例: cd gosu-examples-...

    combat:使用 Gosu 视频游戏开发库用 Ruby 编写的进化模拟

    使用 Gosu 视频游戏开发库用 Ruby 编写的进化模拟 控制: Return (menu) - 选择菜单选项 向下(菜单) - 更改菜单选择 Up (menu) - 改变菜单选择 R - 重置模拟 P - 暂停模拟 E - 输出模拟数据到控制台,包括最老的...

    gamework:基于 RubyGosu 库的 Ruby 游戏制作框架

    Gamework 是一个基于 Ruby Gosu 库的 MVC 游戏制作框架。 在提供基本的应用程序结构和实用方法的同时,Gamework 试图不知道您要构建的游戏类型。 安装 首先安装gem: gem install gamework 然后初始化一个新的应用...

    valen_gosu

    valen_gosuvalen_gosuvalen_gosuvalen_gosuvalen_gosu

    Gosu-Tutorial:教人们基础知识的教程

    Gosu 入门这是一个帮助对 Gosu/游戏开​​发感兴趣的 Ruby 爱好者入门的基础教程。 我们将要制作的游戏是 Rock, Paper, Scissors。 当我第一次被介绍到 Gosu 时,这是一种令人生畏的经历,这就是我想创建本教程的...

    ruby-fighter:Ruby中的Street Fighter II!

    Ruby战士Ruby+ gosu中的街头霸王。入门为了开始游戏,您需要在系统范围内安装以下库:OSX $ brew install sdl2 libogg libvorbisLinux $ sudo apt-get install build-essential libsdl2-dev \ libsdl2-ttf-dev ...

    roguelike:出于学习目的,将 libtcodpython roguelike 教程翻译成 ruby​​gosu

    roguelike 需要 Gosu 'gem install gosu' 或 bundle 适用于 Ruby 2.2.0 这是旧代码,但我学到了很多(2014 年 6 月)。

    Sapphire:适用于Windows的终极Ruby游戏编程

    模板制造商开始更轻松地使用Ruby / Gosu开发游戏 如果您使用的是Windows,则可以使用exe。 如果不是这样,则需要Ruby并运行/编译Sapphire.rb才能具有相同的功能。 并且安装了Ruby之后,您唯一可以做的有趣的事情就是...

    tutoriais-gosu:LibGosu 教程

    Gosu 教程 使用 LibGosu 库(或只是“Gosu”)的教程: :了解如何使用 Ruby 和 Gosu 库创建游戏 :了解 Gosu 如何更新和渲染游戏,默认为每秒 60 帧。 :Z 轴位置、使用瓷砖贴图、正方形角的顺序和颜色的使用。

    gosu-lang:Gosu编程语言

    它是通过为Java开发人员设计的,它提供了一组功能,使他们在不牺牲Java简单语法和类型安全性的好处的情况下提高工作效率。 Gosu是一种面向对象的语言,具有许多功能编程功能。 Gosu功能: 开放式系统高级类型推断...

    Python库 | gosu-1.0.30-py3-none-any.whl

    python库,解压后可用。 资源全名:gosu-1.0.30-py3-none-any.whl

    hasu:Gosu游戏上更快的迭代

    羽生帮助您更快地开发游戏。如何?热门代码加载通常,当您更改Gosu游戏的代码时,必须关闭并重新启动游戏才能使代码生效。 使用Hasu,每次通过游戏循环都会重新加载修改后的源文件。异常捕获当异常从游戏循环中冒...

Global site tag (gtag.js) - Google Analytics