かなり簡単な質問ですが、答えはわかりません。
マウスを使用するユーザーコントロールを開発するか、マウスを完全に無視してボタンコントロールのみを使用する必要があります。
例は次のとおりです。
アイテムをクリックしてピックアップするか、アイテムの近くに移動してボタンを押してピックアップします。
特にPC以外のプラットフォームをターゲットにしたい場合、これについてどう思いますか?
かなり簡単な質問ですが、答えはわかりません。
マウスを使用するユーザーコントロールを開発するか、マウスを完全に無視してボタンコントロールのみを使用する必要があります。
例は次のとおりです。
アイテムをクリックしてピックアップするか、アイテムの近くに移動してボタンを押してピックアップします。
特にPC以外のプラットフォームをターゲットにしたい場合、これについてどう思いますか?
回答:
はい、ゲームをPC上で実行したい場合は、初期の設計段階からマウスの最適な使用方法を検討する必要があります。同じことは、ターゲティングを検討する他のすべてのプラットフォームの入力機能にも当てはまります。
異なるプラットフォームへの良いポートと悪いポートの主な違いの1つは、異なる入力スタイルに対応するためにどれだけの労力を費やしたかです。
そのため、別のプラットフォームへの適切な移植を行うには、入力方法を再検討する必要があります。多くの場合、ユーザーインターフェイスをゼロから再設計する必要があります。開発の初期段階からそれを考慮し、すべてのゲーム機能を異なる入力方法で適切に実装できるようにすることで、痛みを軽減できます。
いつものように依存します。
何のジャンル?お金/時間はいくらですか?あなたはお金を稼ぐためにアプリケーションを開発していますか?
ユーザーは一般的に、ニッチゲーム(たとえば、独立した開発者によるJRPG)の不適切な入力コントロールについては驚くほど寛容ですが、さらに売りたい場合は、より良い入力コントロールがプラスになります。
予算が非常に少なく、販売から直接利益を得られない場合(教育ソフトウェアの開発に一定の時間を支払う慈善基金など)、1つの入力方法を適切に実行するのが賢明です-複数の入力方法をうまく行うかなりの時間がかかります。
ゲームをリーズナブルな価格(20ドル以上)で販売し、かなり多数のバイヤー(5万人以上)にリーチしたい場合は、マウス、キーボード、タッチスクリーン、最初からゲームパッドデバイス。マウス/キーボードゲームでゲームパッド入力を単に「後付け」する方法はありません。
*ゲームをタッチ、ゲームパッド、およびマウスフレンドリーにする方法を考えると、実際には良い解決策が存在しないことがわかります。このようなケースは非常に一般的です(リアルタイム戦略ゲームがクロスプラットフォームになることはめったにありません)。そのような場合、通常の解決策は、ゲームに必要な入力形式をサポートするデバイスでのみリリースすることです。
これは、平日の種類によってまったく異なります。
3Dゲーム
ほとんどの一人称ゲームを見ると、マウスは周りを見回すためだけに使用されます。コンソールに移植する場合、アナログスティックとボタンを使用し、モバイルでは、スワイプを使用して、画面上のボタンである他のコントロールをできるだけ少なくします。良い比較のために、Minecraftの異なるリリースのビデオを見てください。
2Dゲーム。
相互作用が2D空間にあるゲームの場合。次に、説明したようにマウス操作を使用することができます。しかし、考慮すべき最も重要なことは、キーボードからマウスに手を戻したり戻したりする頻度です。モバイルでは、使用したいすべてのボタンが画面上にある必要があるため、選択の余地はありません。たとえば、モバイルで必要な場合にのみ表示されるボタンを使用することを検討できます。たとえば、アイテムに近づくと、ボタンを画面に表示できるのは、それを拾う可能性が残っている場合だけです。2Dゲームでは、ポイントアックスはPCとモバイルでうまく機能しますが、アナログスティックが使用される可能性があるため、コンソールでは少し不格好になる可能性があります。
ただし、PCでマルチプラットフォーム用に開発する際に考慮すべき最も重要なことは、他のプラットフォームよりもはるかに豊富なボタンを自由に使用できることです。したがって、必要なボタンの数を最小限に抑え、(利益PCのために)片手でマウスを、もう片方でキーボードを使用し、ゲームコントロールを他のプラットフォームに問題なく印刷できるようにします。
はい、そうすべきです。ただし、抽象入力クラスまたはインターフェイスに対して開発し、ハードウェアの種類に応じて、ユーザーがこれに対して対話できるさまざまな方法を実装します。
私はあなたのゲームについて具体的には知りませんが、例として、次のようなメソッドで抽象クラスインターフェースを作成します
bool lookingUp();
bool shooting();
そして、それらを具象クラスに実装します、例えば:
bool lookingUp() {
return mouseIsMovingUp(); // e.g. PC
}
bool lookingUp() {
return isTrianglePressed(); // e.g. Gamepad
}
bool shooting() { // e.g. phone
return screenPressedAt(10, 10);
}
次に、ゲームで、ハードウェアタイプに基づいて具体的なクラスを作成します。これによりコードが簡潔になり、さまざまなプラットフォームに簡単に対応できます。