같은 게임에서 친구와 함께 일하는 가장 효과적인 방법은 무엇입니까?


29

파일을 체크 아웃하고 편집 한 후 다시 체크인 한 다음 파일을 빌드 할 수있는 것이 필요합니다.

동일한 코드를 동시에 편집 할 수있는 Google 문서 도구와 같은 것이 이상적입니다.

우리는 Visual Studio 2010을 사용하고 있습니다.


2
나는 왜 아무도 문서와 같은 코드 편집을하지 않았는지 (또는 적어도 찾지 못했다) 궁금했다. 코드 완성과 같은 고유의 어려움과 코드를 컴파일해야한다는 사실이 있다고 생각하지만 일부 조정 (및 지연된 코드 병합 전략과 같은 트릭)으로 극복하는 것이 완전히 불가능하지는 않습니다. 큰 프로젝트에서 실제 문제. 어쨌든 협업 코딩 도구를 파헤쳐 야합니다 (또는 직접 만들어보십시오 : P)
kaoD

1
@kaoD SubEthaEdit는 파일별로 이러한 종류의 기능을 제공합니다 (대량의 파일을 얼마나 잘 처리하는지 확실하지 않음).
michael.bartnett

누군가가 Windows 및 C #에서 이와 같은 프로그램을 찾을 수 있다면 쿠키를 줄 것입니다.
steakbbq

1
이맥스는이 작업을 수행 할 수 있지만 어색합니다 : emacswiki.org/emacs/CollaborativeEditing ; 또는 MoonEdit : moonedit.com (C # 모드인지는 모르겠지만); 또는 Gobby : en.wikipedia.org/wiki/Gobby
amitp

새로운 컴파일러 IE sublime을 작성하는 것이 얼마나 어려울까요? 숭고한 플러그인을 개발하는 것이 더 쉬울 것입니까?
steakbbq

답변:


19

귀하의 질문에 대한 의견에서 언급했듯이 진정한 공동 작업 편집에 대해 매우 궁금합니다 . 나는 얼마 전에 연구했지만 대부분의 솔루션은 표준을 충족하지 못했습니다. 구문 강조 표시가있는 일반 텍스트 편집기이거나 비용이 들지 않았거나 크로스 플랫폼을 사용할 수 없었습니다 ( SubEthaEdit ...)

내가 사로 스로 넘어 질 때까지 ! 깔끔한 Eclipse 플러그인이므로 현재 워크 플로우와 쉽게 통합 할 수 있습니다. 당신은 그들의 데모 비디오를 볼 수 있습니다 , 그것은 매우 인상적입니다. 진정한 공동 작업 편집 환경에 대해 잘 생각되며 몇 가지 중요한 기능이 있습니다. 파트너의 관점에 따라 임의의 수의 참가자, 전체 프로젝트 동기화, 마커를 사용한 실시간 편집 및 강조 표시 (일명 Google Docs), 여러 참가자 인식 방법 등을 지원 합니다 (이 플러그인을 사용하여 화면을 공유 할 수도 있습니다). ) 분명히 다른 많은 Eclipse 플러그인과 통합됩니다!

아직 직접 테스트하지는 않았지만 여전히 유지 관리되고 매우 유망한 프로젝트 중 하나입니다. 사진을 찍고 알려주십시오 ( 이전 지침을 읽으십시오 .) 나는 다시 방문하여 직접 시도 할 때 의견으로 의견을 게시하겠다고 약속합니다.

편집 : 또한 Gustavo가 의견에서 지적했듯이 Cacoo 도 유용 할 수 있습니다. UML (실제로 모든 종류의 다이어그램)을 그리기위한 온라인 협업 도구입니다. Saros는 화이트 보드를 지원하지만 서투른 느낌을 피하려면 다이어그램 도구와 같은 것은 없습니다.


3
사람들은 모두 버전 관리 시스템에서 많은 답변을했지만 이것이 실제 질문에 대한 답변이라고 생각합니다. 공동 작업 편집에 +1 BTW, Cacoo (google it) 사용해보기 UML을 제작하기위한 공동 작업 도구이며 많은 프로젝트에서 도움이되었으므로 답을 보완 할 수 있습니다.
구스타보 메이 엘

