ソロ開発者プロジェクトはどのようなプロジェクト管理を使用すべきですか?


49

私は自分で開発を3つの独立した部分(マップ生成、「オーバーワールド」エンジン、バトルエンジン)に分けることができるゲームプロジェクトに取り組んでいますが、開発が進行するにつれて、どのように対処すべきかわかりませんこのプロジェクトの管理、特に次の3つの点に関して:

  1. ソロで作業しているので、バージョン管理システムを使用する価値はありますか?

  2. 計画された機能/バグを登録するために正式な方法を使用する必要があります(今のところ何をする必要があるかを覚えています)

  3. 最も重要な質問:最初に何を開発するかをどのようにして知ることができますか?非常に基本的な操作が完了したので、コーディングする機能のリストは知っていますが、どの順序でそれを行うべきかはわかりません。


39
1)はい、はい、はいはい ; VCSを使用しないように誰にも言わないことを本当に願っています。
サムホセバー

3
バージョン管理を必要とするさまざまな問題があります。(a)ローカルコピーが破壊された場合のバックアップの基本的な考え方、および(b)上書きしたコードとアセットは必ずしも必要なものではないという考え方永久に失う(本質的に(a)、上書きは破壊的なメカニズムであるため)。(b)に関連する(c)もあります。さまざまなアプローチを試すために、分岐することもできます。パフォーマンスが重要なコードに取り組んでいるとき、私はかなり頻繁に分岐します。これは、他のアプローチの場所を失うことなく、異なるアプローチをプロファイルするのに役立つからです。
エンジニア

@Samから2番目のコメント-常にバージョン管理を使用します。私は今からあなたがしたことを嬉しく思います。安価で無料のホストされたVCSおよびDVCSシステムがたくさんあり、これらもオフサイトバックアップを提供します。私は自分の色をSubversionマストに固定しましたが、もし新しく始めたらMercurialを使用すると思います。
ティムロング

1
これらの質問は、それぞれ別個のトピックであるため、個別の質問にする必要があります。
テトラッド

回答:


59

私は使うだろう:

1.コード管理

コードを管理するための分散ソースコードマネージャーであるGIT(および素晴らしいリファレンス)。制限を外したい場合は、GitHubでプライベートプロジェクトとしてホストします。

(ここには多くのオプションがあり、ソースコード管理のためにグーグルだけで、GitHubや他のWebサイトを使用する必要はありません。Gitはローカルコンピューターで正常に動作しますが、GitHubを使用するとバックアップの管理が苦痛になりますずっと簡単です。

2台のコンピューターがある場合、バックアップマシンと呼ぶリポジトリーに1つのリポジトリーを作成し、そのリポジトリーをローカルネットワーク経由で複製し、開発に使用します。バックアップマシンと1:1のバックアップがあります!)

2.問題と機能の管理

私はTrelloまたはGitHubの組み込みの問題管理を使用して、バグややるべきことを追跡します。

3.設計プロセスがある

最初にゲームを設計します。

  1. 私の心の中で最初に、
  2. その後、紙の上で、
  3. 次に、おそらくGameMakerまたはPyGame使用してアイデアをプロトタイプ化し、プレイが楽しいものになるまで1〜3回繰り返します。

4.プロトタイプをガイドとして使用し、ゲームを開発する

次に、プロトタイプを脇に置き、開発したいプラットフォームを選びます。次に、既存のエンジンを探して、私のゲームのアイデアに最適なエンジンを選択します。次に、プロジェクトの目標を明確にし、それらを小さなタスクに構成してから、タスクを完了するために作業を開始します。この状態に到達すると、自分に最適な独自の作業方法があることに気付くでしょう。

開発スタイル、XP、ウォーターフォールなどに適用できるいくつかの異なる方法論/哲学があります。あなたが最も速く進歩すると感じるものと一緒に行ってください。

5.たくさんのゲームテスターがいます!

プレイできるものがあれば、すぐに友達に聞いてみてください!Windowsを実行している場合はクイックインストーラーパッケージをセットアップするか、Linux / Macを使用している場合はプロセスを自動化できるシェルスクリプトを作成することで、簡単にユーザーを支援できます。テスターのフィードバックには細心の注意を払ってください。また、ゲームのデザインや、どのような種類のゲームを構築しようとしているのかをテスターに​​知らせることを忘れないでください。

6.ゲームのウェブサイトを作成する

何かがうまくいけばすぐに、おそらくゲーム用のWebサイトを作成します。たとえば、自分の研究に集中している場合、ゲームの進行に適用できないときに創造性とコンテンツを流し続けるためです。または開発から休憩が必要です!

GitHubを使用する場合、ゲームのプロジェクトページを設定します。それ以外の場合は、WordPress / Jekyllブログなどをホストし、それを使用し投稿を書き込みます。

これにより、潜在的なゲーマー/テスターを紹介する場所ができるだけでなく、モチベーションが維持されます!

7.コンテストに参加する

