ゲームをできるだけ多くのプラットフォームで利用できるようにすることを目的とする場合、どのツールを検討する必要がありますか?[閉まっている]


8

グリッドベースの2Dパズルゲームの開発を計画しており、まだ計画段階の非常に早い段階ですが、最初からしっかりと決定したいと考えています。

私たちの戦略は、PC(Windows、Macおよび/またはLinux)、携帯電話(iPhoneおよび/またはAndroidベースの電話)、ゲームコンソール(XBLAおよび/またはPSN)など、できるだけ多くのプラットフォームでゲームを利用できるようにすることです。 PCに重点が置かれますが、これは最も柔軟なプラットフォームであるため、問題にはなりません。

それでは、どのプログラミング言語、ゲームエンジン、フレームワーク、そしてすべてのツールが私たちの目標に最も適しているでしょうか?

PS:一連のツールがすべてをカバーするわけではなく、一部のプラットフォームでは何らかの「翻訳」作業がまだあると思いますが、最も広範囲に及ぶものを知りたいと思います。


回答:


12

薄いプラットフォーム層の上に厚いC ++フレームワークがあり、これもC ++です。ゲームを新しいプラットフォームに移植するには、新しいプラットフォームレイヤーを実装する必要があります。これは、非常に薄いため、実行が非常に高速です。

また、すべての依存関係は、SDL、Ogg、LibPNGなどのオープンソースおよびクロスプラットフォームライブラリです。

たとえば、Win32 / DirectXプラットフォーム、LinuxおよびMac用のSDL / OpenGLプラットフォームがあり、iPhone / iPad用のiOSプラットフォームで動作しており、androidポートも可能です。しばらくの間、私たちはPlaygroundプラットフォームを持っていました。つまり、私たちのフレームワークはPlayFirstのPlaygroundエンジンの上で実行されていました。この階層化されたアプローチにより、テクスチャのあるクワッドを描画し、入力を取得してサウンドを再生できる限り、基盤となるハードウェア/ OSに対するあらゆるインターフェースを活用できます。

私はこれに非難されますが、C ++はおそらく最もクロスプラットフォームな言語です。ほとんどの場合、すべてのアーキテクチャとOSにC ++コンパイラが含まれているか、gccを移植できます。


3
炎ではありません。それは正しい説明であり、私たちがそれをまだ使用している理由の一部です。
Klaim、

9

Unityを使うだけ


一般的な印象は、Unityは3Dにはクールですが、2Dにはそれほどクールではないようです。そして質問は、2Dのゲームについてです
bluescrn

6
Unityで2Dゲームを出荷した(そして他の人たちもいる:unity3d.com/gallery/game-list)ことを考えると、一般的な印象に同意する必要があります。はい、バッチ処理されたアニメーションスプライトを描画する組み込みの方法はありませんが、エディターを簡単に拡張して自分で作成できます。それは、実際のプッシュボタンクロスプラットフォームの互換性に最も近いものと組み合わされ、エントリーへの障壁が低いことが、最も明白な答えになります。
Tetrad、2011年

同意する必要があります。私はこれこれを読んで2Dツールキットを使用していて、思ったよりも2Dを実行する方がはるかに簡単だと言わざるを得ません。
NoobsArePeople2 2012年

1
リンクのみの回答、コメントは私が思うに十分な償還です。:/
MichaelHouse

6

私は数日前に別の質問でNMEについて知ったばかりで、それを広める価値があると思った。マルチプラットフォームのサポートについては、トップページに次のように記載されています。

NMEを選択すると、ほぼ無限の機会が開かれます。1つのアプリケーションを作成し、Facebook、iOS App Store、webOS App Catalog、Androidマーケット、Mac App Store、Ubuntu Marketplace、NOOK Apps、Chrome App Store、Steamおよびその他のマーケットプレイスに公開します。各プラットフォームに固有のコードを記述する必要はありません。

私はまだそれを個人的にテストしていませんが、多くの理由で興味深いと思いました。

  • APIはFlash に非常に 似ており、多くの人がすでに精通しています。私は以前にFlash / AS3で多くのゲームを行ったことがありますが、簡単に習得して作業することができます。
  • これはHaxeと呼ばれる言語を使用しています。これは、見たところActionScript 3に非常によく似ていますが、ネイティブC ++を含む多数の形式にコンパイルできます
  • 上記をNMEによってセットアップされたいくつかのインテリジェントなパイプラインと組み合わせると、非常にマルチプラットフォームにすることができます。上のPCは、Windows、OS XとLinuxをターゲットにすることができ、かつ上でモバイル(まだフードの下のOpenGL ESとC ++を使用してネイティブパフォーマンスを取得中)あなたは、iOS、AndroidとウェブOSをターゲットにすることができます。最後に、FlashまたはHTML5キャンバスを使用したWebゲーム開発も可能です。
  • それは完全に無料です。

現時点では試す時間はあまりないので、誰かが試した場合は、フィードバックを残していただければ助かります。


1

まあそれは依存しますが、C / C ++、Obj-C、C#でプログラミングできますか?

Unity3Dは最高の1サイズで、2D以外のすべてのゲームに適合します(とにかく2Dゲームの場合)。

XNA(別名インディーストア)でXboxをターゲットにしている場合は、C#を使用する必要があります。ただし、iOSでC#を実際に使用することはできません(単一性を除く)。iOSでC / C ++を使用することはできますが、何らかのミドルウェアを使用しない限り、Obj-Cを少し使用する必要があります。