1
@ Gustavo-Gtoknu 정말 좋은 도구입니다. 답변을 업데이트해도 괜찮습니까?
kaoD

2
지금 그것을 할! : D 대답은 가치가있다.
구스타보 메이 엘

이클립스가 Java 용이지만 훌륭합니까? 전 C #을 실행하고
steakbbq의

@steakbbq C #을 지원 제공 (일부 플러그인이 있습니다 Emonic을 하고 개선 )하지만 불행히도 그들은 디버깅 및 지원을 리팩토링이 부족한 것입니다.
kaoD

36

"파일을 체크 아웃 한 다음 다시 체크인하여 동일한 파일 세트에서 빌드 할 수있는 무언가가 필요합니다."

버전 관리를 사용하십시오. VCS (Version Control System)는 사용자가 설명한 모든 변경 내역을 저장하는 추가 보너스와 함께 사용자가 설명한 내용입니다. 인기있는 버전 관리 시스템이 많이 있습니다.

http://subversion.apache.org/

http://mercurial.selenic.com/

http://git-scm.com/

개인적으로 Visual Studio를 사용하지는 않지만 Visual Studio가 이러한 모든 버전 제어 시스템을 지원한다고 확신합니다.


11
채팅에서 무료 개인 Git / HG 호스트를 전달했습니다 : bitbucket.org (최대 5 명의 공동 작업자에게 무료). 또한 HG는 큰 이진 컨텐츠 (컨텐츠 프로젝트)를 처리하는 플러그인이 있으므로 더 적합합니다.
Jonathan Dickinson

2
+1 VCS가가는 길입니다. Subversion 용 Visual Studio 플러그인으로 AnkhSVN 을 사용 합니다.
Richard Marskell-Drackir

2
여기 +1 내 개인적인 보증은 TortoiseSVN입니다. (오픈 소스로 가정) 호스팅에 대한 나의 추천은 구글 코드입니다
PlayDeezGames


2
전복하지 마십시오. 분산 버전 관리는 중앙 집중식 시스템 작업에 익숙하지 않은 사람들에게는 완전히 간단합니다. 전복에 익숙했던 사람들은 혼란스러워합니다.
rjmunro

9

우리 팀은 작업해야 할 것에 따라 세 가지 프로그램을 사용합니다.

  • 코드 용 TortoiseSVN (프로그래머가 동일한 IDE를 사용하고 규칙을 표준화하며 좋은 주석을 장려하도록 시도)
  • 멀티미디어 용 Dropbox (모델 / 스프라이트 / 오디오 파일의 경우 아티스트 / 작곡가 / 모델러가 제공 할 준비가 될 때까지 개발자가 로컬에서 작업 할 수 있음)
  • 문서화를위한 GoogleDoc (일반적으로 디자이너, 관리자 및 제작자를위한 디자인 문서 / 모형 / 피치 용)

다른 시간에 일하는 다른 회원의 노력을 조정하기 위해 Assembla의 발권 시스템을 사용 합니다. 이런 식으로 모든 사람이 전체 프로젝트의 상태 또는 선택한 특정 도로에서 업데이트됩니다. 또한 Skype / Google 행 아웃 / Face-to-face 커뮤니케이션을 사용하여 모든 사용자가 적어도 일주일에 한 번 같은 페이지에 있는지 확인하십시오.

이 방법은 일반적으로 팀이 역할을 설정 한 3-5 명 (프로그래머, 아티스트, 모델러, 디자이너 등)으로 구성된 팀에서 작동합니다. 그래도 문제가 해결되지 않으면 다른 방법을 시도하거나 작업 측면을 결합하여 자신 만의 방법을 만드십시오. 행운을 빕니다!


코드에 대한 버전 제어에 대해서만 이야기했습니다. 개발에 대한 유일한 측면이기 때문에 내 스튜디오는이 답변과 동일한 목적으로 Dropbox와 Google Docs를 사용합니다.
jhocking 2013

훌륭한 조합.
Bill K

7

드롭 박스, 버전 제어 시스템 또는 둘 다를 원하는 것처럼 들립니다.

Dropbox 가 가장 편리합니다. 변경하고 저장하면 Dropbox가 친구 컴퓨터의 변경 사항을 동기화합니다. 서로의 작업을 덮어 쓰지 않아도 동시에 두 사람이 파일을 작업 할 수 있다고 생각하지 마십시오.

