`

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

    通过学习和使用 gosu,你可以快速入门游戏编程,并且享受到在 Ruby 中开发游戏的乐趣。这个压缩包提供了一切你需要在 Windows 上开始使用 gosu 的资源,只需按照 README 的指示进行操作,就可以开启你的游戏开发之旅...

    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库可能就是建立在这样的底层技术之上。理解C语言的基本原理和内存管理对于深入学习Gosu的工作机制是有帮助的。 文件名"texplayter"可能是指一个基于Ruby...

    Ruby的 `Gosu` 库实现的较为完整的贪吃蛇游戏源码.txt

    Ruby的 `Gosu` 库实现的较为完整的贪吃蛇游戏源码.txt

    Python、Ruby游戏设计参考图书

    在开始学习如何使用Python或Ruby开发游戏之前,理解游戏设计的基础是非常重要的。本书首先介绍了游戏设计的核心概念,包括但不限于: - **游戏机制**:游戏规则的设定,如何使玩家与游戏世界互动。 - **关卡设计**...

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

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

    用Python,Lua和Ruby语言设计游戏-Game.Programming.with.Python.Lua.And.Ruby

    Ruby的Gosu库提供了一个基础的2D游戏开发框架,支持图像、声音和输入处理。对于喜欢Ruby的开发者,它可以作为一个快速开发小型游戏的工具。 综合来看,Python、Lua和Ruby各有其在游戏开发中的优势。Python适合快速...

    用Python,Lua和Ruby语言设计游戏

    - **Gosu库**:Gosu是Ruby的一个游戏开发库,提供基本的2D图形、音频和输入处理功能。 - **Rails for Games**:虽然Ruby on Rails主要用于Web开发,但也有项目尝试将其应用到游戏服务器端。 - ** Shoes**:Shoes...

    使用Python Lua和Ruby语言进行游戏编程

    在提供的压缩包文件中,"Premier.Press.Game.Programming.with.Python.Lua.and.Ruby.ebook-LiB.chm"很可能是一本关于使用这三种语言进行游戏编程的电子书,它可能会详细介绍如何利用这些语言来开发游戏,涵盖从基础...

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

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

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

    Gosu是一个用于创建2D游戏和图形应用的Ruby库。它提供了丰富的图形渲染功能,包括颜色管理、图像加载、窗口控制等,使得在Ruby中开发交互式图形应用变得更加容易。在这个项目中,Gosu负责将计算出的分形树结构绘制...

    基于Ruby的勇者斗恶龙游戏

    在游戏开发中,Ruby提供了丰富的类库,如Gosu,这是一个专为2D游戏设计的库,支持图像绘制、音频处理和用户输入检测等功能。通过Gosu,开发者可以快速地构建游戏的基础框架,实现游戏画面的渲染和交互。 在“勇者斗...

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

    需要注意的是,虽然gosu库简化了游戏开发的一些方面,但为了构建复杂的游戏,开发者还需要掌握其他相关知识,如游戏设计原理、图形学基础、物理引擎以及AI算法等。 总的来说,gosu库是Python游戏开发领域的一个实用...

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

    Ruby是一种面向对象的、动态类型的编程语言,而Gosu是一个用于开发2D游戏的库,它为Ruby提供了图形化界面和游戏循环等功能。 首先,让我们深入了解Ruby语言。Ruby以其简洁、易读的语法深受开发者喜爱,它强调代码的...

    Ruby+RubyGames

    Ruby在游戏开发中的应用可能不如C++或Unity等专业游戏引擎广泛,但依然有一部分开发者选择Ruby,因为它可以快速地实现原型设计和复杂逻辑,尤其适合独立游戏开发者和小型团队。 在Ruby社区,有一些知名的库和框架...

    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 游戏开发库来运行此游戏,然后只需打开主文件。 关于游戏逻辑: 我能够制作的一些很酷的功能是地图的渲染,它是从文本文件加载的,它只加载和绘制屏幕大小和相机当前位置的矩阵...

    Ruby语言教程-一门高级的面向对象编程语言,它被设计用于简单和快速的编程 Ruby的语法简洁而优雅,它可以用于Web开发、

    2. **游戏开发**:借助Gosu等库,Ruby也能用来开发2D甚至3D的游戏。 3. **桌面应用程序**:利用Shoes等库,Ruby可以轻松地开发出跨平台的桌面应用。 4. **脚本编写**:Ruby作为强大的脚本语言,可用于自动化任务处理...

    spaceroids:Ruby游戏

    开发者通过学习gosu库,一个专为Ruby设计的游戏开发库,实现了这款游戏。Gosu提供了丰富的图形、音频和输入处理功能,使得Ruby程序员能够快速地创建出具有互动性和视觉效果的游戏。在@seven1m 和@jrichter 的指导和...

Global site tag (gtag.js) - Google Analytics