Your SlideShare is downloading. ×
mrubyでゲームを書いてみた
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

mrubyでゲームを書いてみた

2,710
views

Published on

第一回kuniaki.rbで発表した資料です。 …

第一回kuniaki.rbで発表した資料です。

プレゼン中の実行可能なソースコードは以下にあります。
https://core.rmake.jp/projects/166

また、実際に試したい方は以下からダウンロードしてください。
https://core.rmake.jp/about

Published in: Technology

0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,710
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
9
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 自己紹介 • Twitter: @akasata • (株)Rmakeという会社をやってます • ゲームを共有して作成するウェブサービス 「Rmake」を運営してます – Rails2.3(Ruby 1.8)と4.0(Ruby2.0)が混在・・・orz • 最近は提督業もやってます
  • 2. mrubyでゲームを書いてみた
  • 3. mrubyとは? • まつもとさん作の新しいRuby処理系 • 組み込みに特化したRuby – アプリケーション組み込み – Embedded System • 例:LEGO MINDSTORMS NXTにも搭載 – ROM 256KB、RAM 64KBの環境
  • 4. mrubyの組み込みは簡単 mrb_state* mrb = mrb_open(); mrb_load_string(mrb, "puts 'hoge'"); mrb_close(mrb); 3行でrubyを組み込めます!
  • 5. mrubyでゲームを書く • 基本方針 – 様々な環境で動かす – パフォーマンスを落とさない – Rubyらしい記述
  • 6. 様々な環境で動かす • 高いポータビリティ – mrubyはC99の範囲内で実装 • 小さな言語仕様 – でもmrbgemsを適用することで高機能化も • mrbgems: ビルド時にライブラリを組み込む機構 • 停止時間の短いGC • PC/スマホ/ブラウザで動かしたい – (ブラウザはまだ・・・)
  • 7. パフォーマンスを落とさない • スマホでも動かしたい • Rubyはグルー(糊)言語 – 処理の大半はネイティブ(C/C++)で記述 • あたり判定 • アニメーション/モーション – ゲームを構成する中核部分だけを RubyをベースにしたDSLで記述
  • 8. Rubyらしい記述 • 基本機能を簡単に記述するDSLを作る – スプライト – アニメ – モーション – イベント処理 – あたり判定
  • 9. Rubyらしい記述 – スプライト # スプライト「human」の定義 sprite_template :human do |st| st.texture :human_image st.src_size 32, 32 # 描画元のサイズ st.dest_size 32, 32 # 描画先のサイズ st.center_offset 32/2, 32/2 # 中心位置 end # 座標(450, 16)に「human」を表示 scene.add :image, :template => :human, :center_position => [450, 16]
  • 10. Rubyらしい記述 – アニメーション # 足踏みを定義する # 16フレームごとに表示画像を切り替え st.animation :down do |c| c.loop true c.copy_rect :frame => 16, :src => [0, 0] c.wait_animation c.copy_rect :frame => 16, :src => [1, 0] c.wait_animation end
  • 11. Rubyらしい記述 – モーション st.motion :default do |commands| commands.proc_call do |sprite| sprite.change_animation :down end # 座標(384, 209)に4px/frameの速度で移動 commands.move_to_v 384, 209, 4 end
  • 12. Rubyらしい記述 – イベント処理 scene :start_scene do |scene| scene.on_init do scene.add :image, :name => :human1, :template => :human, :center_position => [450, 16] # スプライト「 :human1 」タップすると文章を表示 scene.event :human1, :on_click do speak "タップすると文章を表示します“ end end end
  • 13. デモ • • • • • シューティングゲーム クレーンゲーム 3マッチパズル 脱出ゲーム マップエディタ
  • 14. 宣伝 – デジゲー博出展 2013年11月17日(日) 11:00 ~ 15:00 スペース:A-31/32 大田区産業プラザPio 2F小展示ホール