그러나 현재 버전 제어 시스템 인 Subversion , GITMercurial 을 사용하는 것이 좋습니다 . VCS를 사용하면 많은 이점이 있습니다. 백업 자동화, 롤백 변경 및 모든 컴퓨터에서 코드 체크 아웃 기능 포함 서버에 액세스 할 수 있습니다.

내가 언급 한 3을 사용하면서 나는 Subversion이 시작하기 가장 쉬운 것을 알았고 Assembla무료 전용 SVN 또는 GIT 저장소를 허용 합니다.


9
나는 이런 종류의 물건에 대한 보관함을 정말로 좋아하지 않습니다. Tortoise * 제품을 사용하는 경우 비슷한 종류의 Windows 탐색기 통합 기능이 있지만 commit / push / pull / merge를 제어하여 "2 명이 서로 덮어 쓰기"문제가 발생하지 않도록합니다.
Jimmy

2
VCS를 권장하는 이유도 아닙니다. 그러나 학습 곡선이 거의 없으며 즉시 백업이 있으므로 언급 할 가치가 있다고 생각했습니다.
ClassicThunder

9
버전 관리 시스템 대신 DropBox를 사용 하지 않는 것이 좋습니다 . 두 사람이 같은 시간 동안 같은 파일을 수정하면 DropBox가 파일을 복제합니다. 소스 코드의 경우 이는 일반적으로 바람직하지 않으며 소스 제어 시스템을 사용하는 것보다 더 많은 고통입니다.
존 맥도날드

Subversion은 사용하기가 쉽지 않습니다. 이전에 사용했던 사람들은 다른 방식으로가는 사람들처럼 혼란 스러울 것입니다.
rjmunro

나는 그런 말을 한 적이 없다. 나는 나를 위해 배우는 것이 가장 쉽다고 말했다. "Subversion은 사용하기 쉽지 않다"와 같은 주관적인 문구를 절대적으로 표현하는 것은 바보입니다.
ClassicThunder

5

다른 답변에서 언급했듯이 VCS는 갈 길입니다. 힘내는 내가 가장 좋아하는 것이지만 그것은 내가 처음 사용한 것이기 때문일 수 있습니다.

이 온라인 책이 Git 학습에 매우 도움이된다는 것을 알았습니다. http://progit.org/book/ VCS에 관계없이 VCS를 사용하는 방법을 알아내는 데 몇 시간을 투자하는 것이 좋습니다.

언급해야 할 또 다른 사항-VCS는 소스 코드 (또는 모든 텍스트 파일)에 적합하지만 이미지와 사운드 파일을 저장하면 저장소가 불필요하게 팽창 할 수 있습니다. 어떤 사람들은 이것을 위해 별도의 저장소를 권장하지만 Dropbox는 이러한 종류의 리소스에 효과적입니다.

학교 프로젝트의 경우 공용 Dropbox 폴더를 사용하고이 스크립트를 사용하여 리소스를 최신 https://github.com/dc2011/td/blob/master/tools/extrafiles.sh로 유지했습니다.

Dropbox에있는 파일의 md5 해시를 디스크에 이미있는 파일의 해시 (있는 경우)와 비교하여 새 파일이나 변경된 파일 만 다운로드되도록합니다.


1
예, 저는 svn을 사용했습니다. 이제는 항상 Git을 사용합니다. 많은 사람들이 커맨드 라인을 싫어하지만 정말 편합니다. Windows에서는 git-bash 환경을 둘러싼 Console을 사용합니다. OSx에서는 Solarized 테마가있는 터미널 만 있습니다.
Prozaker

가능하다면 터미널에 삽니다. 때로는 학습 곡선이 약간 가파르지만 자동화가 훨씬 쉬워집니다. OSX를 정기적으로 사용하는 경우 iTerm2를 확인해야합니다. 전체 화면 모드뿐만 아니라 256 색을 지원하며 스플릿을 정말 잘 활용합니다.
Dean

4

