SlideShare a Scribd company logo
RPGにおけるイベント
駆動型の設計と実装
2015/12/1
プログラマー/ディレクター
朝比奈むかで
!ご注意!
• これはまだ修正中内容です
• 実際の講演時のものと違う可能性があります
• 後日、加筆修正版が更新される予定です
アジェンダ
• 自己紹介
• イベント駆動型とは?
• RPGの設計について
• イベント駆動型の実装方法
• まとめ
自己紹介
• 朝比奈むかで(@asahina_muakde)
• モバイル・コンソール開発経験
• 普段はプログラマーですが、
ディレクターも経験。
ゲームデザインに熱心に研究中。
!注意点(1)
• 研究や既出に基づく考察ではない
• 開発関係・リリースしたタイトルでの事例
• ゲームデザインは3年程前までの内容
!注意点(2)
• 用語省略させていただきますm(__)m
用語 略称
ロールプレイングゲーム
(ゲームデザイン)
RPG
オブジェクト
(処理単位・ゲームオブジェクト)
OBJ
クラシックスタイル
ロールプレイングゲーム
JRPG
イベント駆動型とは?
イベント駆動型とは?
• 具体的にはイベント駆動型プログラミングのこと
→“イベントドリブン”とも呼ばれる
• 特定のイベント(キー押した、マウスクリック)
等が発生した時に処理が実装される(ECA規則)
• 特徴としては不要な処理が減り処理単位で完結
イベント駆動型をわかりやすく(1)
• “イベント”が発生時に処理が実行される
• “イベント”って具体的には?
• 逆にいうと“イベント”がないと待機状態になる
イベント駆動型をわかりやすく(2)
• イベントの内容は“メッセージ”で定義される
• メッセージは“メッセンジャー“と”リスナー”
によって受け渡しされる
※詳細は後で詳しく
イベント駆動型をわかりやすく(3)
• “メッセンジャー”と“リスナー”は別々の制御
→“メッセンジャー”だけ、“リスナーだけ”、両方可
• “リスナー”は“メッセージ”をフィルタできる
イベント駆動型・まとめ
• “イベント”発生時に処理される
• “イベント”はユーザー操作や処理実行より発生
• インタラクションした処理から “メッセージ”を
“メッセンジャー”から“リスナー”に受渡する
• “リスナー“は“メッセージ”をフィルタできる
RPGの設計について
RPG設計について(1)
• 今回は2DPRGでの設計で説明
→イベント駆動型を実装する為には、事前の設計が必要
• ゲームデザイン実現の為、設計は重要かつ必然
→概念も含めて、設計をしっかりしないとダメです
• RPG設計の一例として紹介
→ゲームの設計に正しい答えはないので…
RPG設計について(2)
• PRGの要求を定義します
→例えば下図のような物を想定してみます
RPG設計について(2)
• PRGの要求を定義します
→例えば下図のような物を想定してみます
RPG設計について(3)
• この内容を実装する為の要素を考えてみます
RPG設計について(3)
• この内容を実装する為の要素を考えてみます
RPG設計について(4)
• 加えてRPGはクリティカルな要求頻度が高い
RPG設計について(4)
• 加えてRPGはクリティカルな要求頻度が高い
RPG設計について(5)
• PRGは“目に見えない“必須な仕様が多い
• またRPGは追加・変更、修正が日常茶飯事
RPGの設計について(6)
• ゲームシステムがゲーム進行に依存しない
• 複数システムが並列動作し、様々な条件で起動
RPG設計について(7)
• RPGでの実装要求を満たす仕組み一覧
RPG設計について(8)
• RPGでの実装要求を満たす仕組み一覧
RPGにおける
イベント駆動型の実装方法
イベント駆動型の役割について
• ゲーム上でのイベント駆動は何をするのか?
• この挙動について具体例を示しながら解説します
メッセージの受け渡しについて(1)
• 送信側から受取側へメッセージを送る
メッセージの受け渡しについて(2)
• メッセージは複数に対して送付できる
メッセージの受け渡しについて(3)
• 受取側すべてのメッセージ処理しなくてもいい
メッセージの受け渡しについて(4)
• メッセージは即時処理、待機(遅延)処理がある
• メッセージはキューに積んで処理(FastInLastout)
イベント駆動の流れ(1)
• 最小単位での“イベント駆動”を紹介
• 上記について、イベント駆動を説明していきます
イベント駆動の流れ(2)
“1.プレイヤー正面にNPCがいる時、ボタン押下”
イベント駆動の流れ(3)
※プレイヤー処理がフィールドシステムへメッセージ送付
イベント駆動の流れ(4)
※フィールドシステムでメッセージを受信する
イベント駆動の流れ(5)
※”TalkTalkStart“処理からイベントシステムへメッセージ送付
イベント駆動の流れ(6)
※”TalkTalkStart“処理からゲームシステムへメッセージ送付
イベント駆動の流れ(7)
※イベントシステムがメッセージを受信する
イベント駆動の流れ(8)
※ゲームシステムがメッセージを受信する
イベント駆動の流れ(9)
※イベントシステムはイベント番号からスクリプトを起動
イベント駆動の流れ(10)
• 2.NPC、プレイヤーは移動を停止
イベント駆動の流れ(11)
• 3.NPCがプレイヤーに向きを変える
イベント駆動について(12)
• 4.NPCが向きを変えた時にメッセージを表示
イベント駆動の流れ・おまけ
※イベント終了時は、イベントシステムからメッセージを送付
イベント駆動の流れ・おまけ
※ゲームシステムから制御の再開メッセージを送付
オブジェクトのメッセージ発信
(1)インタラクションによるメッセージ発信
(2)接触判定やスクリプトのメッセージ発信
プログラム(ロジック)メッセージ発信
• プログラム(ロジック)からのメッセージ発信
→ショップでの買い物開始・終了
→闘技場の受付メニューからバトルへの遷移
• バックグラウンド制御のメッセージ発信
→リソースの先読み(ディスクやアセットロード)
→イベントでのタイミング制御
→データセーブ処理
イベント駆動の長所
• イベント駆動の長所
イベント駆動の長所・短所(2)
• イベント駆動の短所
イベント駆動の短所
まとめ
• イベント駆動型は万能ではないが適用範囲は広い
• スクリプト言語との相性も良く、RPG開発必須
• 並列処理だけに利用する方法もアリ
• 別途応用例があればご連絡ください(切望
ご清聴ありがとうございました
質問等はTwitter(リプライ・DM)でご連絡ください

More Related Content

PDF
ゲームの仕様書を書こうまとめ
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
PDF
MagicOnion入門
PPTX
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
PPTX
なぜなにリアルタイムレンダリング
PPTX
プログラマが欲しい仕様書とは
PDF
UE4でマルチプレイヤーゲームを作ろう
ゲームの仕様書を書こうまとめ
新入社員のための大規模ゲーム開発入門 サーバサイド編
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
MagicOnion入門
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
なぜなにリアルタイムレンダリング
プログラマが欲しい仕様書とは
UE4でマルチプレイヤーゲームを作ろう

What's hot (20)

PDF
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
PDF
ゲームAI入門(後半)
PDF
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
PPTX
UE4のためのより良いゲーム設計を理解しよう!
PDF
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
PDF
Assembly Definition あれやこれ
PDF
ソーシャルゲームのためのデータベース設計
PPTX
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
PDF
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
PDF
オンラインゲームの仕組みと工夫
PDF
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
PPTX
FINAL FANTASY Record Keeperのマスターデータを支える技術
PDF
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
PDF
Riderはいいぞ!
PDF
【Unity】 Behavior TreeでAIを作る
PDF
猫でも分かるUE4のポストプロセスを使った演出・絵作り
PDF
出張ヒストリア ブループリントを書くにあたって大切なこと
PDF
【Unity道場】新しいPrefabワークフロー入門
PDF
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームAI入門(後半)
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
UE4のためのより良いゲーム設計を理解しよう!
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
Assembly Definition あれやこれ
ソーシャルゲームのためのデータベース設計
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
オンラインゲームの仕組みと工夫
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
FINAL FANTASY Record Keeperのマスターデータを支える技術
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Riderはいいぞ!
【Unity】 Behavior TreeでAIを作る
猫でも分かるUE4のポストプロセスを使った演出・絵作り
出張ヒストリア ブループリントを書くにあたって大切なこと
【Unity道場】新しいPrefabワークフロー入門
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
Ad

RPGにおけるイベント駆動型の設計と実装