DUICUO

迅速なゲーム開発のための10の鍵

[[256848]]

10月初旬、Opensource.comがスポンサーとなった第1回Open Jamには、世界中から45チームが参加しました。これらのチームはわずか3日間でオープンソースソフトウェアを使ったゲームを作成し、競い合いました。そして、3チームが優勝を果たしました。

大学で、参加希望者全員を対象としたOpen Jamイベントを開催しました。週末はコンピュータラボを貸し切り、オープンソースソフトウェアを使ったゲームとゲームアセットの作り方を参加者全員に教えました。ゲームエンジン:Godot、音楽:LMMS、2Dアセット:GIMP、3Dアセット:Blenderです。このイベントでは、「Loathsome」「Lost Artist」「Paint Rider」(私が制作)の3つのゲームが制作されました。

私のゲーム開発とゲーム開発の経験に基づいて、ゲーム エンジン、コーディング、迅速なゲーム開発について学んだ 10 の教訓を紹介します。

1. 規模の制限

大規模なアドベンチャーゲームや、お気に入りのゲームに匹敵するようなゲームを作りたくなるのは当然です。ある程度の経験があれば、ゲームジャムイベントの枠を超えた何かに挑戦してみるのも良いでしょう。しかし、使える時間を過大評価してはいけません。ゲームジャムイベントの良いところは、時間が非常に限られているため、コンセプトから最終製品までを迅速に進めなければならないことです。だからこそ、規模を限定することが非常に重要なのです。

今回のオープンジャムのテーマは「痕跡を残す」でした。その話題が出た途端、友人たちと私はどんなゲームがふさわしいか話し合いました。一つのアイデアは、プレイヤーが敵に痕跡を残せる3Dボクシングゲームを作ることでした。しかし、私は3Dゲーム制作の経験がほとんどなく、もしうまく作ろうと思ったら、実際にプレイできる形に仕上げる前に、痕跡をリアルに表現したり、ヒットを効果的にしたりする方法を学ぶのに膨大な時間を費やさなければならないだろうと思いました。

2. できるだけ早くプレイする

これはゲームジャムイベントへの私の率直なアドバイスです。コアとなるメカニクスを開発し、コードを素早く書いてテストを行い、完成版ゲームにする価値があるかどうかを判断できるようにしてください。締め切りまで残り数時間しかない状態でゲームがプレイ可能になるのは避けましょう。Open Jamのような3日間のイベントでは、動作するデモの作成に数時間以上費やすべきではありません。

3. シンプルに

追加したい機能があればあるほど、開発期間全体は長くなります。すぐに動作させることができないため、新機能の提出にどれくらいの時間がかかるか予測できません。高得点のアーケードスタイルのゲームは、ゲームジャムで好成績を収める傾向があります。なぜなら、それらは本質的にシンプルなからです。コア部分が完成したら、最終的なゲームが正しく動作するかどうかを心配することなく、機能の追加やブラッシュアップに取り組むことができます。

4. 他のゲームからインスピレーションを得る

完全にオリジナルなものを作りたいと思うかもしれませんが、プロトタイプがあれば、それを基に構築していくのに非常に役立ちます。何が面白いのかをすでに知っているので、繰り返し作業にかかる時間を節約できます。実践経験を積めば積むほど、自分のアイデアを取り入れた大規模なゲームを作りやすくなると自分に言い聞かせてください。つまり、他の人の作品を再現することでも、素晴らしい練習になるということです。

Open Jamのテーマである「痕跡を残す」ことを踏まえ、プレイ中にペイントの痕跡を残し、自分がつけた跡が見えるゲームを作ったら面白いだろうと考えました。昔のアニメーションゲーム「Line Rider 2 Beta」(後に「Paint Rider」に改名)を思い出し、Controlキーを押しながら痕跡を描けるというイースターエッグの存在も知っていました。そこでコンセプトを簡素化し、上下移動もボタン1つだけで行えるようにしました(昔ながらの飛行機ゲームのような感じです)。JAMで1~2時間ほどプレイした後、ボタン1つで上下に動かして小さな黒い円の痕跡を残せる基本モデルが完成しました。

5. 可用性を見逃さないでください。

できるだけ多くの人がゲームをプレイできるようにしましょう。Open Jamに提出されたゲームの一つにバーチャルリアリティゲームがありました。確かに素晴らしいのですが、VR機器を持っている人が少なかったため、ほとんど誰もプレイできませんでした。幸いなことに、開発者たちは上位入賞を目指していたわけではなく、ただ練習したかっただけだったのです。しかし、自分のゲームを多くの人と共有したい(あるいはゲームジャムのイベントで優勝したい)なら、アクセシビリティは非常に重要です。

