Jaki jest najskuteczniejszy sposób pracy ze znajomym w tej samej grze?

29

Potrzebujemy czegoś, w którym możemy sprawdzić pliki, edytować je, sprawdzić z powrotem, a następnie zbudować z nich.

Idealne byłoby coś takiego jak Dokumenty Google, w których możemy edytować ten sam kod w tym samym czasie.

Oboje używamy Visual Studio 2010.

steakbbq
źródło
2
Zawsze zastanawiałem się, dlaczego nikt nie znalazł (a przynajmniej nie znalazłem) edytowania kodu w stylu Dokumentów. Wydaje mi się, że istnieją pewne nieodłączne trudności, takie jak uzupełnianie kodu i fakt, że kod musi zostać skompilowany, ale nie wydaje się to całkowicie niemożliwe do pokonania przy pewnej koordynacji (i możliwe sztuczki, takie jak strategie scalania opóźnionego kodu). Myślę, że są one PRAWDZIWY problem w dużych projektach. W każdym razie będę musiał
szukać
1
@kaoD SubEthaEdit oferuje tego rodzaju funkcje dla poszczególnych plików (nie wiem, jak dobrze obsługuje duże ilości plików).
michael.bartnett
Jeśli ktoś znajdzie mi taki program dla Windows i c #, dam ci ciasteczko.
steakbbq
1
Emacs może to zrobić, ale jest niezgrabny: emacswiki.org/emacs/CollaborativeEditing ; lub MoonEdit: moonedit.com (chociaż nie wiem, czy ma tryb C #); lub Gobby: en.wikipedia.org/wiki/Gobby
amitp
Jak trudno byłoby napisać nowy wzniosły IE kompilatora IE? Prawdopodobnie łatwiej byłoby stworzyć wtyczkę dla wzniosłych, prawda?
steakbbq

Odpowiedzi:

19

Jak powiedziałem w komentarzu do twojego pytania, jestem bardzo ciekawy prawdziwej współpracy przy edycji . Przeprowadziłem badania jakiś czas temu, ale większość rozwiązań po prostu nie spełniała standardów: były to edytory zwykłego tekstu z podświetleniem składni, miały szalone koszty lub były niedostępne na różnych platformach (jak SubEthaEdit ...)

Dopóki nie natknąłem się na Saros ! Jest to zgrabna wtyczka Eclipse, więc integracja z bieżącym procesem może być łatwa. Możesz obejrzeć ich film demonstracyjny , robi wrażenie. Jest bardzo dobrze przemyślany, aby stworzyć prawdziwe środowisko do współpracy i ma kilka bardzo dobrze przemyślanych kluczowych funkcji. Obsługuje dowolną liczbę uczestników, pełną synchronizację projektu, edycję w czasie rzeczywistym ze znacznikami i wyróżnianie (ala Google Docs), zgodnie z opinią partnera, kilka metod uświadamiania uczestników i wiele więcej (możesz nawet udostępnić swój ekran za pomocą tej wtyczki. ) I najwyraźniej integruje się z wieloma innymi wtyczkami Eclipse!

Sam jeszcze go nie przetestowałem, ale jest to jeden z niewielu wciąż prowadzonych projektów i wygląda bardzo obiecująco. Daj mu szansę i daj mi znać (przeczytaj te wytyczne wcześniej). Obiecuję, że wrócę tutaj i opublikuję swoje wrażenia jako komentarz, gdy spróbuję sam.

EDYCJA: Ponadto, jak zauważył Gustavo w komentarzu, Cacoo może być również użyteczny. Jest to internetowe narzędzie współpracy do rysowania UML-ów (właściwie każdego rodzaju diagramu). Saros obsługuje tablicę, ale nie ma nic takiego jak narzędzie do diagramu, jeśli chcesz uniknąć niezręczności.

kaoD
źródło
3
Ludzie udzielali wielu odpowiedzi, wszystkie na systemach kontroli wersji, ale myślę, że to jest właściwa odpowiedź na pytanie. +1 za edycję grupową. BTW, wypróbuj Cacoo (google it) To narzędzie do tworzenia UML-ów, pomogło mi w wielu projektach, może uzupełnić twoją odpowiedź.
Gustavo Maciel
1
@ Gustavo-Gtoknu naprawdę bardzo dobre narzędzie, czy masz coś przeciwko, jeśli zaktualizuję odpowiedź za jego pomocą?
kaoD
2
Zrób to teraz! : D Odpowiedź zasługuje.
Gustavo Maciel
To jest świetne, jednak Eclipse jest dla java?
Korzystam
@steakbbq jest kilka wtyczek, które zapewniają obsługę C # ( Emonic i Improve ), ale niestety wydaje się, że brakuje wsparcia w debugowaniu i refaktoryzacji.
kaoD
36

„Potrzebujemy tylko miejsca, w którym możemy sprawdzić pliki, edytować je, a następnie ponownie sprawdzić i skompilować z tego samego zestawu plików”

Użyj kontroli wersji; system kontroli wersji (VCS) jest dokładnie tym, co opisałeś, z dodatkową korzyścią, że przechowuje on historię każdej zmiany, którą ktoś wprowadził. Istnieje wiele popularnych systemów kontroli wersji:

http://subversion.apache.org/

http://mercurial.selenic.com/

http://git-scm.com/

Nie używam Visual Studio osobiście, ale jestem całkowicie pewien, że Visual Studio obsługuje wszystkie te systemy kontroli wersji.

jhocking
źródło
11
Właśnie rozdałem darmowego prywatnego hosta Git / HG na czacie: bitbucket.org (bezpłatny dla maksymalnie 5 współpracowników). Również HG jest bardziej odpowiedni, ponieważ ma wtyczki, które obsługują duże treści binarne (projekty treści).
Jonathan Dickinson
2
+1 A VCS jest właściwą drogą. Używam AnkhSVN jako mojej wtyczki Visual Studio do Subversion.
Richard Marskell - Drackir
2
+1 tutaj. moje osobiste poparcie to TortoiseSVN. W przypadku hostingu (przy założeniu, że oprogramowanie typu open source) zalecam kod Google
PlayDeezGames,
2
Proszę nie subversion. Rozproszona kontrola wersji jest całkowicie prosta dla osób nieprzyzwyczajonych do pracy ze scentralizowanymi systemami. Ludzie przyzwyczajeni do wywrotu nie mogą się pomylić.
rjmunro
9

W moim zespole korzystamy z trzech programów w zależności od tego, nad czym musimy pracować:

  • TortoiseSVN dla kodu (staraj się, aby programiści używali tego samego IDE, standaryzuj konwencje i zachęcaj do dobrych komentarzy)
  • Dropbox do multimediów (dla modeli / duszków / plików audio, pozwala deweloperom pracować lokalnie, dopóki artyści / kompozytorzy / modelerzy nie będą gotowi dostarczyć)
  • GoogleDocs do dokumentacji (do dokumentów projektowych / makiet / podziałek zwykle dla projektantów, menedżerów i producentów)

Aby koordynować wysiłki różnych członków (którzy pracują w różnym czasie), korzystamy z systemu biletowego Assembli. W ten sposób wszyscy są na bieżąco informowani o stanie całego projektu lub wybranej przez siebie alei. Użyj również Skype / Google Hangout / komunikacji aby mieć pewność, że wszyscy będą na tej samej stronie co najmniej raz w tygodniu.

Ta metoda zazwyczaj działa, gdy zespół składa się z 3-5 osób, które mają ustalone role (programista, artysta, modelarz, projektant itp.). Jeśli to nie zadziała, wypróbuj inne metody lub połącz działające aspekty, aby stworzyć własną. Powodzenia!

budowniczy mitów
źródło
Mówiłem tylko o kontroli wersji kodu, ponieważ jest to jedyny aspekt rozwoju, o który prosił, ale moje studio używa Dropbox i Dokumentów Google do tych samych celów, co ta odpowiedź.
jhocking
Świetne połączenie.
Bill K
7

Wygląda na to, że chcesz albo drop box, system kontroli wersji, albo jedno i drugie.

Dropbox jest najwygodniejszy. Po prostu wprowadź zmiany i zapisz, a Dropbox zsynchronizuje zmiany na komputerze twojego znajomego. Nie sądzę, że 2 osoby mogą jednocześnie pracować nad plikiem bez wzajemnego nadpisywania.

Zalecam jednak użycie systemu kontroli wersji Subversion , GIT i Mercurial to obecnie duże 3. Korzystanie z VCS ma wiele zalet: w tym możliwość automatyzacji tworzenia kopii zapasowych, wycofywania zmian i sprawdzania kodu na dowolnym komputerze który ma dostęp do twojego serwera.

Po skorzystaniu z 3, o których wspomniałem, Subversion jest najłatwiejszy do rozpoczęcia, a Assemblela pozwala na bezpłatne prywatne repozytoria SVN lub GIT.

ClassicThunder
źródło
9
Naprawdę nie lubię dropboxa dla takich rzeczy. Jeśli używasz któregokolwiek z produktów Tortoise *, ma on podobny rodzaj integracji z Eksploratorem Windows, ale możesz kontrolować zatwierdzanie / push / pull / merge, więc nie będziesz mieć problemu z „nadpisywaniem się dwóch osób”.
Jimmy
2
Ja też nie, dlatego polecam VCS. Jednak nie ma prawie żadnej krzywej uczenia się i natychmiast masz kopię zapasową, więc uznałem, że warto o tym wspomnieć.
ClassicThunder
9
Polecam nie używać DropBox zamiast systemu kontroli wersji. Jeśli dwie osoby zmodyfikują ten sam plik w tym samym przedziale czasowym, DropBox zduplikuje plik. W przypadku kodu źródłowego jest to zwykle niepożądane i bardziej uciążliwe niż użycie systemu kontroli źródła.
John McDonald
Subwersja nie jest łatwiejsza w użyciu - ludzie, którzy ją tylko znają, uznają ją za równie mylącą, co ludzie idący w drugą stronę.
rjmunro
Nigdy nie powiedziałem, że tak. Powiedziałem, że najłatwiej jest się uczyć po nauce. Głupio jest wyrażać subiektywne stwierdzenia, takie jak „Subversion nie jest łatwiejsze w użyciu” w wartościach bezwzględnych.
ClassicThunder
5

Jak wspomniano w innych odpowiedziach, VCS jest właściwą drogą. Git jest moim ulubionym, ale mogło tak być, ponieważ był to pierwszy, którego użyłem.

Uważam, że ta książka online jest bardzo pomocna w nauce Git. http://progit.org/book/ Bez względu na to, z czym się wybierasz, warto poświęcić kilka godzin na zastanowienie się, jak z niego korzystać.

Warto też wspomnieć - VCS świetnie nadają się do kodu źródłowego (lub dowolnych plików tekstowych), ale przechowywanie obrazów i plików dźwiękowych może niepotrzebnie powiększać twoje repozytorium. Niektóre osoby zalecają do tego osobne repozytorium, ale uważam, że Dropbox działa dobrze dla tego rodzaju zasobów.

W przypadku projektu szkolnego korzystaliśmy z publicznego folderu Dropbox i używaliśmy tego skryptu do aktualizowania naszych zasobów https://github.com/dc2011/td/blob/master/tools/extrafiles.sh

Sprawdza skrót md5 pliku w Dropbox względem skrótu pliku już na dysku (jeśli istnieje), aby pobierane były tylko nowe lub zmienione pliki.

Dziekan
źródło
1
tak, kiedyś używałem svn. Teraz zawsze używam Git. Chociaż wiele osób nie lubi wiersza poleceń, wydaje mi się, że jest bardzo wygodny. W systemie Windows używam konsoli, która otacza środowisko git-bash. W OSx jest to tylko terminal z motywem Solarized.
Prozaker
Zgadzam się, mieszkam w terminalu, jeśli mogę! Czasami jest nieco bardziej stroma krzywa uczenia się, ale automatyzacja jest o wiele łatwiejsza. Jeśli regularnie używasz OSX, powinieneś sprawdzić iTerm2. Obsługuje 256 kolorów, a także tryb pełnoekranowy i bardzo dobrze wykorzystuje podział.
Dziekan
4

Jak wielu wspomniało, potrzebujesz kontroli wersji. Jest niezła darmowa oferta oprogramowania FogCreek (musisz podziękować za udostępnienie stackexchange, dzięki czemu ta strona jest możliwa). Nazywa się Kiln (zbudowany na Mercurial ) i integruje się z ładnym oprogramowaniem do śledzenia błędów / funkcji / czasu, które zbudowali o nazwie FogBugz . Zespół dwóch programistów zapewnia bezpłatne wersje tych produktów (i udostępnia je dla Ciebie). Używam tego ustawienia do własnych projektów i płatnych wersji wszystkich produktów, nad którymi pracuję dla mojego pracodawcy (mamy znacznie większy zespół programistów, więc muszę korzystać z płatnych wersji). Warto na pewno rzucić okiem.

Jeśli zdecydujesz się ich użyć, oto kilka dobrych samouczków lub przydatnych linków na początek:

Jason Down
źródło
1

Narzędzia używane przez mój zespół do sprawnej współpracy:

• GitHub, który, jeśli masz trochę pieniędzy, jest niezwykle tanim i łatwym sposobem na hostowanie wszystkich źródeł. Jest to platforma kontroli wersji, o której mówi większość ludzi. Pomyśl o tym jak o koncie Pastebin, które istnieje na twoim lokalnym dysku twardym i jest aktualizowane za każdym razem, gdy któryś z członków twojego zespołu dokona zmian. Projekty hostowane nazywane są depozytariuszami. Istnieje mnóstwo bezpłatnych klientów Git, niektóre z nich integrują się bezpośrednio z systemem Windows, dzięki czemu Twoje depozyty są czyste i aktualne.

• Dokumenty Google dotyczące dokumentów, pomysłów, koncepcji graficznych gier.

• Sporadyczne korzystanie z DropBox, jeśli jeden z nas potrzebuje określonego zasobu lub skryptu ... jest to jednak rzadkie i wolimy pracować za pośrednictwem GitHub.

Sam Loeschen
źródło
1

Jeśli korzystasz z Visual Studio, najlepszą opcją jest Team Foundation, pochodzi od Microsoft i jest najlepszą kontrolą wersji, jaką znam, negatywną rzeczą jest to, że potrzebujesz serwera, serwera SQL i serwera Foundation Team do działania na serwerze (klient jest już w studio wizualnym), jeśli masz szansę, spróbuj.

Rudy_TM
źródło
Obecnie korzystam z Team Foundation Mam pytanie dotyczące rozgałęziania i łączenia oddziałów. Jeśli utworzę dwie gałęzie, a ktoś doda kod do klasy i dodam inny kod do klasy, kiedy je scalę, czy dodają obie zmiany do pliku, czy otrzymamy błąd i będziemy musieli wybrać jedną ze zmian ?
steakbbq
Nie używam gałęzi do tego, używam gałęzi do różnych wersji, jeśli to zrobisz, to studio wizualne prawdopodobnie zrobi złe scalenie (to tak, jakby ktoś używał klasy, a inny sprawdzał tę samą klasę i obie dodają kod, studio wizualne poprosi Cię o ręczne scalenie), jeśli chcesz wprowadzić zmiany w klasie w tym samym czasie, dlaczego nie używasz klas częściowych? korzystaj z gałęzi dla różnych wersji, dzięki czemu masz większą kontrolę nad swoimi wersjami
Rudy_TM
„Team Foundation, pochodzi od Microsoftu i jest najlepszą kontrolą wersji, jaką znam” Och kochanie :) Czy próbowałeś kiedyś czegoś innego?
Andy M.
1