ほぼすべてのゲーム開発者コンテストが開催されています。ルールが許せば、これらのいずれかをゲームに参加させようとします。これにより、モチベーションが高まり、すべてがさらに楽しくなります。

(厳しい期限で開発している場合は、少なくともこの点をスキップできます。)


1
いい答えだ。問題追跡にはFogBugzをお勧めします。ソロ開発者(私のような)には無料です。
notlesh

2
多くの+1に値しますが、1つしか与えることができません。
カオス技術者

DropboxでGIT / hg /その他を使用すると、魔法が生まれます。
zeroDivisible

14

単独で作業している場合でも、バージョン管理システムを使用することを強くお勧めします。誤って何かを削除したり、より大きな変更を加えたりすると、時間を節約できますが、後でそれが悪い考えであり、変更をすべて元に戻す必要があることに気付くことができます。

編集:多くの無料のソース管理ソリューションがあります。

  • 私が使用しているVisualSVN設定し、Windowsで使用することは容易であるサーバーを、。

  • Codeplex(with SVNまたはMercurial)、SourceForgeGoogle Codeのようなオンラインの選択肢もあります。利点は、リポジトリを設定および保守する必要がなく、データがクラウドにあることです。問題は、クローズドソースプロジェクトを自由にホストできないことです。

バグと機能の追跡について:ゲームのベータテスト、バグの報告、機能のリクエストに興味がある可能性のある大勢の視聴者が既にいる場合は、先に進んでください。
ただし、そのような人が少数しかいない(またはまったくいない)場合は、不要です。

そして、開発の優先順位に関して、それはあなたが決めることです。誰がプロジェクトで何をすべきかを、その唯一の開発者よりもよく知っているべきですか?


1
ハードドライブの傷は、あなたが間違ったファイルを削除するとき1 SVNはそれを価値があるなどなどなど
Valmond

5
上記のVCSの多くの問題は、公開されていることです。無料のプライベートホスティングが必要な場合は、assembla.comをご覧ください。
ClassicThunder

12
bitbucket.orgはプライベートリポジトリ
o0 'を

1
@ClassicThunder投稿でそれを言った。また、前回チェックしたときに、Assemblaはプライベートプロジェクトを無料で見ていませんでした。その間に何か変更がありましたか?(私はそれを疑いますが、あなたは決して知りません。)
ver

1
必要に応じて、自分のHDDにプライベートSVNリポジトリをセットアップできます。VCSがまったくないよりもはるかに優れています...重複した回答が
いくつある

7

ソロで作業しているので、バージョン管理システムを使用する価値はありますか?

私はそう思う。設定するのはかなり簡単で、リファクタリングや他の愚かなことで夢中になったことが何度かありましたが、変更をロールバックする機能は時間を節約しました。さらに、サーバーでホストされている場合は、何か問題が発生した場合に備えてコードのバックアップがあります。

計画された機能/バグを登録するために正式な方法を使用する必要があります(今のところ何をする必要があるかを覚えています)

必要だとは思いません。マイナーなバグを忘れないようにするためだけに、あなたが何をしようとしているかのリストを書き留めておきます。さらに、コーディングを中断した後に再び始めるのに役立ちます。

最も重要な質問:最初に何を開発するかをどのようにして知ることができますか?非常に基本的な操作が完了したので、コーディングする機能のリストは知っていますが、どの順序でそれを行うべきかはわかりません。

上記のリストを取り、目を閉じてランダムに突いてください。指がオンになっている機能を使用します。アイテムが相互に依存している場合を除き、特定の順序で物事が発生することを確認するよりも、フローを続けるためだけに重要です。


5

バージョン管理を確実に使用する

バージョン管理は、綱渡りをする人にとっての安全策のようなものです。それは、狂ったことを試みる自由をあなたに与えます。簡単に元に戻せるのであれば、巨大なコードの塊を削除する大きなリファクタリングは問題ありません。リポジトリ内の実験的なブランチを使用しており、マージしないように決定できる場合はさらに少なくなります。

あなたがこの種の自由を持っていないなら、あなたはそれを必要とするかもしれないという恐れのために、コメントアウトされたコードをいたるところに置いたままにするでしょう。

Gitに投票しました。構文は少し変わっていますが、次の2つの素晴らしい点があります。

  • 低オーバーヘッド。フォルダーに変更して入力するgit initと、チェックインを開始する準備ができました。結局バージョン管理したくない場合はrm -rf .git、そのフォルダーでGitリポジトリではなくなります。
  • SSHを介して配布されます。Gitは配布されます。つまり、リポジトリの複数の完全なコピー(すべての履歴など)をさまざまな場所に置いて、それらを同期させることができます。SSHアクセスがある任意のマシンで別のGitリポジトリをセットアップし、その別のリポジトリをリモートとして追加できます。その後、いつでもgit pushそのリポジトリにバックアップしたいだけです。

    これは、たとえばレポ全体が1台のマシン上にあり、そのマシンがSubversionサーバーを実行している必要があるSubversionよりも大きな利点です。