エンジンを使用しない場合は、独自の抽象化レイヤーを作成することをお勧めします。そのため、ライブラリへの呼び出しはすべてこの中間層を経由する必要があるため、移植するときは抽象化層の実装を変更するだけで、ゲームコードはほぼそのままです。


1
理論的には、xna touchを使用すると、c#で記述されたxnaゲームをiosからmonoで実行できます。 xnatouch.codeplex.com
Steve H

@Steve H、グッドコール、これはAndroidをロックアウトするように見えます。
PhilCK、2011年

@PhilCK Monoは、AndroidとiOSの両方で実行でき、MonoGameは両方をサポートします。ただし、Xamarinからライセンスを支払う必要があります。
Cole Campbell

1

他の回答はツールと言語をかなりカバーしていますが、グラフィックの面では、(2D)グラフィックをベクター形式にして、小さいサイズと大きいサイズで見栄えをよくすることをお勧めします。詳細が多すぎると、十分に縮小されません。小さすぎると、拡大が不十分になります。


1

Moai SDKはオープンソースのフレームワークであり、現在はandroid、IOS、Chromeに公開できます。モアイは、あなたのスキルと知識に応じて、ゲームコンソールなどのホストをカバーするように拡張することができます。


0

私はあなたの最良の言語選択はc#になると思います。これを使用して、多くのプラットフォーム用のUnityで開発できます。c#は、MonoTouch(iOS向けの開発用)とMondoDroid(まだリリースされていませんが、Androidプラットフォームを対象にすることができます)でも使用されている言語です。そしてもちろん、c#はXNAで使用でき、XBOX 360とWindows Phoneをターゲットにすることができます。

それはほとんどすべてをカバーしています。ゲームコンテンツを操作するためにさまざまなツールを使用するということはありますが、C#ですべてのコアゲームロジックを変更する必要はありません。

もちろん、c#はSilverlightで使用されているため、Webもターゲットにできます。


2
C#は素晴らしい言語ですが、実際にはクロスプラットフォームゲーム開発者にとってはかなり貧弱な選択のようです。PC以外のプラットフォームでのパフォーマンスの問題と同様に、XNAはいくつかのプラットフォームでしか利用できず、Cを使用した場合に利用できる可能性のある非常に多くの潜在的に有用なクロスプラットフォームライブラリを見逃すことに注意してください。 / C ++。はい、これは完全な移植なしにWindows PhoneまたはXbox Indie Gamesをサポートしないことを意味します(ただし、セールスの観点から、他にほとんど何でもサポートできる場合、それは本当に大きな損失ですか?)
bluescrn

0

ステップ1は、おそらく、単一のプラットフォーム(または少数のプラットフォーム)用に、お気に入りのツール/技術を使用して、少なくともまともなプロトタイプでゲームを作成することです。

クロスプラットフォームのツール/技術開発に行き詰まるのは非常に簡単です。ゲームを始める前にクロスプラットフォームに重点を置くことは、時期尚早な最適化のようなものです。早い段階で検討する価値は確かにありますが、実際にゲームを入手するまでは、それに時間を費やさないでください。

ゲームが成功するかどうかを知る前にすべてのプラットフォームをサポートしようとすると、ハイリスク戦略のように聞こえます。特に、シンプルな低予算ゲームの場合(クロスプラットフォームシステムの開発コストがゲームの開発コストを大幅に上回る可能性がある場合)自体?)。

少数のプラットフォームでそれを起動し、それがどれだけうまく機能するかを確認し、より困難なプラットフォーム(例:強力でないシステム、arkward入力デバイスを備えたシステム、または完全なものを必要とするプラットフォーム)をサポートする価値があるかどうかを判断することは意味がないでしょうC#またはJavaへの移植)


0

人気がないことはわかっていますが、モバイル、デスクトップ、ウェブの答えは、Starlingを使用したAS3かもしれません。それは驚くべきことであり、驚くべき方法で機能します。私は、WindowsとAndroidでも動作するiOS kinectゲームを作成しました。計算のニーズを処理できるものは他になく、そのクロスプラットフォームでした。また、Arduinoプロジェクトをシームレスにフックできます。ほとんどの人は、Adobeが最近フラッシュ/フラッシュビルダーツールに対して行ったことに気付いていません。


-3

FlashとJavaは非常に広くサポートされています。それらはすべてのPC(多かれ少なかれ)と多くのモバイルデバイス(多かれ少なかれ)で動作し、PCに影響を与える他のプロジェクトと同じくらい簡単にコンソールに移植できます。


3
360、PS3、またはiOSプラットフォームでJavaを使用するつもりはありません。同様にフラッシュ。言語に関する限り、C ++は、特にXNA(ただしXBLAではない)を除いて、一般的なケースでははるかに移植性が高いと主張します。
テトラッド、2011年

Flashは、UIやScaleform(scaleform.com/products/gfx)などのミドルウェアを備えたミニゲームなどに使用されることがあります。PS3のBlurayサポートには単純なJVMが含まれているようですが、コンソール用のJavaに関する情報はあまり見つかりません。とにかく、コンソールに何かを移植するためにたくさんの作業を行う必要があります(もともとXNAにあった場合は360は不要です)。移植性を考慮してコードを設計する場合、ポートで言語を切り替えることさえ不可能です。
グレゴリーAvery-Weir 2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.