同じゲームで友人と仕事をする最も効果的な方法は何ですか?


29

ファイルをチェックアウトして編集し、チェックインしてからビルドできるものが必要です。

同じコードを同時に編集できるGoogleドキュメントのようなものが理想的です。

どちらもVisual Studio 2010を使用しています。


2
誰もコードのドキュメントのような編集を行わなかった(または、少なくとも見つけられなかった)のはなぜだろうといつも思っていました。コード補完やコードをコンパイルする必要があるなど、いくつかの固有の困難があると思いますが、それらを調整することで克服することはまったく不可能ではないようです(そして、おそらく遅延コードマージ戦略のようなトリック)。大きなプロジェクトでの実際の問題。とにかく共同コーディングツールを
探さなければなりませ

1
@kaoD SubEthaEditは、そのような機能をファイルごとに提供します(大量のファイルをどれだけうまく処理できるかはわかりません)。
michael.bartnett

誰かが私にWindowsやC#用のこのようなプログラムを見つけてくれたら、クッキーをあげます
steakbbq

1
Emacsはこれを実行できますが、不格好です:emacswiki.org/emacs/CollaborativeEditing ; またはMoonEdit:moonedit.com(C#モードがあるかどうかはわかりませんが); または
Gobby

新しいコンパイラIEの崇高さを書くのはどれほど難しいでしょうか?おそらく崇高なプラグインを開発する方が簡単でしょうか?
steakbbq

回答:


19

あなたの質問に対するコメントで述べたように、私は真の共同編集に非常に興味があります。少し前に調査しましたが、ほとんどのソリューションは標準を満たしていませんでした:構文が強調されたプレーンテキストエディターであるか、非常にコストがかかっていたか、クロスプラットフォーム(SubEthaEditなど)が利用できませんでした

サロスに出会うまで!きちんとしたEclipseプラグインなので、現在のワークフローと簡単に統合できます。あなたは彼らのデモビデオを見ることができます、それは非常に印象的です。真の共同編集環境として非常によく考えられており、いくつかの非常に優れた重要な機能を備えています。任意の数の参加者、完全なプロジェクト同期、マーカーとハイライト(Googleドキュメント)を使用したリアルタイム編集、パートナーのビュー、複数の参加者認識方法などをサポートします(このプラグインを使用して画面を共有することもできます)。 )そして明らかに、それは他の多くのEclipseプラグインと統合されています!

私はまだ自分でテストしていませんが、まだ維持されている数少ないプロジェクトの1つであり、非常に有望に見えます。試してみてください(前にこれらのガイドラインをお読みください)。ここに戻って、自分で試してみて感想をコメントとして投稿することをお約束します。

編集:また、グスタボがコメントで指摘したように、Cacooも役に立つかもしれません。UML(実際には、あらゆる種類の図)を描画するためのオンライン共同ツールです。Sarosはホワイトボードをサポートしていますが、不器用さを避けたい場合は図ツールのようなものはありません。


3
すべての人がバージョン管理システムについて多くの答えを出しましたが、これは質問の実際の答えだと思います。共同編集の場合は+1。ところで、Cacoo(google it)を試してみてください。これはUMLを作成するための共同ツールであり、多くのプロジェクトで私を助けてくれました。あなたの答えを補完するかもしれません。
グスタボマシエル

1
@ Gustavo-Gtoknuとても良いツールです。答えを更新しても構いませんか?
kaoD

2
今やれ!:D答えは当然です。
グスタボマシエル

EclipseはJava向けですが、これは素晴らしいことですか?私はc#を実行しています
-steakbbq

@steakbbqには、C#サポート(EmonicおよびImprove)を提供するプラグインがいくつかありますが、残念ながら、デバッグおよびリファクタリングのサポートが欠けているようです。
kaoD

36

「ファイルをチェックアウトして編集し、チェックインして同じファイルのセットからビルドできるものが必要です」

