Was ist die effektivste Art, mit einem Freund am selben Spiel zu arbeiten?

29

Wir brauchen etwas, wo wir Dateien auschecken, bearbeiten, wieder einchecken und dann daraus erstellen können.

So etwas wie Google Docs, bei dem wir denselben Code zur gleichen Zeit bearbeiten können, wäre ideal.

Wir verwenden beide Visual Studio 2010.

Steakbbq
quelle
2
Ich habe mich immer gefragt, warum niemand die docs-ähnliche Bearbeitung für Code gemacht hat (oder zumindest nicht gefunden habe). Ich schätze, es gibt einige inhärente Schwierigkeiten wie die Vervollständigung von Code und die Tatsache, dass Code kompiliert werden muss, aber sie scheinen mit etwas Koordination (und möglicherweise Tricks wie Strategien zum verzögerten Zusammenführen von Code) nicht völlig unmöglich zu überwinden zu sein ECHTES Problem bei großen Projekten. Ich werde sowieso nach kollaborativen Codierungswerkzeugen graben müssen (oder selbst eins machen: P)
kaoD
1
@kaoD SubEthaEdit bietet diese Art von Funktionalität auf Dateibasis (nicht sicher, wie gut es mit großen Mengen von Dateien umgeht).
michael.bartnett
Wenn mir jemand ein Programm wie dieses für Windows und C # finden kann, gebe ich Ihnen ein Cookie.
Steakbbq
1
Emacs kann das, aber es ist klobig: emacswiki.org/emacs/CollaborativeEditing ; oder MoonEdit: moonedit.com (obwohl ich nicht weiß, ob es einen C # -Modus hat); oder Gobby: en.wikipedia.org/wiki/Gobby
amitp
Wie schwer wäre es, einen neuen Compiler IE sublime zu schreiben? Es wäre wahrscheinlich einfacher, ein Plugin für sublime zu entwickeln, oder?
Steakbbq

Antworten:

19

Wie ich in einem Kommentar zu Ihrer Frage festgestellt habe, bin ich sehr neugierig auf echte gemeinsame Bearbeitung . Ich habe vor einiger Zeit recherchiert, aber die meisten Lösungen entsprachen einfach nicht den Standards: Entweder waren sie reine Texteditoren mit Syntax-Highlight, hatten verrückte Kosten oder waren plattformübergreifend nicht verfügbar (wie SubEthaEdit ...).

Bis ich über Saros gestolpert bin ! Es ist ein hübsches Eclipse-Plugin, sodass es möglicherweise einfach ist, es in Ihren aktuellen Workflow zu integrieren. Sie können ihr Demo-Video ansehen , es ist ziemlich beeindruckend. Es ist sehr gut für eine echte kollaborative Bearbeitungsumgebung gedacht und verfügt über einige sehr gut durchdachte Schlüsselfunktionen. Es unterstützt eine beliebige Anzahl von Teilnehmern, vollständige Projektsynchronisierung, Echtzeitbearbeitung mit Markierungen und Hervorhebungen (z. B. Google Docs), die Ansicht Ihres Partners, verschiedene Methoden zur Erkennung von Teilnehmern und vieles mehr (Sie können Ihren Bildschirm mithilfe dieses Plugins sogar freigeben. ) Und anscheinend integriert es sich in viele andere Eclipse-Plugins!

Ich habe es selbst noch nicht getestet, aber es ist eines der wenigen Projekte, das noch gepflegt wird und sehr vielversprechend aussieht. Probieren Sie es aus und lassen Sie es mich wissen (lesen Sie diese Richtlinien zuvor). Ich verspreche, dass ich hierher zurückkehren und meine Eindrücke als Kommentar posten werde, wenn ich es selbst versuche.

EDIT: Auch, wie Gustavo in einem Kommentar zeigte, könnte Cacoo auch nützlich sein. Es ist ein Online-Tool für die Zusammenarbeit zum Zeichnen von UMLs (eigentlich jede Art von Diagramm). Saros unterstützt ein Whiteboard, aber es gibt nichts Schöneres als ein Diagramm-Tool, wenn Sie Ungeschicklichkeit vermeiden möchten.

kaoD
quelle
3
Die Leute gaben viele Antworten, alle auf Versionssysteme, aber ich denke, das ist die eigentliche Antwort auf die Frage. +1 für die gemeinsame Bearbeitung. Übrigens, probieren Sie Cacoo aus (google it). Es ist ein kollaboratives Tool zum Erstellen von UMLs, das mir bei einer Reihe von Projekten geholfen hat. Es kann Ihre Antwort ergänzen.
Gustavo Maciel
1
@ Gustavo-Gtoknu sehr gutes Tool, stört es dich, wenn ich die Antwort damit aktualisiere?
kaoD
2
Mach es jetzt! : D Die Antwort hat es verdient.
Gustavo Maciel
Das ist großartig, aber Eclipse ist für Java? Ich
laufe
@steakbbq Es gibt einige Plugins, die C # -Unterstützung bieten ( Emonic und Improve ), aber leider fehlt ihnen anscheinend die Unterstützung für Debugging und Refactoring.
kaoD
36

"Wir brauchen nur etwas, wo wir Dateien auschecken können, sie bearbeiten und dann wieder einchecken und aus dem gleichen Satz von Dateien erstellen können."

Verwenden Sie die Versionskontrolle. Ein Versionskontrollsystem (VCS) ist genau das, was Sie beschrieben haben, mit dem zusätzlichen Bonus, dass es einen Verlauf jeder Änderung speichert, die jemand vorgenommen hat. Es gibt viele beliebte Versionskontrollsysteme:

http://subversion.apache.org/

http://mercurial.selenic.com/

http://git-scm.com/

Ich benutze Visual Studio nicht persönlich, aber ich bin mir völlig sicher, dass Visual Studio alle diese Versionskontrollsysteme unterstützt.

schockierend
quelle
11
Ich habe gerade einen kostenlosen privaten Git / HG-Host im Chat verteilt: bitbucket.org (kostenlos für bis zu 5 Mitarbeiter). HG ist auch besser geeignet, da es Plugins für große Binärinhalte (Content-Projekte) bietet.
Jonathan Dickinson
2
+1 Ein VCS ist der richtige Weg. Ich benutze AnkhSVN als mein Visual Studio Plugin für Subversion.
Richard Marskell - Drackir
2
+1 hier. meine persönliche Bestätigung ist TortoiseSVN. Für das Hosting (unter der Annahme von Open Source) empfehle ich Google Code
PlayDeezGames
4
Verwandte Themen
Jesse Dorsey
2
Bitte nicht subversionieren. Die verteilte Versionskontrolle ist für Personen, die nicht an zentralisierte Systeme gewöhnt sind, ganz einfach. Leute, die Subversion benutzt haben, verpassen es und werden verwirrt.
rjmunro
9

Für mein Team verwenden wir drei Programme, je nachdem, woran wir arbeiten müssen:

  • TortoiseSVN für Code (versuchen Sie, dass Programmierer dieselbe IDE verwenden, Konventionen standardisieren und zu guten Kommentaren anregen)
  • Dropbox für Multimedia (für Modelle / Sprites / Audiodateien können Entwickler lokal arbeiten, bis Künstler / Komponisten / Modellbauer zur Auslieferung bereit sind)
  • GoogleDocs zur Dokumentation (für Designdokumente / Mockups / Pitches in der Regel für Designer, Manager und Produzenten)

Um die Bemühungen der verschiedenen Mitglieder (die zu unterschiedlichen Zeiten arbeiten) zu koordinieren, verwenden wir das Ticketingsystem von Assembla . Auf diese Weise wird jeder über den Status des gesamten Projekts oder einer bestimmten Straße seiner Wahl informiert. Verwenden Sie auch Skype / Google Hangout / Face-to-Face- Kommunikation, um sicherzustellen, dass alle mindestens wöchentlich auf derselben Seite sind.

Diese Methode funktioniert normalerweise, wenn ein Team aus 3-5 Personen besteht, die Rollen festgelegt haben (Programmierer, Künstler, Modellbauer, Designer usw.). Wenn dies nicht funktioniert, probieren Sie andere Methoden aus oder kombinieren Sie Arbeitsaspekte, um eine eigene zu erstellen. Viel Glück!

Mythenbauer
quelle
Ich habe nur über die Versionskontrolle für Code gesprochen, da dies der einzige Aspekt der Entwicklung ist, nach dem er gefragt hat, aber mein Studio verwendet Dropbox und Google Docs für die gleichen Zwecke wie diese Antwort.
jhocking
Tolle Kombination.
Bill K
7

Klingt nach Dropbox, Versionskontrollsystem oder beidem.

Dropbox ist am bequemsten. Nehmen Sie einfach Ihre Änderungen vor und speichern Sie sie. Dropbox synchronisiert die Änderungen auf dem Computer Ihres Freundes. Denken Sie nicht, dass zwei Personen gleichzeitig an der Datei arbeiten können, ohne dass die Arbeit der anderen Personen überschrieben wird.

Ich empfehle jedoch, ein Versionskontrollsystem wie Subversion , GIT und Mercurial zu verwenden sind derzeit die großen 3. Die Verwendung eines VCS bietet eine Reihe von Vorteilen: Dazu gehört die Möglichkeit, Sicherungen, Rollback-Änderungen und das Auschecken von Code auf jedem Computer zu automatisieren das hat Zugriff auf Ihren Server.

Nachdem ich die 3, die ich erwähnte, verwendet hatte, war es für mich am einfachsten, mit Subversion zu beginnen, und Assembla ermöglicht kostenlose private SVN- oder GIT-Repositories.

ClassicThunder
quelle
9
Ich mag keine Dropbox für so etwas. Wenn Sie eines der Tortoise * -Produkte verwenden, hat es eine ähnliche Art von Windows Explorer-Integration, aber Sie können Commit / Push / Pull / Merge steuern, damit Sie nicht das Problem haben, dass sich zwei Personen gegenseitig überschreiben.
Jimmy
2
Ich auch nicht, weshalb ich ein VCS empfehle. Es gibt jedoch fast keine Lernkurve und Sie haben sofort ein Backup, sodass ich es für erwähnenswert hielt.
ClassicThunder
9
Ich würde empfehlen , DropBox nicht anstelle eines Versionskontrollsystems zu verwenden. Wenn zwei Personen dieselbe Datei im selben Zeitraum ändern, dupliziert DropBox die Datei. Für Quellcode ist dies normalerweise unerwünscht und eher ein Schmerz, der nur durch die Verwendung eines Quellcodeverwaltungssystems entsteht.
John McDonald
Subversion ist nicht einfacher zu bedienen - Menschen, die es nur gewohnt sind, werden es genauso verwirrend finden wie Menschen, die in die andere Richtung gehen.
rjmunro
Ich habe es nie gesagt. Ich sagte für mich, es sei am einfachsten, etwas gelernt zu haben. Es ist dumm, subjektive Aussagen wie "Subversion ist nicht einfacher zu benutzen" in absoluten Zahlen zu formulieren.
ClassicThunder
5

Wie bereits in anderen Antworten erwähnt, ist ein VCS der richtige Weg. Git ist mein Favorit, aber das könnte nur daran liegen, dass es das erste war, das ich benutzt habe.

Ich fand dieses Online-Buch sehr hilfreich, um Git zu lernen. http://progit.org/book/ Für welches VCS Sie sich auch entscheiden, es lohnt sich, ein paar Stunden Zeit zu investieren, um herauszufinden, wie Sie es verwenden sollen.

Eine andere erwähnenswerte Sache - VCS eignen sich hervorragend für Quellcode (oder Textdateien), aber das Speichern von Bildern und Audiodateien kann Ihr Repository unnötig aufblähen lassen. Einige Leute empfehlen ein separates Repository dafür, aber ich finde, Dropbox funktioniert gut für diese Art von Ressourcen.

Für ein Schulprojekt haben wir einen öffentlichen Dropbox-Ordner verwendet und dieses Skript verwendet, um unsere Ressourcen auf dem neuesten Stand zu halten: https://github.com/dc2011/td/blob/master/tools/extrafiles.sh

Es prüft den MD5-Hash der Datei in Dropbox gegen den Hash der Datei, die sich bereits auf der Festplatte befindet (falls vorhanden), damit nur neue oder geänderte Dateien heruntergeladen werden.

Dean
quelle
1
Ja, ich habe Svn benutzt. Jetzt benutze ich immer Git. Obwohl die Befehlszeile vielen Leuten nicht gefällt, finde ich sie sehr bequem. Unter Windows verwende ich Console, das die Git-Bash-Umgebung umschließt. Auf OSx ist es nur Terminal mit dem Thema Solarized.
Prozaker
Ich stimme zu, ich wohne im Terminal, wenn ich kann! Es gibt manchmal eine etwas steilere Lernkurve, aber dies erleichtert die Automatisierung erheblich. Wenn Sie OSX regelmäßig verwenden, sollten Sie iTerm2 ausprobieren. Es unterstützt 256 Farben sowie den Vollbildmodus und nutzt Splits sehr gut.
Dean
4

Wie bereits erwähnt, benötigen Sie eine Versionskontrolle. Es gibt ein nettes kostenloses Angebot von FogCreek-Software (Sie haben ihnen zu verdanken, dass sie Stackexchange bereitgestellt haben, wodurch diese Site möglich wird). Es heißt Kiln (auf Mercurial basierend ) und ist in ein schönes Bug- / Feature- / Zeiterfassungs- Softwareprodukt namens FogBugz integriert . Für ein Team von 2 Entwicklern stellen sie kostenlose Versionen dieser Produkte zur Verfügung (und hosten sie für Sie). Ich verwende dieses Setup für meine eigenen Projekte und die kostenpflichtigen Versionen für alle Softwareprodukte, an denen ich für meinen Arbeitgeber arbeite (wir haben ein viel größeres Entwicklerteam und müssen daher die kostenpflichtigen Versionen verwenden). Auf jeden Fall einen Blick wert.

Wenn Sie diese verwenden möchten, finden Sie hier einige gute Tutorials oder nützliche Links, die Ihnen den Einstieg erleichtern:

Jason Down
quelle
1

Tools, die mein Team für eine reibungslose Zusammenarbeit verwendet:

• GitHub, das, wenn Sie ein bisschen Geld haben, eine äußerst kostengünstige und einfache Möglichkeit ist, alle Ihre Quellen zu hosten. Dies ist die Versionskontrollplattform, über die die meisten Leute hier gesprochen haben. Stellen Sie sich ein Pastebin-Konto vor, das auf Ihrer lokalen Festplatte vorhanden ist und aktualisiert wird, wenn eines Ihrer Teammitglieder Änderungen vornimmt. Gehostete Projekte werden als Verwahrstellen bezeichnet. Es gibt jede Menge kostenloser Git-Clients, von denen einige direkt in Windows integriert sind, um Ihre Verwahrungsorte sauber und auf dem neuesten Stand zu halten.

• Google-Dokumente für Dokumente, Ideen und Konzepte zur Spielgestaltung.

• Gelegentliche Verwendung von DropBox, wenn einer von uns ein bestimmtes Asset oder Skript benötigt ... dies ist jedoch selten und wir arbeiten lieber mit GitHub.

Sam Loeschen
quelle
1

Wenn Sie Visual Studio verwenden, ist Team Foundation die beste Option, stammt von Microsoft und ist die beste Versionskontrolle, die ich kenne. Das Negative ist, dass Sie einen Server, einen SQL-Server und einen Team Foundation-Server benötigen, um auf dem Server ausgeführt zu werden (der Kunde ist bereits bei Visual Studio), wenn Sie die Chance haben, probieren Sie es aus.

Rudy_TM
quelle
Ich verwende derzeit Team Foundation. Ich habe eine Frage zum Verzweigen und Zusammenführen von Zweigen. Wenn ich zwei Verzweigungen mache und jemand einer Klasse Code hinzufügt und ich der Klasse beim Zusammenführen einen anderen Code hinzufüge, werden beide Änderungen zur Datei hinzugefügt, oder es wird eine Fehlermeldung angezeigt und eine der Änderungen muss ausgewählt werden ?
Steakbbq
Ich verwende keinen Zweig dafür, ich verwende einen Zweig für verschiedene Versionen, wenn du das machst, macht das Visual Studio möglicherweise die Zusammenführung schlecht (es ist wie wenn jemand eine Klasse verwendet und eine andere die gleiche Klasse auscheckt und die beiden hinzufügen) Wenn Sie gleichzeitig Änderungen an einer Klasse vornehmen möchten, warum verwenden Sie keine Teilklassen? Verwenden Sie die Zweige für die verschiedenen Versionen, damit Sie mehr Kontrolle über Ihre Versionen haben
Rudy_TM
"Team Foundation, stammt von Microsoft und ist die beste Versionskontrolle, die ich kenne" Oh, Schatz :) Hast du jemals etwas anderes ausprobiert?
Andy M
1

