Rubyでゲーム作り!! Miyako vs StarRuby

Similar documents
PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライト スプライト Pygame では pygame.sprite を用いる事でスプライトの管理 描画 衝突判定等を簡単に行う事が出来る 此れを利用してキャラクター操作に関する各種機能をスプライトクラスとして 1 個

XNA Framework

000

◎phpapi.indd

アクション講座 第1回目

スライド 1

_TJ…X…g†[…fi_0216

ゲームプログラミング講習 第0章 導入

C#の基本

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライトの衝突判定 スプライトの衝突判定 スプライトの衝突判定の例として インベーダーゲームのコードを 下記に示す PYTHON3 #coding: utf-8 import pygame from pygame.lo

MMC Unity講座

Microsoft Word - CygwinでPython.docx

情報システム工学特論 Web アプリの作成により 次のことを学んでもらいます 1 無料ソフトウェアの活用 2 無料のソフトウェア開発ツール Runstant Lite 3 Web ブラウザのゲームライブラリ phina.js 4 Web アプリとは 無料ソフトウェアの活用 無料ソフトウェアとは イン

スライド 1

Microsoft Word - 操作マニュアル(PowerPoint2010).doc

<4D F736F F D E835A A C98AD682B782E98E77906A89FC92F994C52E646F63>

Stereoscopic Player Zalman Edition クイックスタートガイド Version 1.2 October 14 th,2007 はじめに Stereoscopic Player Zalman Edition は Zalman ディスプレイで立体ムービーを再生できる 3D

OHP シートの作成 OHP でプレゼンテーションをする際に必要な OHP シートを作成できます 配布資料の作成プレゼンテーションの参加者に配布する資料を簡単に作成できます 参加者はメモ等この資料に書き込むことができ 理解を深めることができます 発表者用資料の作成プレゼンテーション中に発表者が参考に

PowerPoint2007基礎編

file:///C:/Users/k-hidume/AppData/Local/Temp/~hh8CD7.htm

Microsoft PowerPoint P演習 第5回 当たり判定(2)【課題】.pptx

平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

SoftBank 008SH 取扱説明書

<4D F736F F D20838F815B836882C54C494E E DEC90AC283194C529>

Microsoft PowerPoint P演習 第10回 関数.ppt [互換モード]

Microsoft Word - 操作マニュアル(PowerPoint2013)

User Manual

PowerPoint プレゼンテーション

ポートフォリオ

問題 1 次の文章は 作業環境について述べたものである を解答群 { } より選び その記号で答えよ にあてはまる適切なもの 設問 1. < 図 1>はルーラーの一部である 1に示されるインデントマーカーを移動することにより を設定することができる < 図 1> { ア. 1 行目のインデントイ.

基本作図・編集

基本作図・編集

しずおかアプリ部 Unity はじめるよ すごいよサウンド機能 実践編 統合開発環境を内蔵したゲームエンジン いろんな職業の が る資料なので説明を簡単にしてある部分があります 正確には本来の意味と違いますが上記理由のためです ご了承ください この

合宿事前講座 Web 開発の基本編その 2 情報研究会モブ 薗田海樹 The. H.30 情報研究会 1

Microsoft Word - P doc

3Dプリンタ用CADソフト Autodesk Meshmixer入門編[日本語版]

1.Picasa3 のダウンロードとインストールの方法 (1) アドレス を入力 (2) Picasa3 のダウンロードをクリックする (3) セキュリティ保護のため をクリックする 2

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

引き算アフィリ ASP 登録用の日記サイトを 作成しよう Copyright 株式会社アリウープ, All Rights Reserved. 1

Rational Roseモデルの移行 マニュアル

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Taro-テキスト.jtd

第26回_プレゼン資料_菅原(Unityはじめるよ~NavMesh基礎~)

PowerPoint プレゼンテーション

XMLとXSLT

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

Java言語 第1回

目 次 1. All-In-One プリンタユーティリティ概要 All-In-One プリンタユーティティについて 対応プリンタ機種 システム要件 セットアップ方法 All-In-One プリンタユーティリテ

untitled

情報システム設計論II ユーザインタフェース(1)

RPGツクールでゲームを 作るもくもく会2

方法 4 の手順 パソコンの条件 を確認するための画面を表示する Windows8より前のパソコンでの確認方法 () スタートボタン をクリックする () ( マイ ) コンピューター と書いてある部分を右クリックする (3) プロパティ をクリックする (4) システムの画面が表示される Wind

Clickteam Fusion 物理エンジンガイド

PowerPoint プレゼンテーション

Microsoft Word - サンプル _図面編集_.doc

バスケットボール

Apache Arrow 須藤功平株式会社クリアコード RubyData Tokyo Meetup Apache Arrow Powered by Rabbit 2.2.2

(Microsoft Word - 01PowerPoint\217\343\213\211C\203p\203^\201[\203\223\222m\216\257\225\\\216\206.doc)

智美塾 ゆもつよメソッドのアーキテクチャ

Transcription:

Ruby でゲーム作り!! Miyako vs StarRuby TANIGUCHI Hikaru (id:tanigon @twitter @hatena) (tanigon2001@gmail.com)

自己紹介 谷口光 (TANIGUCHI Hikaru) Twitter に出没 id:tanigon プリクラ機とか携帯電話向けコンテンツの会社でエンジニアしてます ゲーム大好き弾幕 STG とか 趣味でゲーム メガデモもどき作ったり学生時代エロゲの会社でバイトしていた ピアノ 手品 ルービックキューブ 車 etc

本題の前に アジェンダ Rubyでゲーム作り って? Miyakoとは? StarRubyとは? 様々な観点で Miyako vs Star Ruby まとめ

Ruby でゲーム作り Ruby でゲームを作るのは シンプルにかけそう (Ruby という言語のおかげ ) 速度を要求するものには弱いかも? Python には Pygame とかあるのに! Ruby には? 実はめちゃめちゃたくさんある 参照 : Ruby ゲーム開発のハブサイト (http://ruby-game-dev.org/)

ゲーム作りに ( ライブラリに ) 要求されること フルスクリーン描写のサポート スプライト 音声 音楽の再生 FPSと垂直同期の管理 ゲーム的な入力処理 ゲームパッドへの対応 リアルタイムなキー押下状況の取得 文字描写

ゲーム作りに ( ライブラリに ) 要求されること 3D シーン オブジェクトの管理 ただし 今回は扱いません! なぜなら Miyako も Star Ruby も 3D に特別な対応をしていないため Ruby で 3D ゲーム作り はもうひとつハードルが高いのかも?

Miyako とは? Ruby/SDL というライブラリのラッパ Ruby のゲーム制作環境として製作されてきた 作者はサイロス誠さん とにかく多機能!! シーン と呼ばれる単位でゲームの状態遷移をクラスとして実装する 速度に不安あり ( 最近改善された ) http://www.twin.ne.jp/~cyross/miyako/

StarRuby とは? SDL のラッパ (Ruby/SDL のラッパではない ) 作者は星一さん とにかくシンプル スクリーンも画像もオフスクリーンバッファも とにかく Texture というインタフェースでアクセスするので理解しやすい 速度に自信あり? http://www.starruby.info/ja/

比較編

Miyako 比較編 : インストール まずRuby/SDLをインストールする 次にMiyakoをインストール Star Ruby Star Ruby をダウンロードしてインストール どちらも簡単! 比較するなら Star Ruby に軍配が上がる?

Miyako 比較編 : とりあえずサンプル 数こそ少ないものの Miyako の豊富な機能のウォークスルー おお いろいろ出来そう! と感じさせる何かがある Miyako が多機能なこともあり サンプルは網羅的とはいえないものの実例として素晴らしい

Star Ruby 網羅的なサンプル 比較編 : とりあえずサンプル ライブラリそのものがシンプルなので ひととおりサンプルを見るだけで分かりそう ライブラリの方向性が違うなか サンプルにもクセが出ていて甲乙つけがたい?

Miyako 比較編 : ドキュメント類 幅は狭いがチュートリアルPDFも配布 Zipにも APIドキュメントがついてくる 説明はほとんど書かれていないが? 将来に期待! 何分多機能なので

Star Ruby 比較編 : ドキュメント類 サイト上に網羅されたドキュメントあり 元がシンプルなだけにとてもわかりやすい サンプルと合わせればほぼ完璧 ただ 配布 ZIPには含まれていない様子 機能の差があるため単純に比較はできないが開発をする上での快適度は Star Ruby が上か?

比較編 : ゲームループを書こう ゲームループ ( とかなんとか色々言い方 ) FPS で指定したフレームごとにメソッドやイテレータ ( クロージャ ) を呼んでくれるようにする 何か処理を書いてループを回すまでの道のり

Miyako 編 比較編 : ゲームループを書こう 何か処理を書いてループを回すまでの道のり チュートリアルに従って シーン を理解する Miyako::Story::Scene を mix-in したクラスを作成する init, setup, update, final, dispose というメソッドを実装する Update がフレームごとに繰り返し呼ばれる (main_loop などもあるがあえてシーンを使った )

Star Ruby 編 比較編 : ゲームループを書こう Gameクラスのrunにクロージャを渡す めちゃめちゃシンプル 画面をクリアするなどすべて自分で実施 Game.run(..) do. end

文字を描く 比較編 : 文字を描こう 既存のフォントを使って文字を描く 画面に適当なサイズでテキストを出す で これが動くとかそこまで

Miyako 編 比較編 : 文字を描こう なんでもいいからFontの取得 Font.serif() とか Shape.text を使って スプライト にする スプライトは自律して描写処理 ( スプライトだし ) スプライトに変換しているところが面白い 理解してしまうと楽

Star Ruby 編 Font を作成 比較編 : 文字を描こう Color も必要に応じて準備しておく ループ内で取れるスクリーンバッファの Texture に対して render_text する 各フレーム自前で描写するので座標の管理などは自前 必要に応じてスプライトクラスは作成 画面も画像データもなんでも Texture

ゲーム的な XY 入力 比較編 :X,Y 入力してみよう カーソルキーやゲームパッドなどによる 4 方向入力を取得する それに応じて何か動かす さきほどのテキストをキャラに見立てて動かす

Miyako 編 比較編 :X,Y 入力してみよう Input.trigger_amount から XY 成分の配列が取れる スプライトを動かす Sprite#move(dx, dy) 絶対座標を必ずしも管理しておかなくていい スプライトだから

Star Ruby 編 比較編 :X,Y 入力してみよう Input.keys で入力されているキーの集合が取れる X,Y 成分に特化したものではない キーボードとパッドは別々に集合を取得できる Left が押されていれば X -= 1 といった感じ シンプルだが基本的に自前で管理する

比較編 : 音をならす BGMやSEの扱いについて MiyakoもStar Rubyも大差ない wav, ogg Miyakoは MP3 などの再生もサポート 再生制御などもややMiyakoのほうが融通が利く

比較編 : 画像の扱い RPG, STG, アクションなどジャンルを問わずキャラクターは画像を使うことが多い 画像ファイルを読み込んで表示するまでの流れを確認 シンプルなコマアニメについても確認

Miyako 編 比較編 : 画像の扱い 単体なら Sprite.new で読み込むだけ アニメーションもスプライト側で自律させることができる SpriteAnimation クラス 複数のスプライトを束ねて指定した順番でスプライトを変更してくれる 単純なアニメーションだとメチャメチャ簡単

Star Ruby 編 比較編 : 画像の扱い 画像は Texture.load で読み込む アニメーションは自前実装の必要がある クラス化することになるだろうが記述量は少ない 描写は Texture#render_texture を使う 各フレームごとの描写も自前 この点は Miyako のスプライトのスタイルとは大きく異なる

まとめ その他 Miyako には衝突判定や選択肢ボックスを出すなど多彩な機能が提供されているが 今回は Star Ruby とのスタイルの比較ということで省略 Star Ruby にも SFC(SNES) 的な透視変換用のメソッドが提供されている ( ユニーク ) マリオカートとか作っちゃえるかもしれない

まとめ シンプルさ 理解しやすさでは Star Ruby のほうが上 多機能さでは Miyako のほうが上 ゲームプログラミングの基礎知識があるなら Star Ruby のほうがパフォーマンス有利?

まとめ プレゼン資料 いわゆるアドベンチャーゲーム ( ギャルゲ含む ) やノベルタイプのゲームなど パフォーマンスに対してシビアでないなら Miyako がかなり有効な選択肢となる シューティング アクションゲームなどパフォーマンスが重要なら Star Ruby のほうが比較優位と思われる