많은 사람들이 언급했듯이 버전 관리가 필요합니다. FogCreek 소프트웨어의 멋진 무료 서비스가 있습니다 (이 사이트를 가능하게하는 스택 교환을 제공해 주셔서 감사합니다). 이 제품은 Kiln ( Mercurial 위에 구축)이라고하며 FogBugz 라고 불리는 멋진 버그 / 기능 / 시간 추적 소프트웨어 제품과 통합됩니다 . 2 명의 개발자로 구성된 팀을 위해이 제품의 무료 버전 을 제공 하고 호스팅합니다. 본인은이 프로젝트를 내 프로젝트에 사용하고 고용주를 위해 작업하는 모든 소프트웨어 제품에 대한 유료 버전을 사용합니다 (우리는 훨씬 큰 개발자 팀을 보유하고 있으므로 유료 버전을 사용해야합니다). 살펴볼 가치가 있습니다.

이것들을 사용하기로 결정했다면, 다음은 좋은 자습서 또는 시작하는 데 유용한 링크입니다.


1

우리 팀이 원활한 협업을 위해 사용하는 도구 :

• GitHub. 약간의 돈이 있다면 모든 소스를 호스팅하는 매우 저렴하고 쉬운 방법입니다. 이것은 대부분의 사람들이 이야기 한 버전 관리 플랫폼입니다. 로컬 하드 드라이브에 존재하고 팀 구성원이 변경 될 때마다 업데이트되는 Pastebin 계정으로 생각하십시오. 호스팅 된 프로젝트를 보관소라고합니다. 많은 무료 Git 클라이언트가 있으며 그중 일부는 Windows에 통합되어 보관소를 깨끗하고 최신 상태로 유지합니다.

게임 디자인 문서, 아이디어, 컨셉 아트를위한 Google 문서

• 특정 자산이나 스크립트가 필요한 경우 DropBox를 가끔 사용하는 경우도 있습니다.


1

Visual Studio를 사용하는 경우 가장 좋은 옵션은 Team Foundation이며 Microsoft의 것이며 내가 아는 최고의 버전 관리입니다. 부정적인 것은 서버에서 실행하려면 서버, SQL Server 및 팀 기반 서버가 필요하다는 것입니다 (클라이언트는 이미 Visual Studio를 사용하고 있습니다) 기회가 있다면 사용해보십시오.


저는 현재 Team Foundation을 사용하고 있으며 분기 및 병합에 관한 질문이 있습니다. 두 가지를 만들고 누군가가 클래스에 코드를 추가하고 클래스를 병합 할 때 다른 코드를 클래스에 추가하면 파일에 변경 사항이 모두 추가되거나 오류가 발생하여 변경 중 하나를 선택해야합니다 ?
steakbbq

나는 그것을 위해 분기를 사용하지 않으며, 다른 버전에 대해 분기를 사용합니다. 비주얼 스튜디오가 병합을 잘못하면 아마도 누군가가 클래스를 사용하고 다른 클래스가 동일한 클래스를 체크 아웃하고 두 개가 추가되면 코드, Visual Studio는 수동으로 병합하도록 요청합니다.) 클래스를 동시에 변경하려면 부분 클래스를 사용하지 않는 이유는 무엇입니까?
Rudy_TM

"Team Foundation은 Microsoft에서 제공하는 것으로 내가 아는 최고의 버전 관리입니다."Oh dear :)
Andy M

1

가상 쌍 프로그래밍의 경우이 설정을 사용합니다 (Skype를 통해 모든 것을 조정)

  1. 머신 중 하나에 SSH 서버를 설치하십시오.
  2. tmux 설치
  3. 다른 사람이 컴퓨터에 들어갔습니다.
  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 버전 관리를 제안 합니다. 작고 실용적이며 소규모 / 일대일 남성 프로젝트에 매우 좋습니다. 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 (Version Control Software)를 둘러싼 빨간 테이프로 인해 손실되는 시간이 정말 고통 스럽다고 말할 수 있습니다.


나는 각 스크립트의 머리에 그런 의견을 싫어. 어쨌든 여기서 문제를 다루지 않습니다. 변경 내용 추적 기술은 팀 구성원이 서로 작업을 공유하는 방법에 대해서는 아무 것도 알려주지 않습니다.
jhocking

글쎄, 의사 소통은 문제가되지 않습니다. 제 동료 개발자들은 하루 종일 벤트리로에 앉아서 많은 이야기를합니다.
steakbbq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.