Do programowania par wirtualnych używam tego ustawienia (koordynowanie wszystkiego przez Skype):

  1. Zainstaluj serwer SSH na jednym ze swoich komputerów.
  2. Zainstaluj tmux
  3. Druga osoba ssh jest podłączona do twojego komputera.
  4. Poproś hosta o rozpoczęcie sesji tmux
  5. Poproś partnera, aby uruchomił „tmux at” w swoim połączeniu SSH

Teraz ty i twój przyjaciel zobaczycie dokładnie ten sam ekran terminala. Ale prawdopodobnie chcesz mieć możliwość współpracy poza komputerem, prawda?

  1. Utwórz konto Bitbucket.org, stwórz projekt (wolę Git) i postępuj zgodnie z instrukcjami tworzenia pustego repozytorium.
  2. Skopiuj pliki projektu za pomocą „git add. && git commit -m 'Initial commit.”
  3. Push to Bitbucket z „git push origin master”

Teraz ty i twój przyjaciel możecie pracować nad zmianami niezależnie i pchnąć je do Bitbucket, kiedy będziecie gotowi.

Nie pozwoli to wam obojgu na edycję razem w Visual Studio w żaden przyjemny sposób, ale będziecie mogli edytować kod źródłowy, jeśli sparujecie się z jakąś nową funkcją lub debugujecie problem. Dopóki potem wprowadzasz zmiany, przyjaciel może je otworzyć w VS.

