PixelTread
ワークフロー

GMS2プロジェクトのワークフロー:フォルダを開いてプレイテストまで

03
シナリオ

カメラが揺れるプロジェクト

現在ではGameMakerを指してGMS2と書く人もまだ多いです。プレイヤーが往復して歩き、位置が小数値を保持しているためにカメラが揺れるとします。プロジェクトフォルダを開き、症状を1文で説明してPixelTreadにコードを探させます。エージェントはlist_dirとglobでフォルダをマッピングし、read_fileで移動とカメラのスクリプトを読み込み、差分として小さな変更を提案します。あなたが決定するまで何も変化しないため、最初のセッションは各ツールが何をするのかを学ぶ安全な方法でもあります。このループはほとんどの小さなバグに適用できます:説明、読み込み、確認、テスト。各パスはエディタで終了し、そこで再生ボタンを押して結果を自分で確認します。最初の修正で十分でない場合は、何が変わったかを説明し、次のカードは最後のものを基に構築されます。作業中はプロジェクトをエディタで開いたままにしてください。

01

フォルダを開く

チャットの作業フォルダとしてGameMakerプロジェクトフォルダを選択し、ファイルツールがスクリプトやプロジェクトのテキストファイルを確認できるようにします。各バグに対して新しいチャットを開始し、すべての会話が1つの問題と1つの差分に焦点を当てるようにします。作業フォルダはファイルツールの境界線なので、プロジェクトにのみポイントし、それ以外にはポイントしないようにしてください。そのフォルダの外にあるものは、ファイルツールではカバーされません。

02

問題を説明する

何が見えて、どこで起きているかを記述します。例えば、プレイヤーが回転する際にカメラが揺れること、および該当するスクリプト(知っている場合)に言及します。具体的な症状は、エージェントがgrepで検索できる対象を提供します。すでに試したことを追加してください。そうすれば、エージェントがそれを繰り返すのを防げます。短い文が効果的です。

03

差分を確認する

各カードを読み、差分を開き、理解できる行のみを受け入れます。残りを拒否し、その理由を述べると、エージェントは再試行します。Ask firstモードは、ファイルを変更するすべてのアクションの前に一時停止するため、あなたの背後で何も保存されません。拡張されたカードを開いて、要約行だけでなく完全な差分を表示します。

04

ビルドとテスト

GameMakerエディタでビルドを実行し、ルームを再生し、何を見たかを報告して、次のステップが事実から始まるようにします。ビルドが失敗した場合は、ログをフォルダ内のファイルに貼り付け、エージェントにそれを読み込ませます。次に、チャットに結果を記録して、次のリクエストが明確な開始点を持つようにします。受け入れられた変更ごとに同じテストを、同じルームで実行します。

小さな移動スクリプト

scr_move.gml
// Move an object with the arrow keys
function scr_move(_speed) {
    var _r = keyboard_check(vk_right);
    var _l = keyboard_check(vk_left);
    var _d = keyboard_check(vk_down);
    var _u = keyboard_check(vk_up);
    x += (_r - _l) * _speed;
    y += (_d - _u) * _speed;
    // keep the position on whole pixels
    x = round(x);
    y = round(y);
}

この関数はkeyboard_checkで矢印キーを読み取り、xとyを速度値だけ移動させ、両方を丸めてスプライトが整数ピクセル上で描画されるようにします。丸め処理は、上記の揺れに対する修正です。このようなスクリプトは、エージェントが開き、変更し、差分として表示できるまさにそのものです。ルーム内で1分以内にテストできます。まずスクリプトアセットとして保存し、1行ずつ変更してください。エージェントに各変更の上にコメントを追加するよう依頼し、後で見つけやすくします。_speedのようなプレースホルダ名は簡単に変更できます。

GameMaker Studio 2で開始されたプロジェクト向けの4つのタスク

自分のスクリプトを変更して学ぶ

人々はよく、GameMakerコーディングを本当にどうやって学ぶのかと尋ねます。良い答えは、実際のスクリプトを変更して、何が起こるかを見ることです。小さなプロジェクトを開き、エージェントにスクリプトを1行ずつ説明するよう依頼します。エージェントはread_fileでファイルを読み込み、web_searchを使用して公式マニュアルから関数名を引用します。次に、より速い歩行速度など、小さな変更を1つ依頼します。Ask firstモードで差分を読み、受け入れ、ビルドして再生します。毎日新しい変更で繰り返し、エージェントにwrite_fileでノートファイルを作成させ、各編集で何を学んだかを後で確認できるようにします。ゆっくり進んでも、それは進歩です。

半透明部分のあるスプライトを描く

スプライトの一部のみを透明にしたい場合があります。例えば、水に立っているキャラクターの下半分など。エージェントはread_fileで描画スクリプトを読み、grepで現在の描画呼び出しを検索し、draw_sprite_part_extでスプライトを2つの部分に分けて描画するedit_fileの変更を提案します。その1つはより低いアルファ値を使用します。Plan onlyモードでは、まず2つの部分を表示できます。短く、テスト可能です。差分を受け入れ、ルームを実行し、動きの中で目立ちやすい1ピクセルの隙があるため、両方の部分の間の継ぎ目をピクセルレベルで確認します。水位が動く場合は、エージェントに分割を変数に紐付けるよう依頼します。

壁の前に移動を止める

オブジェクトと衝突する前に移動を止めるには、スクリプトは次の位置をテストし、その後で移動すべきです。エージェントに移動スクリプトを読み込ませ、ターゲット位置に対するplace_meetingチェックで各ステップをラップするよう依頼します。edit_fileカードは新しい行を表示し、Shellはビルドコマンドの終了コードを報告します。ルームで壁に歩いて入ります。まず差分を確認し、次にゆっくりと速い速度でテストします。速いオブジェクトは薄い壁をすり抜けられる可能性があるため、そうであればより小さなステップを依頼します。テストルームは小さく、壁とプレイヤー1つだけにしてください。

ビルドログの最初のエラーを見つける

長いビルドログは重要な行を隠します。ログをプロジェクトフォルダ内のテキストファイルとして保存し、エージェントにread_fileで開かせ、grepでerrorという単語を検索させます。エージェントは最初のエラーとスクリプト名、行番号を報告し、そのスクリプトを読み取ってedit_fileで修正を提案できます。最初のエラーを修正すると、その下にあるエラーの多くが解消されることがよくあります。Ask firstで差分を受け入れ、再度ビルドし、新しいログと古いログを比較してエラーの数が減ったかどうかを確認します。ログがクリーンになるまで繰り返します。

Windows用のPixelTread

このワークフローを自分のプロジェクトで実行する

PixelTreadをダウンロード ↗