バージョン管理を使用します。バージョン管理システム(VCS)はまさにあなたが説明したものであり、だれかが行ったすべての変更の履歴を保存するという追加のボーナスがあります。人気のあるバージョン管理システムがたくさんあります:

http://subversion.apache.org/

http://mercurial.selenic.com/

http://git-scm.com/

私は個人的にVisual Studioを使用していませんが、Visual Studioがこれらのバージョン管理システムのすべてをサポートしていることを完全に確信しています。


11
チャットで無料のプライベートGit / HGホストを配布した:bitbucket.org(最大5人の共同編集者は無料)。また、HGは、大きなバイナリコンテンツ(コンテンツプロジェクト)を処理するプラグインを備えているため、より適しています。
ジョナサンディキンソン

2
+1 VCSが道です。SubversionのVisual StudioプラグインとしてAnkhSVNを使用します。
リチャードマースケル-ドラッカー

2
ここで+1。私の個人的な支持はTortoiseSVNです。ホスティング(オープンソースを想定)については、Googleコード
-PlayDeezGames


2
転覆しないでください。分散バージョン管理は、集中システムでの作業に慣れていない人にとっては非常に簡単です。転覆に使用される人々は、混乱を逃します。
rjmunro

9

私のチームでは、作業に必要なものに応じて3つのプログラムを使用します。

  • コード用のTortoiseSVN(プログラマーに同じIDEを使用させ、規約を標準化し、優れたコメントを奨励してください)
  • マルチメディア用Dropbox(モデル/スプライト/オーディオファイルの場合、アーティスト/作曲家/モデラーが配信できるようになるまで開発者はローカルで作業できます)
  • ドキュメント用のGoogleDocs(通常はデザイナー、マネージャー、プロデューサー向けのデザインドキュメント/モックアップ/ピッチ用)

(異なる時間に働く)異なるメンバーの努力を調整するために、Assemblaのチケットシステムを使用します。このようにして、プロジェクト全体のステータスまたは選択した特定の方法で全員が更新されます。また、Skype / Google Hangout / Face-to-faceコミュニケーションを使用して、少なくとも1週間ごとに全員が同じページにいることを確認します。

この方法は通常、チームが3〜5人の役割(プログラマー、アーティスト、モデラー、デザイナーなど)を確立したときに構成されます。これでうまくいかない場合は、他の方法を試すか、作業面を組み合わせて独自の方法を作成してください。がんばろう!


それは彼が尋ねた開発の唯一の側面であるため、コードのバージョン管理についてのみ話しましたが、私のスタジオもこの回答と同じ目的でDropboxとGoogle Docsを使用しています。
-jhocking

素晴らしい組み合わせ。
ビルK

7

ドロップボックス、バージョン管理システム、またはその両方が必要なようです。

Dropboxが最も便利です。変更を加えて保存するだけで、Dropboxは友人のマシンの変更を同期します。2人が同時にファイルを操作できるとは思わないでください。ただし、お互いを上書きせずに作業できます。

ただし、バージョン管理システムSubversionGIT、およびMercurialは現在大きな3 を使用することをお勧めします。VCSを使用することには多くの利点があります。サーバーにアクセスできます。

私が言及した3を使用したので、Subversionを使用するのが最も簡単であり、Assemblaでは無料のプライベート SVNまたはGITリポジトリを使用できます。


9
私はこの種のことのためにドロップボックスが本当に好きではありません。Tortoise *製品のいずれかを使用している場合、同様の種類のWindowsエクスプローラー統合がありますが、コミット/プッシュ/プル/マージを制御できるため、「2人が互いに上書きする」問題は発生しません。
ジミー

2
私もVCSをお勧めする理由はありません。ただし、学習曲線はほとんどなく、すぐにバックアップを取得できるため、言及する価値があると考えました。
ClassicThunder

9
バージョン管理システムの代わりにDropBoxを使用しないことをお勧めします。2人が同じ時間枠に同じファイルを変更すると、DropBoxはファイルを複製します。ソースコードの場合、これは通常、望ましくなく、ソース管理システムを使用するだけの苦痛です。
ジョンマクドナルド

