1つのLinuxディストリビューションでWindows、macOS、Linuxソフトウェアまたはゲームを開発できますか? [閉鎖]

1つのLinuxディストリビューションでWindows、macOS、Linuxソフトウェアまたはゲームを開発できますか? [閉鎖]

私はここに初めて来ましたが、まだLinuxやソフトウェア開発に関する多くの経験や知識はありません。

私はソフトウェアとゲームの開発を学びたいと思っていました。私は、Windows、macOS、Linuxという3つの主要プラットフォームをサポートするソフトウェアやゲームを開発したいと思います。

1つのオペレーティングシステムで3つの主要プラットフォームをサポートするソフトウェアまたはゲームを正常に開発できますか?たとえば、開発ツールが多くのLinuxを使用し、Windows、macOS、その他のLinuxディストリビューションもサポートするソフトウェアやゲームを開発したい場合は、後で切り替えるなどの問題を経験することなくそれを行うことができますか?システムの問題ですか?動作しているかどうかをテストするために前後に移動しますか?それとも、すべてのOS(および各OSのすべての開発ツール)をインストールし、各OSにビルドしてそれぞれのサポートを受ける必要がありますか?

答え1

もちろんです。

これには、すべてのターゲットコンピュータで理解できる共通言語が必要です。そのような言語があれば、オペレーティングシステム固有のコードを使わずにその上にソフトウェアを書くだけです。

推測してみてください - C、C ++、Javaなどの言語がたくさんあります。マルチプラットフォームフレームワーク(言語とライブラリとツールセット)を使用してマルチプラットフォームプロジェクトを完了することもできます。

より良いのは、マルチプラットフォームゲーム制作用に特別に設計されたフレームワークがあることです。現在Unityがこのリストの1位を占めています。さまざまなゲーム固有の機能を提供し、ほぼすべての最新のオペレーティングシステムをサポートします。 Win/Max/Linux - Unityの無料版とその他の商用版(Xbox/PlayStation/などを含む)。

答え2

@WhilteOwlの答えはとても良く、いくつか追加したいと思いました。

HTML5/ES6/CSS3などのWebプログラミング技術を学ぶこともできます。これを使用して、デスクトップ、タブレット、テレビ、ポータブルデバイスで実行できるクロスプラットフォームソフトウェアを開発できます。

ウェブ上でホストし、ユーザーがコンテンツをダウンロードすることを保存し、ElectronJSフレームワークこれを使用して実行可能ファイルを作成できます。

バックエンドのセキュリティプログラミングは難しいトピックですが、HTMLとJavaScriptは私が考える最も簡単な学習曲線を持っています。

H5 エコロジー もっと見る無料私はUnityよりも再利用可能なコンポーネントが多いと思いますが、このプラットフォームを開発するために独自のツールを使用する必要はありません。

Canvas APIを使用してシンプルな2Dゲームを開発できます。3DゲームはWebGLとWebGL2でサポートされています。次のフレームワークもあります。Three.js

答え3

残念ながら、ホワイトフクロウの答えはとても楽観的でした。理論的にはこれがうまくいく方法です。しかし、実際にはそうではありません。少なくともある程度はそうではありません。クロスプラットフォームを開発しようとすると、多くの問題とウサギの洞窟が待っています。

たとえば、.NET はクロスプラットフォームと見なされますが、Linux での基本的な GUI アプリケーションの開発はサポートしていません。 Blazorは理論的に機能するはずですが、Linux関連のエラーが発生しました。また、Visual Studioを忘れてください。機能が少なく、設定が少ない便利なVisual Studio Codeのみが得られます。

CとC ++がプラットフォームに依存しないと言うのは…まあ、はるかに間違っています。 Philin Kulinは次のように語った。

C/C++ を汎用言語で定義するのは多少誤解を招くことがあります。キー言語は普遍的です。これがCが設計したものです。しかし、オペレーティングシステムと対話しない実際のCプログラムは実際には存在せず、WindowsはLinuxと実際に重なることはありません。

実装定義の動作の違いを考慮すると、コア言語でさえ完全に普遍的ではありません。

確かにクロスプラットフォームの開発を試みることができます。ただし、時々発生する可能性がある微妙な問題に注意してください。

答え4

はい、他の答えからわかるように可能です。

ゲームを開発するときは、ソフトウェアスイート全体に依存することになると付け加えたいと思います。使用したいが使用しない基本機能を実装するには、1つ以上のプログラミング言語だけでなく、ソフトウェアライブラリとフレームワークを使用します。自分で実装しないでください。

これらのスタックの多くはクロスプラットフォームの開発に適しているため、次のいずれかを選択する必要があります。

  • ゲームを実行したいハードウェア(ノートブック?携帯電話?)
  • 実行したいソフトウェア環境(Webベース、基本GUI、テキストベース、スクリプト可能かどうかなど)
  • ゲームが満たすことを望む審美的および機能的要件
  • パフォーマンス要件(Tic-Tac-Toeの場合は満足しますが、数百万人のユーザーがいるチェスサーバー、または一人称シューティングゲームの場合は満足できません)
  • 自分の経験

私の考えの最良の方法は、自分でやってみることです。

  • 時間をかけて作成したいゲームのように見え、Windows、MacOS、Linuxで利用できるオープンソースゲームを1つ以上見つけてください。
  • 開発に必要なものを把握し、小さな改善を行ってください。

完全なソフトウェアスタック、ビルドプロセス、開発プロセス、プロジェクトコミュニケーションの要件を案内します。興味のあるゲームの種類を少し変更するために必要なものが何であるかを理解したら、その種類のゲームを開発するために必要なものが何であるかについて公平なアイデアを得ることができます。

個人的には、Linux、Windows、MacOS、Android、その他いくつかのオペレーティングシステムでネイティブに動作し、WebベースのバージョンもあるFreecivというゲームに数行のコードしか貢献していません。これは単なる例です。 Googleでマルチプラットフォームゲームの例を検索してみると、おそらくあなたが作りたいゲームタイプに似たものを見つけることができます。

関連情報