学ぶべき優れたオープンソースゲームとは何ですか?[閉まっている]


15

オープンソースゲームのソースコードをダウンロードしたいので、ゲームアーキテクチャに慣れることができます。ソースコードが読みやすく、簡単に理解できるゲームを知っている人はいますか?

編集:少し考えてから、デスクトップまたは2Dグラフィックスを搭載したAndriod電話でプレイできるゲームを作りたいと思います。


7
オープンソースであるほとんどのゲームは、常に簡単に理解できるとは限らない大規模で古いプロジェクト、さまざまな理由でオープンソース化された商用プロジェクト、または実際にプレイ可能な状態ではない未完成のゲームです。さらに、使用するゲームと言語の種類に関するアーキテクチャ。どんな種類のゲームから学びたいですか、どの言語を知っていますか?(チュートリアルは正直なところより良いオプションかもしれません)
thedaian

@thedaian Java、C ++、C、javascript、およびpythonを
知っている-jumpnett


少なくとも私にとってはうまくいきました。非常に優れた記事や書籍、チュートリアルがたくさんあります。適切なものを選択するのに時間をかける必要がありますが、コードが実行される理由をすでに知っており、ソースの品質(多くの場合においがする)を認識できるため、後で時間を節約できます。移植性が必要な場合は、C / C ++を使用しますが、これらのプラットフォームの場合は、Javaで問題なく実行できます。
パブロアリエル

1
コミュニティwiki?
ジャリコンパ

回答:


2

どのタイプのゲームを求めているのかわかりませんが、c ++で書かれたOpenTTDという名前のオープンソースゲームがあります。良いサンプルとして使用できると思います。

このゲームをユニークにするいくつかの機能:

  • それは戦略ゲームです。
  • インターネットおよびローカルネットワークを介したマルチプレイヤーサポートがあります。
  • 構成ファイル(未加工のテキストファイルから生成される)による他の言語への翻訳をサポートします。
  • 私が知っているほぼすべてのプラットフォームでコンパイルされます。
  • そのプロジェクトはまだ生きています!
  • AIサポートが組み込まれています。
  • グラフィカルおよび音楽データは、パッチにより完全にカスタマイズ可能です。
  • カスタムAIを開発するためのスクリプト言語をサポートしています。このゲーム用に書かれた他のAIも読むことができます。
  • コードは読みやすく、理解しやすい一方で、比較的大きなプロジェクトです。
  • SDLに基づいており、その時点からすべてをゼロから開発しました。

-編集-

ちょうど今日、私は彼らのコードを最初から読み始めました。彼らが書いたものを理解するには、まともなCおよびC ++プログラマーである必要があります(ただし、コードは十分にコメントされています)。両方の言語の構造を使用しているため、両方の言語のマスターである必要があります!プログラミングスキルについて十分に自信がない場合は、そのコードに近づかないでください。それは私が今まで見た中で最も汚いコードです!(そして、私は自分自身は汚いコーダーですが、彼らは別のものです!)

私はあなたにsupertuxコードをチェックすることを提案できると思います。それはプラットフォーマーゲーム(スーパーマリオのような)であり、これまでのところコードは本当にきれいに見えます(マイルストーン1.3を確認しました)。そのコードにはコメントがありますが、混乱する可能性のある場所についてのみです。


OpenTTDは素晴らしいゲームですが、良い学習プロジェクトだとは思いません。そのほとんどはアセンブリからリバースエンジニアリングされたものであり、それを反映したコードのセクションがまだあります。さらに、それは単に巨大なプロジェクトであり、おそらく「ゲームアーキテクチャを学ぶ」プロジェクトを始めるには多すぎます。
テダイアン

@thedaianはそう言うかもしれませんが、時々私は何か新しいことをする必要があると私は彼らのコードに書かれていることを読みます。これまでのところ、読む価値がある最も読みやすいオープンソースゲームだと思います!
Ali1S232

また、コードを最後にチェックしたのは
いつかはわかり

2

おそらく、あなたが好きなゲームを選んで、そのようなオープンソースのゲームをチェックするのが良いアプローチだと思います。オープンソースゲームのクローンのリストは、おそらく最後のステップ、多くのを助けることができます。


1

Quake 3のような主力があります。または、もっとシンプルな(そして2Dで)必要な場合は、インディーズゲームGishをご覧ください。どちらもOpenGLを使用し、クロスプラットフォームでもあります。