Für die Programmierung von virtuellen Paaren verwende ich dieses Setup (das alles über Skype koordiniert):

  1. Installieren Sie einen SSH-Server auf einem Ihrer Computer.
  2. Installieren Sie tmux
  3. Die andere Person ist mit Ihrem Computer verbunden.
  4. Lassen Sie den Host eine tmux-Sitzung starten
  5. Lassen Sie Ihren Partner in seiner SSH-Verbindung 'tmux at' ausführen

Jetzt sehen Sie und Ihr Freund genau denselben Terminalbildschirm. Aber Sie möchten wahrscheinlich die Möglichkeit haben, auch außerhalb Ihres Computers zusammenzuarbeiten, oder?

  1. Erstelle ein Bitbucket.org-Konto, erstelle ein Projekt (ich bevorzuge Git) und folge den Anweisungen, um ein leeres Repository zu erstellen.
  2. Kopieren Sie die Dateien Ihres Projekts mit "git add. && git commit -m 'Initial commit'".
  3. Push to Bitbucket mit "Git Push Origin Master"

Jetzt können Sie und Ihr Freund unabhängig an Änderungen arbeiten und diese an Bitbucket weiterleiten, wenn Sie bereit sind.

Auf diese Weise können Sie beide in Visual Studio nicht auf nette Weise zusammenarbeiten, aber Sie können den Quellcode selbst bearbeiten, wenn Sie eine neue Funktion koppeln oder ein Problem beheben. Solange Sie Ihre Änderungen nachträglich vornehmen, kann Ihr Freund sie in VS öffnen.