Mercurialにはこれらと同じ点がありますが、私は使用していません。


3
  1. はい!あなたが尋ねているので、私はあなたがリビジョン管理システムでよく採用されていると推測しています。それは絶対必要です!

  2. 2番目の質問については、バグを登録する正式な方法があり、それを使用する必要があります。機能を計画するために、私はそれほど正式でないルートをとることは無害だと思います(あなたが一人で働いているとき)

  3. ゲームを生き生きとさせるこれらの機能を最初に実行してください。最終的なゲームプレイがどのようになるかについての感覚を与えます。


3

1)はい、もちろんです。BitBucketとTortoiseHg経由のMercurialをお勧めします。BitBucketは最大5人のユーザーが無料で利用でき、クラウドでホストされているため、ある程度の安心感が得られます(バックアップは不要です)。

2)新機能を実装する前に、バグを修正する必要があります。シンプルでアクセス可能なTODOリストを使用して、物事を追跡します-保留中/完了。プレーンテキストファイルを使用するだけで、ソース管理リポジトリに追加することを忘れないでください。

3)エンドユーザーがプレイできるものを提供することが主な目的であることを念頭に置いて、特定の日にあなたがやりたいことをしてください。例えば、物理学を正しくするのにうんざりしている場合は、レンダリングに取り組むか、おそらくそのAIの欠落している単体テストを追加します。

大量の作業は、数日で完了するのに十分なほど小さくする必要があります。自分のやる気を維持し、燃え尽きを避けることが重要です。

アーキテクチャが適切に行われていれば、他の複数の要素に影響を与えることなく、エンジン/ゲームの変更部分を簡単に追加できるはずです(そうでない場合は、リファクタリングから始めます:)。


2

1)誰もが言うように:はい(安いオンラインレンタルも申し上げます)

2)単純なリストを保持するか、プロジェクトが大きくなり、ベータテスターを取得する場合は、Mantis Bug Trackerをインストールします

3)わかりませんが、どのようにそれを行っているかを説明します。まず、最も面白くないものや最も難しいものを開発します。すべてが完了するまで繰り返します。そうすれば、開発はより楽しく簡単になります(そして、その問題にぶつかることはありません。


1

この質問をしてくれてありがとう。これはまさに私が現在していることです。

1)バージョン管理:必須です。現在、手動バックアップを維持しています。うまく機能していたものが突然エラーをスローした場合(または期待どおりに機能しなかった場合)は、少なくとも役立ちます。私はバージョンを比較し、しばしばばかげた間違いを見つけます(ほとんどコメントを付けます)

2)ワードドキュメントを作成し、ゲームに含まれるすべての機能をカテゴリ順にリストし、マルチレベルのインデントにサブ機能(およびクライアント/サーバー関連または適用可能なもの)をリストしました。

3)取得したリスト(通常は完全ではないが、何かを追加し続ける)の後、ゲームの流れを考え、ゲームを実行して実行するために必要なすべてのポイントを強調表示します。進行中の作業を意味する黄色をマークします。完了すると緑になります。改善されるか、いくつかの既知のバグがあることを示すオレンジ

お役に立てれば


0

1.)プロジェクトでバージョン管理を使用する価値があります。使用方法をすでに知っている場合は、非常に小さいものでも。TortoiseSVNを使用してLinuxおよびWindowsで長年Subversionを使用しています。小さな(<500行)プロジェクトを作成する場合でも、変更を元に戻したり、しばらくプロジェクトを放棄した場合に何をしていたかを追跡できるように、そのためのリポジトリを作成します。

2.)プロジェクトの規模に依存します。チームでプレイテストして配布することを計画している場合は、おそらくバグ追跡システムを持つ価値があります。私は現在、2万行を超えるプロジェクトで単独で作業しています(アーティストはいますが)。また、SVNリポジトリにあるテキストファイルにTo Doリストを保持しています。私はまだそれを他の人と共有する必要はまったくありませんが、バグ追跡を持たないことは今のところ私のニーズに合っています。必要になるまで心配しません。起こりうる最悪の事態は、すでに書き留めたバグを入力し、修正したバグを削除/修正する必要があることです。メモのメンタルトラックを失い始めたら、バグトラッカーを入手してください。

3.)紙に印刷します。完成したゲームにしたいものから始め、その要旨を書き留めます。次に、それを実現するために必要なものに分割します:衝突検出?ネットワークコード?プレイヤーとモンスターの種類は?クラス階層?ビジョンから逆方向に作業して、ゼロから構築する方法を明確に理解できるようにします。オブジェクト指向言語を使用していると思います。開始する際の最も重要なステップは、これらのクラス階層を適切な方法で設定することです。多重継承を絶対に持たないようにしてください(時には避けられないこともあります)、ダイアグラムエディターでクラスの関係をプロットします(私はDiaを使用します)。


注:TortoiseSVNはSubversion用のWindows専用クライアントです。
ゼロ番目の
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.