Subversionの使用は簡単ではありません。他の方法を使用する人と同じように、Subversionを使用した人は混乱を招くでしょう。
rjmunro

私はそれがそうだと言ったことはありません。私は、学ぶことを手に入れるのが一番簡単だと言った。「Subversionは使いにくい」などの主観的な発言を絶対的な言葉で表現するのは愚かです。
ClassicThunder

5

他の回答で述べたように、VCSが道です。Gitは私のお気に入りですが、それは私が最初に使用したGitである可能性があります。

このオンラインの本は、Gitの学習に非常に役立ちました。http://progit.org/book/ どのVCSを使用する場合でも、使用方法を理解するために数時間を費やす価値があります。

言及する価値のあるもう1つのこと-VCSはソースコード(または任意のテキストファイル)に適していますが、画像や音声ファイルを保存すると、リポジトリが不必要に大きくなる可能性があります。このために別のリポジトリを推奨する人もいますが、Dropboxはこれらの種類のリソースに適しています。

学校プロジェクトでは、パブリックDropboxフォルダーを使用し、このスクリプトを使用してリソースを最新の状態に保ちましたhttps://github.com/dc2011/td/blob/master/tools/extrafiles.sh

Dropbox内のファイルのmd5ハッシュを、既にディスク上にあるファイルのハッシュ(存在する場合)と照合して、新規または変更されたファイルのみがダウンロードされるようにします。


1
ええ、私はsvnを使用していました。現在、私は常にGitを使用しています。多くの人々はコマンドラインを嫌いますが、私はそれが本当に快適であると思います。Windowsでは、Git-bash環境をラップするコンソールを使用します。OSxでは、Solarizedテーマのあるターミナルのみです。
プロザカー

私は同意します、できればターミナルに住んでいます!学習曲線が少し急な場合もありますが、自動化が非常に簡単になります。OSXを定期的に使用する場合は、iTerm2をチェックアウトする必要があります。256色とフルスクリーンモードをサポートし、分割を非常にうまく利用します。
ディーン

4

多くの人が述べたように、バージョン管理が必要です。FogCreekソフトウェアから無料の無料提供サービスがあります(このサイトを可能にするスタック交換を提供してくれたことに感謝します)。それが呼び出される(の上に構築されたのMercurial)と、それは彼らが呼ばれる築いてきた素敵なバグ/機能/時間のトラッキングソフトウェア製品と統合FogBugzの。2人の開発者からなるチームに対して、これらの製品の無料バージョンを提供します(そして、それらをホストします)。私はこのセットアップを自分のプロジェクトに使用し、雇用主のために作業しているすべてのソフトウェア製品の有料版を使用します(開発者のチームははるかに大きいため、有料版を使用する必要があります)。確かに一見の価値があります。

これらを使用することに決めた場合、開始するためのいくつかの優れたチュートリアルまたは便利なリンクを次に示します。


1

チームがスムーズなコラボレーションに使用するツール:

•GitHub。少しのお金があれば、すべてのソースをホストする非常に安価で簡単な方法です。これは、ほとんどの人が話しているバージョン管理プラットフォームです。ローカルハードドライブ上に存在し、チームメンバーのいずれかが変更を加えるたびに更新されるPastebinアカウントと考えてください。ホストされているプロジェクトは預託機関と呼ばれます。無料のGitクライアントがたくさんありますが、そのうちのいくつかはWindowsに直接統合され、保管庫をクリーンで最新の状態に保ちます。

•ゲームデザインドキュメント、アイデア、コンセプトアートのGoogleドキュメント。

•特定のアセットまたはスクリプトが必要な場合にDropBoxを使用することがありますが、これはまれであり、GitHubを使用することを好みます。


1

Visual Studioを使用している場合、最良のオプションはTeam Foundationであり、Microsoftからのものであり、私が知っている最高のバージョン管理です(クライアントは既にVisual Studioを使用しています)、機会があれば試してください。


