SlideShare a Scribd company logo
ステータスドリブンなツクール
2013/05/10
t.tsugehara
ステータスドリブン
• あらゆるものはステータスから始まる
• ステータスを定義し、そのステータスの状態による変化を
定義していくことで世界を作っていく
• 例
– 体力というステータスを定義する
– 状態異常:死というステータスを定義する
– 体力が0になったら場合に、状態異常: 死を付与する
– 状態異常: 死になったキャラクターが主人公であれば、ゲーム
オーバー画面に遷移する
通常の例
敵の攻撃→対象のキャラクターの体力を減らす→キャラクターの体力が0であれば死亡状態にする→このキャラク
ターが主人公であればゲームオーバーにする
ステータス
名前
値種別
最低値
最大値
任意のシステム全体で一意の名称
文字列、数値、グループ
省略可。グループの場合は指定不可
文字列の場合は最低文字数、数値の場合は最低数値
省略可。グループの場合は指定不可
文字列の場合は最大文字数、数値の場合は最大数値
子
ステータス
親
ステータス
値
文字列ステータス
• 名前や性別などに利用
数値ステータス
• 体力や攻撃力などに利用
グループステータス
• 所持アイテムや習得済み呪文などに利用
• 実際は「値を持たないステータス」である
ステータスイベント
• ステータスが変化した場合に任意のイベント
を起こせる
親ステータスと子ステータス
• すべてのステータスは0~1の親と、0~Nの子
を持つことが出来る
具体例 – ステータス例
名称 種別 最小 最大 備考
最大体力 数値 0 999
体力 数値 0 999
状態:死 数値 0 1
キャラクター グループ - - 子として最大
体力と体力を
持つ
パーティー グループ - - 子としてキャラ
クターを持つ
具体例 – イベント例
体力
this.parent.addStatus(new 状態:死());
パーティー
if (targetStatus.is(状態:死)) {
if (this.countChildStatus(状態:死) ==
this.childs.length)
game.gameOver();
最低値に達した場合 子ステータスが増加した場合
他の例
• Partyのx座標やy座標が変わったら、ランダムエ
ンカウントの処理を実行
• パーティー内誰かのHPが20%を切ったら、画面
を緑色に
• 歩数が500万歩に達したら超回復薬をプレゼント
こういうのは全部ステータス
ドリブンでしょうと
だから基本的に、ステータスドリブンなイベント設計はいけ
るのではないかと仮定しました
ちょっと遅そう
でもまあ
とりあえず
やってみよう。
ステータスドリブンでは駄目なところ
• ステータスドリブンだけではただの鑑賞ゲー
ムしか作れない
• ユーザの干渉、例えばメニュー項目の選択で
あり、フィールド画面での方向キー操作であり
といった操作を経てゲームとしては成立する
• これらを、どうするのか
一つ目の解
頑張ってステータスドリブンにする
• 方向キーは方向キーというステータスを作る
• 方向キーのステータスが変わるというイベント
を基に、キャラクタの移動を行う
• メニューの選択も例えば「アクション」というス
テータスを作り、そのアクション項目を変更す
るなど
• 実際JavaScriptのイベント構造も似たようなも
んだし。
二つ目の解
トップダウン稼動の仕組みも併用する
• トップダウン稼動の仕組みも併用
– 「方向キーが押されたら」「パーティー」を移動す
る
– 「メニュー」の「この項目」が押されたら、「キャラA」
の「呪文B」を使用する
• 比較的直感的
• 「パーティー」や「キャラA」などを選択出来る
必要はある
組み合わせるのがベストかなと
1. なるべくステータスドリブンにする
2. トップダウンの仕組みも併用する
トップダウンにおけるセレクタ 1/2
• トップダウンの仕組みを実装するためには、上から操
作対象のステータスを特定する必要があり、その仕組
みとして通常はセレクタが用いられる
• DOM系の「○○の子供の○○の子供」というセレクタ
は欲しい。「パーティーのキャラAの呪文B」という選択
が必要なため
• それ以外に「パーティーのキャラの内勇者という職業
を持つもの」というセレクタも必要
– jqueryの属性セレクタに近いが少し違う
– jqueryのセレクタからクラスを除外する代わりに、サブス
テータスの値という要素を持たせられればいいのかも
トップダウンにおけるセレクタ 2/2
• 通常
– あいうというキャラがいるパーティーを選択
• パーティー[キャラ[名前=あいう]]
– サポート演算子
• >, <, =, !=, !>, !<
• !はtrueをfalseに、falseをtrueにする意味がある。 >100は100は
false101はtrue、!>100は100はtrue101はfalse
• And
– パーティー[キャラ[hp>100,level>10]]
– パーティー[キャラ[hp>100],キャラ[level>10]]
• Or
– パーティー[キャラ[hp>100|level>10]]
– パーティー[キャラ|敵[hp>100,level>10]]
セレクタの使い方
1. Game
A. Party
a. Chara
i. Name: 1
ii. Hp: 100
b. Chara
i. Name: 2
ii. Hp: 20
c. Chara
i. Name: 3
ii. Hp: 70
• Game.find(“Party”)
– [A]
• Game.find(“Chara”)
– [a, b, c]
• Game.find(“Chara[Nam
e=1]”)
– [a]
• Game.find(“Chara[Hp<1
00]”)
– [b,c]
IDとステータスコンテナ
• 一応もうちょっと速い選択方法としてidもサポートして
おく。このIDはコンテナ経由で利用する(DOMでいう
documentのようなもの)
• コンテナの使い方
– var container = new st.container();
– var status = new st.StringStatus(“名前”, “test”);
– container.append(“test”, status);
– var test = container.get(“test”);
– status == test; //true
• IDがメインではないので、一手間かかる。でも高速
• status.find(“#test”) も使えるが、これは遅い
ここで資料が終わっている
ツクール的な要素が語られていな
いけど、資料としては面白かった
のでここまでで一応アップします。

More Related Content

What's hot

効果的な例会プログラム
効果的な例会プログラム効果的な例会プログラム
効果的な例会プログラムMatcha_md
 
enNetforum Fukuoka Panelist
enNetforum Fukuoka PanelistenNetforum Fukuoka Panelist
enNetforum Fukuoka Panelist
Forum
 
テスト駆動開発のエッセンス
テスト駆動開発のエッセンステスト駆動開発のエッセンス
テスト駆動開発のエッセンス
hiroyuki Yamamoto
 
Luyen Chu Han Sc2
Luyen Chu Han Sc2Luyen Chu Han Sc2
Luyen Chu Han Sc2
kelly FU
 
Jaws2008 Presen12
Jaws2008 Presen12Jaws2008 Presen12
Jaws2008 Presen12umekoumeda
 
Kalib(20060616)
Kalib(20060616)Kalib(20060616)
Kalib(20060616)真 岡本
 
テーブルトピックス策謀書
テーブルトピックス策謀書テーブルトピックス策謀書
テーブルトピックス策謀書Matcha_md
 
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介devsumi2009
 
Decade 20081226
Decade 20081226Decade 20081226
Decade 20081226goukaicom
 
enNetforum Wakamatsu Presentation
enNetforum Wakamatsu PresentationenNetforum Wakamatsu Presentation
enNetforum Wakamatsu Presentation
Forum
 
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~devsumi2009
 
Lifehack Vol3 Nishi
Lifehack Vol3 NishiLifehack Vol3 Nishi
Lifehack Vol3 Nishi
Kenji Ohta
 
要件定義すれば要求が理解できる、なんてことはない
要件定義すれば要求が理解できる、なんてことはない要件定義すれば要求が理解できる、なんてことはない
要件定義すれば要求が理解できる、なんてことはない
Yusuke Suzuki
 
ミラクル・クエスチョン再考
ミラクル・クエスチョン再考ミラクル・クエスチョン再考
ミラクル・クエスチョン再考
hikaru_the_solutionist
 
【Web2.0 Expo】リクルートWebサービス
【Web2.0 Expo】リクルートWebサービス【Web2.0 Expo】リクルートWebサービス
【Web2.0 Expo】リクルートWebサービス
guesta74682
 
6 10blog2
6 10blog26 10blog2
オンラインセミナーのためのマイク超入門
オンラインセミナーのためのマイク超入門オンラインセミナーのためのマイク超入門
オンラインセミナーのためのマイク超入門
VirtualTech Japan Inc./Begi.net Inc.
 
0423mitsubishi
0423mitsubishi0423mitsubishi
0423mitsubishiloftwork
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメYoji Kanno
 

What's hot (20)

効果的な例会プログラム
効果的な例会プログラム効果的な例会プログラム
効果的な例会プログラム
 
enNetforum Fukuoka Panelist
enNetforum Fukuoka PanelistenNetforum Fukuoka Panelist
enNetforum Fukuoka Panelist
 
テスト駆動開発のエッセンス
テスト駆動開発のエッセンステスト駆動開発のエッセンス
テスト駆動開発のエッセンス
 
Luyen Chu Han Sc2
Luyen Chu Han Sc2Luyen Chu Han Sc2
Luyen Chu Han Sc2
 
Jaws2008 Presen12
Jaws2008 Presen12Jaws2008 Presen12
Jaws2008 Presen12
 
Kalib(20060616)
Kalib(20060616)Kalib(20060616)
Kalib(20060616)
 
テーブルトピックス策謀書
テーブルトピックス策謀書テーブルトピックス策謀書
テーブルトピックス策謀書
 
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
 
Decade 20081226
Decade 20081226Decade 20081226
Decade 20081226
 
enNetforum Wakamatsu Presentation
enNetforum Wakamatsu PresentationenNetforum Wakamatsu Presentation
enNetforum Wakamatsu Presentation
 
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
 
Lifehack Vol3 Nishi
Lifehack Vol3 NishiLifehack Vol3 Nishi
Lifehack Vol3 Nishi
 
要件定義すれば要求が理解できる、なんてことはない
要件定義すれば要求が理解できる、なんてことはない要件定義すれば要求が理解できる、なんてことはない
要件定義すれば要求が理解できる、なんてことはない
 
future-search
future-searchfuture-search
future-search
 
ミラクル・クエスチョン再考
ミラクル・クエスチョン再考ミラクル・クエスチョン再考
ミラクル・クエスチョン再考
 
【Web2.0 Expo】リクルートWebサービス
【Web2.0 Expo】リクルートWebサービス【Web2.0 Expo】リクルートWebサービス
【Web2.0 Expo】リクルートWebサービス
 
6 10blog2
6 10blog26 10blog2
6 10blog2
 
オンラインセミナーのためのマイク超入門
オンラインセミナーのためのマイク超入門オンラインセミナーのためのマイク超入門
オンラインセミナーのためのマイク超入門
 
0423mitsubishi
0423mitsubishi0423mitsubishi
0423mitsubishi
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 

Viewers also liked

世界創造ツール
世界創造ツール世界創造ツール
世界創造ツール
Toyokazu Tsugehara
 
コミュニケーションもの
コミュニケーションものコミュニケーションもの
コミュニケーションもの
Toyokazu Tsugehara
 
jgforce向け?のゲーム素材についての検討資料
jgforce向け?のゲーム素材についての検討資料jgforce向け?のゲーム素材についての検討資料
jgforce向け?のゲーム素材についての検討資料
Toyokazu Tsugehara
 
Jgforce用rpgエディタについて
Jgforce用rpgエディタについてJgforce用rpgエディタについて
Jgforce用rpgエディタについて
Toyokazu Tsugehara
 
Jgforce - 将来像と現状と協力願い
Jgforce - 将来像と現状と協力願いJgforce - 将来像と現状と協力願い
Jgforce - 将来像と現状と協力願い
Toyokazu Tsugehara
 
デュエル
デュエルデュエル
デュエル
Toyokazu Tsugehara
 
ポイント制によるタスク・メンバー管理と、プロジェクトを株式会社っぽくする方法の起案
ポイント制によるタスク・メンバー管理と、プロジェクトを株式会社っぽくする方法の起案ポイント制によるタスク・メンバー管理と、プロジェクトを株式会社っぽくする方法の起案
ポイント制によるタスク・メンバー管理と、プロジェクトを株式会社っぽくする方法の起案
Toyokazu Tsugehara
 
不思議のすごろく Jgforce
不思議のすごろく Jgforce不思議のすごろく Jgforce
不思議のすごろく Jgforce
Toyokazu Tsugehara
 
4方向すごろく
4方向すごろく4方向すごろく
4方向すごろく
Toyokazu Tsugehara
 
不思議のすごろく
不思議のすごろく不思議のすごろく
不思議のすごろく
Toyokazu Tsugehara
 

Viewers also liked (10)

世界創造ツール
世界創造ツール世界創造ツール
世界創造ツール
 
コミュニケーションもの
コミュニケーションものコミュニケーションもの
コミュニケーションもの
 
jgforce向け?のゲーム素材についての検討資料
jgforce向け?のゲーム素材についての検討資料jgforce向け?のゲーム素材についての検討資料
jgforce向け?のゲーム素材についての検討資料
 
Jgforce用rpgエディタについて
Jgforce用rpgエディタについてJgforce用rpgエディタについて
Jgforce用rpgエディタについて
 
Jgforce - 将来像と現状と協力願い
Jgforce - 将来像と現状と協力願いJgforce - 将来像と現状と協力願い
Jgforce - 将来像と現状と協力願い
 
デュエル
デュエルデュエル
デュエル
 
ポイント制によるタスク・メンバー管理と、プロジェクトを株式会社っぽくする方法の起案
ポイント制によるタスク・メンバー管理と、プロジェクトを株式会社っぽくする方法の起案ポイント制によるタスク・メンバー管理と、プロジェクトを株式会社っぽくする方法の起案
ポイント制によるタスク・メンバー管理と、プロジェクトを株式会社っぽくする方法の起案
 
不思議のすごろく Jgforce
不思議のすごろく Jgforce不思議のすごろく Jgforce
不思議のすごろく Jgforce
 
4方向すごろく
4方向すごろく4方向すごろく
4方向すごろく
 
不思議のすごろく
不思議のすごろく不思議のすごろく
不思議のすごろく
 

ステータスドリブンなツクールを考え中の資料