非常に適当なゲームアルゴリズムとかその周辺まとめ

(ヽ´゜ω゜)ノ<ちょっと前にちょっと話題になってたゲームアルゴリズムのパターン的な話を中心にまとめましたが、抜けてるところと直接は関係ないツイートも混ざってます。編集自由です
5
akisute/Masashi Ono @akisutesama

データを動かすコードの書き方は生まれてこの方ずっとやってきたのである程度は育ったのだが、表現を作るコードの書き方がぜんぜんわからないので、そういうのを勉強する資料がほしいのだけれど、何かいいものないですかね(´・_・`)

2013-12-15 16:40:03
akisute/Masashi Ono @akisutesama

表現を作るコードというのは、例えば何だけど、 ・ヒットストップの書き方 ・命中時に出るパーティクルを美味しそうに動かす書き方 ・アングリーバードのレッドの作り方(アレは断じて剛体が9.8m/s2環境下で飛ぶ世界ではない、浮遊体が空を飛ぶ動きになっている)

2013-12-15 16:41:29
akisute/Masashi Ono @akisutesama

こういうのってなんかあるはずなんだよね。ほら例えばウェブならMVCだのMVVMだのIOは非同期が常識だろJKだのなんだのあるやん。でも表現側に関してはまるでそういうテンプレートというかデザインパターンというかコーディングパターンを見た記憶が無い。俺に接点がないだけかもだが。

2013-12-15 16:42:39
akisute/Masashi Ono @akisutesama

無いワケがない。絶対にある。それが必要。

2013-12-15 16:42:56
岩崎啓眞@スマホゲーム屋+α @snapwith

@akisutesama ない(;´Д`) ある程度のパターンでは説明出来るんだけど、そこから先を言語化するのがスゴく難しくて、僕も見ていうことしかできないところなんだよね。

2013-12-15 16:44:01
akisute/Masashi Ono @akisutesama

@snapwith 賭けてもいいですが無いわけがないです。こういうのがない状態でAAAのタイトルは作れません。全部が全部職人芸で産業が成立しているわけがない。

2013-12-15 16:44:48
akisute/Masashi Ono @akisutesama

@snapwith 本当に無いならゲーム業界の体質です。絶対にあるのでそれを外に出してないだけです。 

2013-12-15 16:45:31
岩崎啓眞@スマホゲーム屋+α @snapwith

@akisutesama 『ある程度』はパターンに出来るんだよ。だからそれぞれのスタジオにそういうノウハウが積まれていて、得意不得意が出てくるわけ。

2013-12-15 16:45:32
岩崎啓眞@スマホゲーム屋+α @snapwith

@akisutesama 現にゲームロフトでもそういうノウハウはメニューまでしかなくて、エフェクトとかになるとプレイして「これ気持ちいいよね、悪いよね、もうちょっと速く」とかアートとプログラマとのフィードバックループを繰り返す方法だったよ。ガイドラインがあるだけ。

2013-12-15 16:47:54
akisute/Masashi Ono @akisutesama

@snapwith それは会社レベルです。現場レベルに無いわけがないです。作ってる本人が毎回このように書いているというコードのパターンが必ずあるはずです。そしてそれらはおそらくどの会社に言っても全く接点がなくても同じようなパターンが有るはずです。単にパターンが抽出されていません。

2013-12-15 16:51:05
岩崎啓眞@スマホゲーム屋+α @snapwith

@akisutesama ああ、それはあるよ。間違いなく。ただそれは毎回微妙に要求される調整が違うからなあ。そこらへんは一度徹底的に議論して煮詰めてみたいモンの一つではある。

2013-12-15 16:52:34
akisute/Masashi Ono @akisutesama

@snapwith エンタープライズとかだと例えばGoFみたいなエライ連中がそういうパターンを発見し、抽出し、名付け、育て、書籍にして広めたお陰で今があるわけです。ゲーム業界にはそれがない。まぁ広めるメリットもないでしょうが、それさえあれば多分ちょっとした革命ですよ。

2013-12-15 16:52:53
岩崎啓眞@スマホゲーム屋+α @snapwith

@akisutesama デザインパターンの変形でいわばゲームUXパターンだな・・・

2013-12-15 16:53:33
akisute/Masashi Ono @akisutesama

結構出てくるな。gamasutoraはいぜん教えてもらったが、 http://t.co/g95DfdbwXG 漁るだけでもだいぶマシナレベル

2013-12-15 17:24:52
akisute/Masashi Ono @akisutesama

だがこれでも必要最低限ギリギリ程度でしかない。MySQLの負荷対策やらテーブル分割のやり方なんてググれば山ほど出てくるのに、軽量で美味しそうに見えるコインチャラチャラ飛び出すパーティクルの作り方はググってもでないのは不公平じゃないかね?

2013-12-15 17:26:12
akisute/Masashi Ono @akisutesama

いやまぁ経験領域とかバッドノウハウはもちろんその上にあるんだが、そんなもんどんな職種だって同じで、バッドノウハウ以前の知識にすら到達しないのはありえん

2013-12-15 17:27:26
akisute/Masashi Ono @akisutesama

結局サンプルとコードを山ほど見て山ほどパクって覚えるしかないか。

2013-12-15 20:28:08
akisute/Masashi Ono @akisutesama

http://t.co/4r0cMf6pxH そそ、こういうのこういうの。同人誌かよオイッと思わんでもない。こういうノウハウが商業ベースの技術本で出てきて欲しいんだけど。探せばあるか。

2013-12-15 20:45:50
akisute/Masashi Ono @akisutesama

そもそも最近のゲームは乱数表ねえからなぁ・・・arc4random()とかrandom()とか時前のMT方のrandom使うから

2013-12-15 22:28:49
Yuki Tamura / estie EM @isoparametric

割とマジレスすると、今のご時世はオブジェクトの解放時期は分からなくてもよいんだけど、決して無限の描画や計算リソースがあるわけではないので、リソースコントロールが求められていると思う。

2013-12-16 18:55:31
岩崎啓眞@スマホゲーム屋+α @snapwith

RT承前。わりとマジレスすると、これのせいでフレームレート保証が出来ない問題ってのは正直むかつく。あっしは厳密にフレームレートがコントロール出来るゲームが好きだし、フレームレートがコントロール出来ないと基本的に「ゲームは気持ちよくなくなっていく」。

2013-12-16 19:41:59
岩崎啓眞@スマホゲーム屋+α @snapwith

フレームレートが不安定になってジャンプとかしてガタつくのって、人は簡単に気がつくし、それってスゴく気持よくない「イラっとする要素」。フェードアウト1秒って例えば60フレームだけど、これの中抜けしたりすると、モノスゴく汚く見える。

2013-12-16 19:43:29
Nao_u @Nao_u_

例えば「いい感じに動く敵のアルゴリズム」みたいなのはプレイヤーの性能次第で全然変わってきたりなど、デザインパターンなどと比べるとジャンルや作る物によって必要な要素が違いすぎて、言語化しづらい雑多なノウハウが多いためになかなか一般化できる形でまとめづらい、みたいな事情もありそう

2013-12-16 21:48:08
Nao_u @Nao_u_

「弾幕シューティング向けのアルゴリズム」くらいにまで限定すればそれなりに知見をまとめられたりするかもしれないけど、歴史や各種システムまで含めて網羅するのは大変だし、「それさえ学べば新しくて面白いシューティングが作れるか?」というとそういうものでもなかったりもしそう

2013-12-16 21:48:34