面白いスクラッチゲーム31ページ目
31ページ目では下記ジャンルのスクラッチゲームを紹介していくよ!
「プラットフォーマーのチュートリアル」と言いながら、実は本格的なプラットフォーマーゲームになってるのが面白いポイント。プレイヤーの動きには慣性と重力がしっかり効いていて、壁に当たったときの押し戻し処理も丁寧に実装されてる。チュートリアル部分では矢印の指示に従うだけなんだけど、途中でコントロールが反転する「ミラーモード」が入ったり、暗闘ステージがあったりと、意外とギミック満載。
総ブロック数12000超えの狂気。サンズの頭・胴体・足を別スプライトで管理して表情やポーズを細かく切り替えたり、23種以上の攻撃パターンを枠のサイズ変更と連動させたり、青ソウルの重力切り替えやリフトの乗り移り判定まで丁寧に作り込んでてヤバい。負けた回数でセリフが分岐するし、クラウド変数で最速クリアタイムも記録される。
広大なワールドを生成するために、80×40のマップをランダムで作り出してるんだ。でもこれだけだと重くなっちゃうから、画面内に映るブロックだけをリストで管理して描画する仕組みになってる。これが「オンスクリーン」っていう最適化技術で、数千個のブロックがあっても軽快に動くんだよ。
音楽ゲームのIncrediboxって、普通はクローンで複数のキャラを管理するんだけど、このスクラッチはそれを使わずに個別のスプライトとリストで実装してるんだ。20個のキャラクターと7つの音楽パートの状態を全部リストで管理して、タイマーを使って4つのループを順番に送信することで音楽を同期させてる。しかもミュート・ソロ機能まで実装してて、各キャラごとに音量やエフェクトを細かく制御できるようになってる。
本家のスイカゲームと違って、落ちてくるフルーツが「柿」だけに固定されているのが最大のポイントだよ。通常なら小さいフルーツからランダムで落ちてくるんだけど、このバージョンでは変数を特定の値に固定することで、常に同じサイズの柿しか出現しないようにプログラムされているんだ。しかもスコアが最初から100京という天文学的な数値からスタートするように設定されていて、まさに「チート」版として作られている。
このスクラッチは、スクラッチで本格的な2Dマインクラフトを実現するために、とんでもなく高度なタイル描画システムを構築してるんだよ。大量のクローンを使って画面に映る部分だけを効率的に描画し、16×13個のタイルクローンがカメラの動きに合わせてリアルタイムで更新されてる。さらに、ランダム地形生成、レッドストーン回路、水の物理演算、TNT爆発まで全部スクラッチで実装してるから、まさにプログラミングの技術…
Paper Marioの戦闘システムを完全再現した高度なアクションコマンド機能が圧巻だね!ジャンプ攻撃時にタイミングよく上矢印キーを押すと攻撃力が2倍になったり、ハンマー攻撃では左矢印キーを長押しして赤いゲージが光ったタイミングで離すとクリティカルヒットになる仕組みが実装されている。さらに敵の攻撃時には下矢印キーでガード判定も可能で、距離センサーと組み合わせたタイミング制御が絶妙なんだ。
ゾンビのAIがめちゃくちゃよくできてるんだよね。クローンで生成されたゾンビが、プレイヤーのx座標を常に監視して追いかけてくるんだけど、ただ追うだけじゃないのがスゴいところ。速度に0.9をかけて摩擦を再現してるし、壁にぶつかったら少しずつy座標を上げて登れるかチェックして、ダメならジャンプして乗り越えようとする。
変数とメッセージを使った状態管理がめちゃくちゃうまく設計されているよ。各アイテムに「シーン適合度」を表す数値を割り当てて、トップス、ボトムス、靴の組み合わせが選んだシチュエーションに合ってるかを複雑な論理演算で判定しているんだ。例えば街なら適合度が1や1.5のアイテム、スキー場なら4のアイテムが正解になるように設定されていて、AND演算とOR演算を組み合わせた条件分岐で「完璧なコーディネート」かど…
広大なマップを限られたステージで実現するために、相対座標システムを巧みに使ってるんだ。プレイヤーの位置をグローバル変数x vgとy vgで管理して、ポケモンやポケストップはその値を基準に自分の座標を毎フレーム計算してる。つまり、プレイヤーが動いても実際はプレイヤー自身は動かず、周りのオブジェクトが相対的に移動することで無限に広がる世界を作り出してるわけ。
マウスでエイムして戦車の砲台を操作するシステムが秀逸だよ。砲台スプライトがマウス座標を常に追いかけて向きを変え、クリックでクローンの弾を生成する仕組みになってる。さらに2人同時プレイにも対応していて、1Pは矢印キー、2Pはキーで別々に動かせるんだ。
このゲーム、忍者がひたすら走り続けるオートランアクションなんだけど、面白いのは「プラットフォーマーエンジン」の作り込みだね。重力を数値で表現して、地面に触れたら跳ね返る処理や、壁に当たったら滑らかに修正する処理を変数で管理してるんだ。特に斜面を登る処理が丁寧で、キャラが地形に引っかからないよう、ピクセル単位で上下に調整しながら動かしてる。
このスクラッチでは、クローン機能を巧みに使って連続的にボールを飛ばす演出が見どころだね。10個のクローンを0.05秒間隔で生成し、それぞれがグライド機能で滑らかに移動することで、まるで残像のような視覚効果を生み出しているんだ。さらに、メッセージを使った複数スプライトの連携が秀逸で、ボールが飛ぶ→キャラクターが反応する→次のアクションが始まる、という一連の流れを自然につなげている。
マウスを左右に動かすと、部屋の中を見渡せるようになってるんだよね。これ、マウスのx座標を常にチェックして、一定値を超えたら背景をスライドさせてる仕組みなんだ。例えば画面の右端にマウスを持っていくと、部屋が左にスクロールしていく感じ。
友達とオンラインで一緒に遊べるって最高だよね!このスクラッチでは、クラウド変数を使って2人のプレイヤーの位置やチャット内容をリアルタイムで同期させてるんだ。キーボードの1〜5キーを押すと、あらかじめ設定されたメッセージが相手の画面に表示される仕組みになってるよ。
リアルタイム言語切り替えシステムがこの作品の最大の見どころだよ。1キーで日本語、2キーで英語に瞬時に切り替わる仕組みで、会話中でも自由に言語を変更できるんだ。しかもただの翻訳機能じゃなくて、キャラクターが一文字ずつ喋る演出にも完璧に対応してる。
このスクラッチで一番すごいのは、本格的な3Dレンダリングエンジンを完全にスクラッチで実装していることだね。回転行列を使った3D座標変換から、透視投影でスクリーンに描画するまで、全部数学的に計算してる。特に注目したいのは、カメラの向きを三角関数で制御して、プレイヤーの視点に応じて3D空間を正確に描画している点。
まるで本物のマリオパーティーみたいな本格的なメニューシステムが圧巻だね!タイトル画面からキャラクター選択、難易度設定、ターン数選択、ボード選択まで、すべて細かく作り込まれている。特にすごいのは複数の変数を使った状態管理で、パーティーモードとソロモードを切り替えたり、選んだキャラクターを記憶したりと、市販ゲームレベルの仕組みになっている。
マウスで狙って撃ちまくる本家リスペクトの1v1バトル。WASDで滑るような慣性移動、距離が近づくと殴りかかってくるボットAI、5キャラそれぞれ別物に組まれた攻撃ロジックがガチ。トロフィー貯めてキャラランク上がるとボットも強くなる仕様で、1904ブロックの愛が詰まってる。