- enjoy_enjo_
- 39016
- 54
- 2
- 89
某大手ゲーム会社エンジニアマネージャー ゲームプログラマ 趣味はインディーズゲーム制作。クライアント・サーバー全て一人開発 料理とバイクも大好きです 新作「水の星と魔女」 instagram.com/izu_pastelorbit 前作「隣人は魔王」 my-neighbor-lucifer.jimdofree.com
ゼルダ。バグで「赤い月を任意に起こせる」話にどんな実装やん。。。と驚いていたけれど、最近の検証動画で良くわかった error handlerに赤い月仕込むのリードプログラマ天才過ぎるw youtube.com/watch?v=EiTlaD… #ティアキン #ゼルダの伝説
2023-06-20 00:56:31もの凄くシンプルに言うと、ゼルダほど物理エンジンをちゃん昇華させたゲームはあんまりなくて(過去ログ参照)、どんな挙動をするか完全に想定出来ない ↓
2023-06-20 00:59:10イコール、全ての挙動なんてとってもじゃないけれどデバッグ出来ない ↓ それが物理エンジンゲームメカニクスの良い所&悪い所 ↓
2023-06-20 01:00:34ここで、リードプログラマが仕込む選択肢は二つ エラーを無視して進行させるか、 「想定外のエラーが起きたら、中断」 これは、バグフリーズで「問題が起きました。起動画面に戻ります」と同じ 致命的なエラーが起きた場合こうなります しかしゼルダは凄かった ↓
2023-06-20 01:04:14置いてはいけないオブジェクトを無限に置けたり色々バグだらけなのだけれど、その結果「問題が起こりました」ではなく「赤い月」へ飛ばしている このイベントを経るとメモリはガベージコレクトどころかアプリ再起動に匹敵する強制エラーハンドラ ↓
2023-06-20 01:07:29世界感を壊さない素晴らしい実装だと思う 恐らく、エンジニアが提案したのでしょう。普通のディレクターならNGを出すでしょう(めっちゃバグですからね) が、ユーザーの爆発的増加を見越したチームとしての判断なのでしょう すごいゲームですが、すごいすごいチームです
2023-06-20 01:11:50あ、ちなみに、本投稿は全部僕の妄想です youtuberさんの検証動画を拝見し、勝手に閃いただけです まあ間違い無いでしょうが、一応僕の妄想です
2023-06-20 01:14:32ゼルダの赤い月って、こういうことだったのか!! 天才すぎるだろ、、、、 twitter.com/pastel_orbit/s…
2023-06-20 09:48:41これはなるほどと思った。 単なる一つのイベントとしてしかとらえてなかったけど、そうなのかも。 twitter.com/pastel_orbit/s…
2023-06-20 12:33:32あ〜、エラー/例外処理でアサート→再起動でなく、赤い月(グレートリセット)に飛ばしてるのか〜!?なるほどな〜 twitter.com/pastel_orbit/s…
2023-06-20 09:22:27これは確かにすごい、世界観を崩さないままリセットかけてるのか…(推測ではあるけど)! twitter.com/pastel_orbit/s…
2023-06-20 12:22:19タイトルバック相当の強烈なリセットを世界観に仕込めばエラー画面を出さずにゲーム内で完結できるのかすごいな twitter.com/pastel_orbit/s…
2023-06-20 10:00:31おお、めちゃくちゃ面白いこれ。 エラーハンドリングをどう物語に融合させるか。全部署間でゲームの世界観を担ってる意識が共有できてないと出来ない解決策。 twitter.com/pastel_orbit/s…
2023-06-20 09:11:41あれがオブジェクトのリセットなのは前作の頃からわかってたけど、何でも出来るゲーム故の回復不可能な問題がゲーム中で発生したときにすべてを無かったことにするためにも呼び出してたのね。 twitter.com/pastel_orbit/s…
2023-06-20 13:23:02あー。なるほどメモリエラーとか問題おきたら全体クリーン化として発動するように仕込んであるのか。バグじゃなくて仕様、と。考えた人たしかにえらい twitter.com/pastel_orbit/s…
2023-06-20 21:11:40なるほど。サーバーだけでなくクライアントでも、メモリ増えすぎたら強制リセット的な対処は有効。 twitter.com/pastel_orbit/s…
2023-06-20 07:23:07世界観を壊さないエラーハンドリング。 生真面目に「エラーです」って表示するだけが全てじゃないんだなあ。 twitter.com/pastel_orbit/s…
2023-06-20 08:20:28Unityとか触ってて思うけど、物理エンジンのプログラミングってウェブプログラミングと全く違うアプローチできて面白い。こんなエラーハンドリング、神そのものじゃん😂(もし予想どおりなら) twitter.com/pastel_orbit/s…
2023-06-20 09:13:49なるほどガベージコレクタか 想定外のオブジェクトやらがあったとしても、世界観を壊さずリセットさせるのは上手いやり方だなー twitter.com/pastel_orbit/s…
2023-06-20 12:47:30これ興味深いよなと。 ガベージコレクトとエラーハンドラを共用するのは、おそらくそれしかないのだろうな、という気もする 天才的な発想、というより、「それはそうよね」感のほうがちょっと強い twitter.com/pastel_orbit/s…
2023-06-20 12:34:13