SlideShare a Scribd company logo
“Playground”でゲームづくり、
その前に
@muo_jp / なかざわ けい, K Laboratory, KLab Inc.
2014/04/12, 2Dゲームハッカソン
 なかざわ けい   @muo_jp
プログラミング19年目 29歳
(BASIC→C→PHP→Ruby→Python→C#2.0→C#3.0→C#4.0)
社会人 10年目(20歳∼)、経営学修士(IT業界の経営戦略論)
KLab 4年目(Kラボラトリー所属 C#充)
PlaygroundというゲームエンジンのOSSメンテナ
よく、雑な冗談をtwitterで
投げっぱなしてます
KLabでの仕事
携帯ブラウザ向けソーシャルゲームの開発

→JSでのネイティブゲームエンジン評価・プロト

→Androidアプリのアーキテクチャ設計・プロト

→Playgroundの周辺ツール開発
その他なんでも
今回の話は会社の公式見解では
なく、超絶個人的な見解です
先に軽くアンケート
どのような業界の方? ゲーム/Web/他システム

(さっき聞いた)
どのような職種の方? 企画/クリエイティブ/開発
どんなもの作りたいかイメージ固まってる?
しばらく、Playgroundの話は
しません
ゲーム作りたいですか?
面白いゲーム作りたいですか?
ゲームと2Dゲームの話
ゲームってなんだっけ
これをちゃんと考えないと
後が大変
ゲームは娯楽のひとつ
娯楽 Entertainment
プレイヤーに
楽しんでもらってなんぼ
どう作るかよりも何を作る
かのほうがはるかに大事
幸い、このハッカソンは「楽
しむのが大事」であって、
アウトプットを過度に求め
てない
楽しみながら「面白いもの
作ろう」とひったすら考え
て時間が終わっても良いと
思う
※個人の感想です
感情と理性のバランス
心震えるゲーム(Rez)
頭震えるゲーム(チェス)
楽しんでゲームを作るために
思い出しておきたい子供心
まずはどんなゲームを作り
たいか、必死で考える
安直に?
なんとなくクイズのアレっぽいの∼とか
なんとなくパズルのアレっぽいの∼とか
考えなしに作ったのはもう粗方どう仕様もない出来
楽しく考えるヒントが要る
どんなもの作りたい?
遊んだ人にどんな感情を持って欲しいか
楽しい?悲しい?嬉しい?寂しい?悔しい?
これらのどれとも、「面白い」は仲良くできる
なかざわのイメージ: ゲーム=面白さ(ハマる、ツボ
る、etc…)を仲介者として、プレイヤーとコミュニ
ケーションするもの
「このゲーム、何が面白い
の?」に対してスパァン!と答え
られる程度に練っておかな
いと、作ってるうちに
きっと心折れます
“ゲーム”周辺トピックス少々
ゲームの持つストレス解消面
どんなストレスを抱えているかは、プレイヤーによっ
て異なる
一概に「爽快感を追えばok」というわけではない
「これはゲームであっても遊びではない」もあり
いわゆるシリアスゲーム
ゲームの複雑さ
基本的に、やることが増えれば増えるほどプレイヤー
は脱落しやすくなる
ゲームを始めてすぐに20枚ぐらい「how to play」を
スクロールしていくとか、もう辛さしか無い
最小限に絞って「面白い?」を問う
ゲーミフィケーション?
Webサービスなどにゲームのエッセンスを活かすこと
利用者の行動モデルを規定し、その中で種々の感情
を喚起するような仕組みを作るという点ではシリア
スゲームと同じ
ゲーム自体とは、出発点が違う。主にコンテキスト
も違う。そして、役割も違う
2Dゲームというものを
楽しく考える
2Dと3Dという話
次元…?
0次元から考えてみる
ラジオで野球中継を聞く
リアルサウンド∼風のリグレット∼
(故・飯野賢治氏)
次のスライドのような
ゲーム
この3D全盛時代にもう一度考えたい2Dゲームのこと
次元を減らす
=想像力で補う余地を増やす
2Dゲームってどういうもの
だろう
奥行きのないゲーム?
https://www.youtube.com/watch?v=HR6rAmIGY1M のサムネイルより引用
http://www.jp.playstation.com/software/title/jp0576npjj00039_000000000000000001.html より引用
http://www.nintendo.co.jp/wii/vc/vc_fz/vc_fz_04.html より引用
2Dゲームというのを改めて
考える
軸がないというよりは、軸を固定したもの
1つの軸が固定されているからこそ、想像力をかきた
てられる
軸への介入を要素として取り込んだものもある
プレイヤーからすると、当然複雑性が増す
ここでようやく開発環境の話。
“何で作るか”
クリエイターがプレイヤーとコミュニケー
ションする上での足かせになりうるもの
動作面: 起動が遅い, 動作が遅い, 反応が悪い, 安定性が悪い
開発面
頭の中にあるものを実際に作ってみて結果を見れるまでに時間がかかる
実用的なものを作りあげるまでに時間がかかる
開発中のテンション途切れを招きやすい
運用面
開発したものを世に出すのにお金がかかる
“Playground”ってなんぞ
KLabが2011年の秋から独自開発した
2D/2.5D向けゲームエンジン
Playgroundのアーキテクチャ
http://www.klab.com/jp/press/130926.html
2011年秋、開発のきっかけ
モバイル向けの有力なクロスプラットフォームの2Dエン
ジンが無く、cocos2d-xが”cocos2d-1.0.1-x-0.9.2”として
初期リリースされた頃だった
ソースコードに対する完全なアクセスのもと、ソフト
ウェアスタックをすべてコントロールできる環境が欲し
かった
2011年秋、開発のきっかけ
高速に動作させたいモジュールをC++で書ける環境が欲し
かった
自社のゲーム要件に必要なライブラリやツールはどのみち
内製の必要があった
技術的なチャレンジとしても価値のあるものと考えられた
※なお、@muo_jpは主にこの周辺で
使われるツールの開発と、Android
向けの各種チューニングなどをして
きました(エンジン本体は大半を同
僚の天才プログラマが書いてます)
“Playground”の特徴
基本性能が高め
OpenGLのドローコールを自動的に最適化し、高速描
画を実現している(iPhone 3GSでも、ある程度の複雑
さまでなら60fpsを出せる)
あまり開発上で意識しなくてもパフォーマンスを
稼げるエリアが多い
低遅延なサウンド出力ライブラリを標準で持つ
様々な環境で動作する
実動作環境はiOSかAndroidを想定しつつ、開発の利
便性のためにWindowsでも動作するようになってい
る
MacとHTML5はまだ実験中(最近Webブラウザ上へ
の移植を試みた)
ゲーム作りの柔軟性高め
主にLua言語を使い、応答性の良いクロスプラット
フォームなモバイルゲームを作れる
C++での拡張も書ける
C#サポートはまだ実験的
ゲームデータの扱いが強め
Unityでいうところのアセットバンドル(AssetBundle)
のように、ゲーム起動後に追加データをダウンロー
ドしてきて利用する仕組みもある
必要に応じてデータを暗号化して利用する仕組みを
持っている
全部入り
アプリ内課金の仕組みを標準で組み込んでいる
全てのソースにアクセスし、チューニングのヒントに
したり、更なる改善を施すことができる
全部無料(マジで)
“Playground”の弱いところ
GUIでペタペタとものを配置してプロパティを設定す
ればゲーム完成!とはいかない
エディタに弱いところいろいろある(クセがある=こな
れてない箇所が結構ある)し、ハイパーイケてるリア
ルタイムプレビューとかもない
利用人数が凄く少ない
前回のハッカソン!!
2013/11/02-03
第1回Playgroundハッカソン
腕利きのハッカー い
社内環境では平然とWindowsに統一さ
れていたが「Windows使いたくない!俺
はMacでやる!」といってMac向けの地雷
を踏み抜いて道を整備してくれた
@vvakameさん
「ネットワークアクセスのAPIドキュメン
ト無いじゃん!」といってOSS版と社内版
で微妙に異なるネットワークAPIを掘り進
み、共通ライブラリ化してくれた
@vvakameさん
「なんか新しいコードがコミットされたら
アプリを自動ビルドしてDeployGateに上げ
られるといいよねー」と唐突にMakefile書き
始めた@bols_blueさん。しかもMacより更
に地雷のUbuntu環境で。
ドキュメントとサンプルを読み
解き、エスパー全開で作業フ
ローを構築してくれた
@chun_ryoさん
もりもりとコードを書いてくれたHさん
と、ハッカソン発起から大半の仕切り
までやってくれた@mhidakaさん、時折
コードを書きつつも「画像素材ねー!」
となったら唐突にペンタブ取り出して制
作してくれた@garyumaruさん
ハッカソン中にエンジン中のリ
ソース開放ミス(バグ)を見つけ
てPull Requestを投げてくれた
@zaki50さん
C#→C++のコンバータに不足
していたforeach構文をゴリゴ
リ実装してくれた
@yfakariya(ふじわら)さん
物凄い勢いで地盤が整備され
ていくのを目の当たりにした
なので、けっこう進みやすくなってると思う
Playgroundでの開発の基本
Playground環境の導入
一式の入ったUSBメモリを回しま
す。ファイルコピーでポン、です
ちゃんとやるなら、https://github.com/KLab/PlaygroundOSS/
からソースを拾ってきてビルドなどです
実際にプロジェクトを触っ
てみる
めっちゃ頑張れば…
しかし今回は楽しんでいき
ましょう
特に、面白いゲームというのを
一緒に楽しんで考えてみましょう!
さて・・・そんな中で
軸を増やす・・・?
夢の中で った、ような……
http://www.madoka-magica.com/tv/story/01.html より引用
http://www.nintendo.co.jp/n09/vue/p_vwlj/ より引用
http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%AB%E3%83%9C%E3%83%BC%E3%82%A4 より引用
http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%AB%E3%83%9C
%E3%83%BC%E3%82%A4 より引用
この3D全盛時代にもう一度考えたい2Dゲームのこと
1995年 2014年
完全に一致
1995年 2014年
もし、Oculus Riftを使って次の世代の2D
ゲームを作ってみたい!という方が居たら…
一緒に考えてみましょう。どんなのが面白いだろう?
PlaygroundはWindowsでも普通に使えるし、ネイティブ拡
張もやり放題なので、バーチャルボーイっぽいこととか、
更に未来へ行きたいという人が居れば、来週Playground自
体の拡張を頑張ってみます
着地させるのけっこう大変
できなかったらごめんなさい
Playground関連の参考URL
Playground導入

http://brightechno.com/blog/archives/150
PlaygroundのLuaインタフェース

http://lab.klab.org/PlaygroundOSS/Doc/LuaAPI/
Lua入門

http://dotinstall.com/lessons/basic_lua

http://starcode.web.fc2.com/

More Related Content

この3D全盛時代にもう一度考えたい2Dゲームのこと