アマチュアゲーム開発者にとってどのプラットフォームが最良か

昔からゲームを作るにはどの言語がいい?的な話はよくあったが、結局どの言語を選ぼうともその最終出力はWindowsアプリケーションになる、といった面では変化がなく、「本人と周りの人間が慣れている言語がいいんじゃね?」っていう結論でだいたい問題ないような感じだった。

最近は言語レベルだけでなく、そもそも出来上がったゲームがどこで動くものなのか、というプラットフォームレベルの選択になってしまい、選ぶのがなかなか難しい。とりあえず私が今まで使ってきた+使ってみたいプラットフォームの利点と欠点を挙げてみた。

  • C + SDL
    • pros
      • 圧倒的なポータビリティ。一度書けばどこでも動く
    • cons
      • 今どきの言語機能の恩恵は皆無。2DでやろうとするとGPUの恩恵もなし
  • D + SDL + OpenGL
    • pros
    • cons
      • Cほどのポータビリティはない。Vista上のOpenGLサポートの弱さ
  • Flash
    • pros
      • ブラウザ上ですぐ遊べる配布コストの低さ。各種Webサービスとの親和性の高さ
    • cons
      • ジョイスティック未サポートなど入力周りの弱さ。GPUサポートなし
  • XNA
    • pros
      • C# + HLSLのモダンな言語+モンスターシェーダの組み合わせ。将来的なXbox Live上での配布
    • cons
      • ほぼXbox360専用。CPU側パフォーマンスの問題
  • iPhone
    • pros
      • 将来的なiTunesを介した配布。マルチタッチなどデバイスの利点
    • cons

一般的なC++ + DirectXが挙がってないのでリストとしては特殊すぎる、という点はおいておくとして、それぞれ利点欠点さまざまなので、これで決まりってのがない。

なので「本人にとって面白そうなのでいいんじゃね?」という身も蓋もない結論に落ちてしまうわけだ。なんかほかに面白そうなプラットフォームあるかね。