Michael Burge
quelle
1

Ich würde Bazaar Versionskontrolle vorschlagen . Es ist klein, praktisch, sehr gut für kleine / one2few Männerprojekte. Git und SVN werden häufiger für größere Projekte / Teams verwendet. Bazaar hat ein VS-Plugin in der Entwicklung, aber für Sie macht es keinen großen Unterschied, es außerhalb von VS zu verwenden. Es ist sehr einfach, es zu benutzen, sobald Sie es kennengelernt und eingerichtet haben. Es gibt ein paar weitere Plugins, die sich als nützlich erweisen.

edin-m
quelle
-2

Viele gute Vorschläge bereits, aber wenn Sie sich für eine einfache und einfache Lösung entscheiden möchten, funktioniert dies für mich, wenn ich zusammenarbeite:

  1. Verwenden Sie die Kommentare am Kopf jedes Skripts, um zu protokollieren, wann und von wem es bearbeitet wurde.

    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. Ein privates Forum oder noch besser ein Wiki ist eine gute Möglichkeit, Ideen zu kommunizieren und alle über den Fortschritt auf dem Laufenden zu halten.

Die bereits gegebenen Ideen sind besser als diese Lösung, aber dies ist sehr einfach mit minimalem Zeitaufwand umzusetzen. Für ein kleines Projekt mit nur ein paar Leuten, die zusammenarbeiten, könnte es für Ihre Bedürfnisse ausreichen.

Nachdem ich für ein großes globales Unternehmen gearbeitet habe, kann ich ehrlich sagen, dass der Zeitverlust durch Bürokratie in Bezug auf die Versionskontrollsoftware (MKS) ein echtes Problem ist!

davidjwest
quelle
ugh ich hasse solche Kommentare an der Spitze jedes Skripts. Und sowieso geht das hier nicht auf die Frage ein; Techniken zum Nachverfolgen von Änderungen sagen nichts darüber aus, wie die Teammitglieder ihre Arbeit miteinander teilen.
jhocking
Nun, Kommunikation ist kein Problem, meine Kollegen sitzen den ganzen Tag mit mir im Ventrilo und wir reden ziemlich viel lol.
Steakbbq