ただし、ギッシュは少し厄介です。


1

最初に、3Dパイプライン、物理学、AIなどについて学習したいゲームアーキテクチャのタイプに焦点を絞ることをお勧めします。

ゲームプログラミングの良い例に対する一般的な要求があると、スペースインベーダーglは、コードをきれいにし、ゲームプレイとインターフェイスをオープンにし、物事をかなりシンプルに保つので、打ち負かすのは難しいと思います。

乾杯


スペースインベーダーはglウィンドウのみですか?現在、PCにウィンドウがインストールされていません。アクセスできないということではなく、それほど便利ではないということです。
ジャンプネット

1

コードを読むことは有用ですが、ドメインの初心者であれば、何も学びません。特にQ3AやOpenTTDのような大きなプロジェクトのコードを見る場合。それらはチーム全体で作成され、各人は異なるコーディング慣行、物を作る方法に関する異なるアイデアを持っています。あなたは全体像をつかむだけで、すべてを結びつける小さな詳細は得られません。

良いと思われるものを見つけるまで開発し、失敗し、再試行し、再び失敗し、すすいで、良いものが見つかるまで繰り返します。開発者が異なれば、ものを実装する方法についてのアイデアも異なります。良いゲームを作ったCarmack / Anyの有名な開発者によってコーディングされたからといって、パンをスライスして以来最高のものであるとは限りません。


1

あなたができる最も重要なことの一つは、プレイを楽しむゲームを選ぶことだと思います。これにより、興味を持ち続けることができ、コード自体がプレーヤーの観点にどのように変換されるかをよりよく理解できます。

そのゲームを選択したら、それがどれだけ大きいかに関係なく、コードのすべての行がどのように機能するかを把握する必要はありません。その一部を選んでそれを見てください。たとえば、プレーヤーデータの保存方法やメニュー項目の描画方法などを把握してください。

次にできることは、前のビットと同様に、何かを変えようとすることです。(最初は)巨大なものではなく、ゲーム内で単純で目立つものです。メニューのボタンのテキスト、メニュー項目の追加、ダメージ計算の変更などの単純なものです。彼らは何か違うことをすべきだったと思うかもしれません。自分で変えてみてください。

ゲームの開発に初めて興味を持ったとき、2DオンラインRPGに夢中になりました。そこで、あるオンラインのソースを見つけて、その上に構築し始めました。独自の機能の追加や調整、バグの修正など。それは数年前のVB6でのことでしたが、今ではC#とXNAを使用して、ゼロから独自のゲームを記述しています。私はゲームを楽しんでいたので、それを改善したい、それをやりたいと思いました。偶然にも、これは私が今日、gamedevに関係のない仕事で使用するプログラミング、デバッグ、問題解決のテクニックの多くを学んだ方法でもあります。

また、ゲームにmodderのコミュニティがあり、質問したり、ヘルプやサンプルを入手したりできる場合にも役立ちます。しかし、再び、それが存在しなくても、あなたはすでにここにいて、私たちは助ける準備ができています。


1

傑出したオープンソースのAndroid 2Dプラットフォームゲームはレプリカアイランドです。

ソースは、 Google Codeの上にあり、開発が著者の中にとどめたのdevのブログ

こちらもAndroid向けの15のオープンソースゲームのリストです。これらのゲームもご覧ください。


クール、私はそれらをチェックアウトする必要があります。
ジャンプネット


0

スクロールのゲーム開発キット2は、あなたが実際に2Dのゲームを作成し、コードを記述せずにGUIを使用してそれらを再生することができます。ただし、ゲームの背後にあるフレームワーク/エンジンを表すプロジェクトに埋め込まれたコードを表示および編集することもできます。ほとんどのコードはGUIを介して公開されますが、その一部はスプライトの配置場所と作成するマップに基づいて生成されたコードです。ただし、プロジェクトを生成し、結果のファイルをVisual C#Expressで開くと、このコードも表示されます。プログラム全体(IDE)自体もオープンソースです。OpenTKライブラリ(C#のOpenGLとのインターフェイスに使用)に基づいて構築されており、これもオープンソースです。


見ていきますが、私はプログラマーなので、コードを書くことは大したことではありません。
ジャンプネット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.