現在、Team Foundationを使用していますが、ブランチのブランチとマージに関する質問があります。2つのブランチを作成し、誰かがクラスにコードを追加し、それらをマージするときにクラスに異なるコードを追加すると、両方の変更がファイルに追加されるか、エラーが発生し、変更の1つを選択する必要があります?
steakbbq

私はそのためにブランチを使用しません、異なるバージョンにブランチを使用します、あなたがそのビジュアルスタジオを行うと、おそらく悪いマージを行います(誰かがクラスを使用していて、別のものが同じクラスをチェックアウトし、2つが追加する場合コード、Visual Studioは手動マージを行うように要求します)、クラスに同時に変更を加えたい場合、なぜ部分クラスを使用しないのですか?さまざまなバージョンのブランチを使用して、バージョンをより細かく制御できるようにします
Rudy_TM

「Team Foundationは、Microsoftの製品であり、私が知っている最高のバージョンコントロールです。」
アンディM

1

仮想ペアのプログラミングには、次のセットアップを使用します(Skypeですべてを調整します)。

  1. マシンの1つにSSHサーバーをインストールします。
  2. tmuxをインストールする
  3. 他の人はあなたのコンピューターにsshします。
  4. ホストにtmuxセッションを開始させる
  5. パートナーにSSH接続で「tmux at」を実行させる

これで、あなたとあなたの友人はまったく同じ端末画面を見ます。しかし、あなたはおそらくあなたのコンピューターの外で一緒に働く能力を望んでいますよね?

  1. Bitbucket.orgアカウントを作成し、プロジェクト(私はGitを好む)を作成し、空のリポジトリの作成に関する指示に従います。
  2. 「git add。&& git commit -m 'Initial commit。'」でプロジェクトのファイルをコピーします
  3. 「git push origin master」を使用してBitbucketにプッシュする

これで、あなたとあなたの友人は独立して変更に取り組み、準備ができたらそれらをBitbucketにプッシュできます。

これにより、Visual Studioで両方のユーザーが一緒に編集することはできませんが、新しい機能のペアリングや問題のデバッグを行う場合は、ソースコード自体を編集できます。後で変更をプッシュする限り、友人はVSでそれを開くことができます。


1

Bazaarのバージョン管理をお勧めします。小さく、実用的で、小さな/ one2few男性プロジェクトに非常に適しています。GitとSVNは、より大きなプロジェクト/チームでより頻繁に使用されます。Bazaarは開発中のVSプラグインを持っていますが、あなたにとってはVS以外でそれを使用しても大きな違いはありません。それを理解し、最初に設定すれば、簡単に使用できます。便利になるプラグインがいくつかあります。


-2

既に多くの良い提案がありますが、もしあなたがローテクでシンプルなソリューションを求めているなら、これは私が共同作業をするときにうまくいきます:

  1. 各スクリプトの先頭にコメントを使用して、編集された日時、誰がいつ編集したかを追跡します。

    Vers      Date      Author   Note
    
    1.0.1     12/10/11  Paul     Added a new boss to level 12
    1.0.2     22/11/11  Frank    Fixed the bug introduced by Paul
  2. プライベートフォーラムまたはより良いWikiは、アイデアを伝え、全員に進捗状況を知らせる良い方法です。

既に与えられたアイデアはこのソリューションよりも優れていますが、これは最小限の時間投資で実装するのが非常に簡単です。数人の人々が一緒に作業する小さなプロジェクトでは、ニーズに十分かもしれません。

大規模なグローバル組織で働いたことがあるので、正直に言って、バージョン管理ソフトウェア(MKS)を取り巻く赤テープのために失われた時間は本当に痛いです!


各スクリプトの冒頭にあるようなコメントは嫌いです。とにかく、それはここでの質問に対処しません。変更を追跡するための手法では、チームメンバーがお互いに作業を共有する方法については何もわかりません。
-jhocking

まあ、コミュニケーションは問題ではありません、私の仲間の開発者は一日中ベントリロに座って、私たちはかなりたくさん笑います。
steakbbq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.