Godot(そしてほとんどのゲームエンジン)は、すべての主要プラットフォームでゲームを公開できます。特にItch.ioでゲームを投稿する場合、ほとんどのプレイヤーはブラウザ版で十分です。しかし、できるだけ多くのプラットフォームとOSで公開するようにしてください。Paint Riderをモバイルで公開しようとしたこともありましたが、私の技術スキルには限界があります。

6. 難しくしすぎないようにしましょう。

ゲームの習得やプレイにあまりにも手間がかかると、プレイヤーを失う可能性があります。ゲーム企画段階では、シンプルさと規模を抑えることが重要です。繰り返しになりますが、開発に10日から2週間かかる壮大なゲームのアイデアを思いつくのは簡単です。重要なのは、楽しくてシンプルなゲームを作ることです。

母にペイントライダーを紹介したところ、すぐに遊び始めたので、それ以上説明する必要はないと思いました。

7. あまりきちんとしすぎる必要はありません。

デザインパターンやコードの再利用性と適応性を確保することに時間を費やすことに慣れているなら、少しリラックスしてみましょう。デザインについて考えすぎると、ようやくゲームをプレイできる段階に達したときに、あまり楽しくないことに気づき、修正するには手遅れになってしまうかもしれません。

このプロセスは、より複雑なゲームを簡素化する場合にも当てはまります。概念実証モデルを素早くコーディングし、完成版ゲームとして完成させる価値のある要素が見つかるまで作業を続け、その後はそれをサポートする完璧なコードの構築に集中できます。Jameキャンペーン用のゲーム開発は、概念実証モデルを迅速に開発するようなものです。

8. しかし、カジュアルになりすぎないようにしてください。

一方、スパゲッティコードは、コード量が少ないゲーム開発においても、制御不能になりやすい傾向があります。幸いなことに、ほとんどのゲームエンジンはデザインパターンを考慮しています。例えば、Godotのシグナリング機能では、ノードは「接続」されているノードにデータを送信できます。これは、設計の中で自動的に形成されるオブザーバーパターンです。ゲームエンジンのこの機能を活用する方法を知っていれば、コードを素早く記述でき、読みにくいコードになることもありません。

9. フィードバックを得る

自分がやっていることを人々に見せましょう。試してもらい、彼らの反応を見てください。彼らがどのようにゲームをプレイし、何か予想外の発見があるかどうかを見てみましょう。ゲームジャムにDiscordチャンネルなどがあれば、そこにゲームを投稿すれば、きっとフィードバックをもらえるでしょう。Paint Riderの大きな特徴の一つはキャンバスのループ機能で、前の絵を見ることができます。なぜゲームにこの機能がないのかと聞かれるまで、私はその仕組みについて考えたこともありませんでした。

チームコラボレーションでは、開発プロセスに関与し、周囲の人々にフィードバックを提供できる人がいることを確認します。

そして、同じように他の人を助けることも忘れないでください。他の人のゲームをプレイしているときに、自分のゲームに役立つ何かを発見すれば、それは双方にとって有利な状況になります。

10. リソースの入手先

自分でリソースをすべて作ってしまうと、本当に足手まといになります。Open Jamの期間中、新機能の実装やバグ修正に追われていたのですが、Loathsomeの開発陣がメインキャラクターの描画にかなりの時間を費やしていることに気づきました。ゲームのアートスタイルを簡素化し、適切なオーディオビジュアル要素を取り入れるという方法もありますが、他にも選択肢はあります。クリエイティブ・コモンズライセンスのリソースや、Anttis Instrumentalsのような無料音楽サイトから探してみるのも良いでしょう。あるいは、可能であれば、専任のアーティスト、ライター、ミュージシャンでチームを組むのも良いでしょう。

他にも役立つソフトウェアとしては、デジタル ペイントに適したオープンソースの 2D 画像生成ソフトウェアである Krita (特に描画タブレットを持っている場合)、およびゲーム サウンド効果を生成する SFXR (多数の調整可能なパラメータを持つが、開発者が言うように「基本的な使用方法はボタンをランダムに押すことです」) などがあります (Paint Rider のすべてのサウンド効果は SFXR を使用して作成されています)。また、Calinou による、数が多く整理されたオープンソース ゲーム開発ソフトウェアのリストも試してみることができます。