
Switch2を軽食を食べながら遊ぶ社内イベントに参加し、11/20に発売された「カービィのエアライダー」を体験させていただきました。
社内飲み会より比較的少人数で学生時代の放課後のゆるい雰囲気を味わえてとても良かった
カービィほぼミリしらなのでキャピィをはじめて知った。帽子は取れるらしいのでキノピオと同じタイプかと思ったら、キノピオのそれは帽子ではなく頭らしい...
途中絵しりとりを同期としていました、矢印が既存の絵に繋がり始めてグラフになりました
実績解除システムの中身
(微ネタバレ注意)「カービィのエアライダー」にもクリアチェッカー(いわゆる実績解除システム、スマブラで言うクリアゲッター)がありました。
解放条件がゲーム中のあらゆる動作に結びついていてどのような実装になっているか気になって仕方がありませんでした。
クリアゲッターの例
「エアライド U.F.O.をコピーしたあと逆転1位でゴールする」
「シティトライアル:エアグライダー 総計30秒以上飛び続ける」
「エアライド:マシーンガストで蒸気機関車の上に乗る」
実績システムって、どうやって実装したの? : r/gamedev 等を見る限り、実績解除システムは大抵「オブザーバーパターン」を使っていそう?
ゲームループ開始時とかコピー時とか周回時とかオブジェクト接触時とかあらゆるゲーム内行動がイベントとして発行され、離れたイベントリスナがそれを受け取るイメージ?
ソシャゲにあるようなミッション機能やカード効果も本質は同じで、ゲームロジックはイベント駆動の塊で実現されているといっても過言じゃない気がしている。
思えばUnityでローグライクを作ろうとしたとき(下図) も大富豪を実装しようとした時もオブザーバーパターンでした。

イベントが増えると複雑になり整合性の維持が大変そう。この痛みをDDDよろしく型付け等で静的に軽減するテクニックがあるのかは知らない。
静的に軽減できずとも、有名なゲームの開発手法の紹介資料を見ると色々な工夫でこの複雑さに対処しているらしい。
【CEDEC 2019 フォローアップ】Shadowverse流開発手法 ~QAコスト削減と堅牢性強化を実現するプランナーによるテスト駆動開発~ | Cygames Engineers' Blog
人間よりAIのほうがレッスン上手? 「学マス」で新カードのバランス調整を迅速かつ確実にするための“AI開発手法”とは[CEDEC 2024]
それでは。