Michael Burge
źródło
1

Sugerowałbym kontrolę wersji bazaru . Jest mały, praktyczny, bardzo dobry dla małych / one2few projektów męskich. Git i SVN są częściej używane w większych projektach / zespołach. Bazaar ma w przygotowaniu wtyczkę VS, ale dla ciebie nie ma większego znaczenia przy użyciu jej poza VS. Jest naprawdę łatwy w użyciu, gdy go poznasz i wstępnie skonfigurujesz. Ma jeszcze kilka wtyczek, które się przydają.

edin-m
źródło
-2

Wiele dobrych sugestii już jest, ale jeśli chcesz wybrać proste i proste rozwiązanie, działa to dla mnie, gdy współpracuję:

  1. Użyj komentarzy na początku każdego skryptu, aby śledzić, kiedy był edytowany, kto i kiedy, tj .:

    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. Prywatne forum lub jeszcze lepiej Wiki to dobry sposób na przekazywanie pomysłów i informowanie wszystkich o postępach.

Podane już pomysły są lepsze niż to rozwiązanie, ale jest to bardzo łatwe do wdrożenia przy minimalnym nakładzie czasu, w przypadku małego projektu z udziałem kilku osób pracujących razem może być wystarczający dla Twoich potrzeb.

Pracując dla dużej globalnej organizacji, mogę szczerze powiedzieć, że ilość czasu straconego z powodu biurokracji wokół ich oprogramowania do kontroli wersji (MKS) to prawdziwy ból!

davidjwest
źródło
nie lubię takich komentarzy na początku każdego skryptu. Zresztą to nie dotyczy tutaj pytania; techniki śledzenia zmian nie mówią nic o tym, jak członkowie zespołu będą dzielić się swoją pracą.
jhocking
Cóż, komunikacja nie stanowi problemu, Moi koledzy programiści siedzą ze mną cały dzień w ventrilo i rozmawiamy całkiem sporo lol.
steakbbq