Cách hiệu quả nhất để làm việc với một người bạn trong cùng một trò chơi là gì?


29

Chúng tôi cần một cái gì đó để chúng tôi có thể kiểm tra các tệp, chỉnh sửa chúng, kiểm tra lại và sau đó xây dựng từ chúng.

Một cái gì đó giống như Google Docs nơi chúng ta có thể chỉnh sửa cùng một mã cùng một lúc sẽ là một lý tưởng.

Cả hai chúng tôi đều sử dụng Visual Studio 2010.


2
Tôi luôn tự hỏi tại sao không ai làm (hoặc ít nhất là tôi không tìm thấy) chỉnh sửa mã giống như Docs. Tôi đoán có một số khó khăn cố hữu như hoàn thành mã và thực tế là mã phải được biên dịch, nhưng chúng dường như không thể khắc phục bằng một số phối hợp (và có thể là các thủ thuật như chiến lược hợp nhất mã bị trì hoãn.) Tôi đoán chúng là một Vấn đề thực tế trong các dự án lớn. Tôi sẽ phải đào các công cụ mã hóa hợp tác bằng mọi cách (hoặc tự tạo một công cụ: P)
kaoD

1
@kaoD SubEthaEdit cung cấp loại chức năng đó trên cơ sở mỗi tệp (không chắc nó xử lý tốt số lượng lớn tệp như thế nào).
michael.bartnett

Nếu ai đó có thể tìm cho tôi một chương trình như thế này cho windows và c # tôi sẽ cung cấp cho bạn một cookie.
steakbbq

1
Emacs có thể làm điều này, nhưng nó thật rắc rối : emacswiki.org/emacs/CollaborativeEditing ; hoặc MoonEdit: moonedit.com (mặc dù tôi không biết nếu nó có chế độ C #); hoặc Gulk: en.wikipedia.org/wiki/Gulk
amitp

Làm thế nào khó khăn để viết một trình biên dịch IE mới tuyệt vời? Có lẽ sẽ dễ dàng hơn để phát triển một plugin cho tuyệt vời phải không?
steakbbq

Câu trả lời:


19

Như tôi đã nói trong một bình luận cho câu hỏi của bạn, tôi rất tò mò về chỉnh sửa hợp tác thực sự . Tôi đã nghiên cứu cách đây một thời gian nhưng hầu hết các giải pháp đều không đáp ứng các tiêu chuẩn: chúng là các trình soạn thảo văn bản đơn giản với cú pháp tô sáng, có chi phí điên rồ hoặc không có nền tảng chéo (như SubEthaEdit ...)

Cho đến khi tôi vấp vào Saros ! Đây là một plugin Eclipse gọn gàng, do đó có thể dễ dàng tích hợp với quy trình công việc hiện tại của bạn. Bạn có thể xem video demo của họ , nó khá ấn tượng. Đó là suy nghĩ rất tốt cho một môi trường chỉnh sửa hợp tác thực sự và có một số tính năng chính mặc dù rất tốt. Nó hỗ trợ số lượng người tham gia tùy ý, đồng bộ hóa toàn bộ dự án, chỉnh sửa thời gian thực với các điểm đánh dấu và tô sáng (ala Google Docs), theo quan điểm của đối tác, một số phương pháp nhận thức người tham gianhiều hơn nữa (thậm chí bạn có thể chia sẻ màn hình của mình bằng plugin này. ) Và rõ ràng nó tích hợp với nhiều plugin Eclipse khác!

Tôi vẫn chưa tự mình thử nghiệm, nhưng đây là một trong số ít các dự án vẫn được duy trì và có vẻ rất hứa hẹn. Hãy thử và cho tôi biết (đọc các hướng dẫn này trước đây.) Tôi hứa tôi sẽ quay lại đây và đăng ấn tượng của mình dưới dạng nhận xét khi tôi tự thử.

EDIT: Ngoài ra, như Gustavo đã chỉ ra trong một bình luận, Cacoo cũng có thể hữu ích. Đây là một công cụ cộng tác trực tuyến để vẽ UML (thực ra là bất kỳ loại sơ đồ nào.) Saros hỗ trợ bảng trắng, nhưng không có gì giống như một công cụ sơ đồ nếu bạn muốn tránh vụng về.


3
Mọi người đã đưa ra rất nhiều câu trả lời, tất cả trên các hệ thống phiên bản, nhưng tôi nghĩ đây là câu trả lời thực sự của câu hỏi. +1 để chỉnh sửa hợp tác. BTW, hãy dùng thử Cacoo (google nó) Đây là một công cụ cộng tác để tạo UML, giúp tôi thực hiện một loạt các dự án, nó có thể bổ sung cho câu trả lời của bạn.
Gustavo Maciel

1
@ Gustavo-Gtoknu công cụ rất tốt thực sự, bạn có phiền nếu tôi cập nhật câu trả lời với nó không?
kaoD

2
Làm ngay bây giờ! : D Câu trả lời xứng đáng.
Gustavo Maciel

Điều này thật tuyệt vời tuy nhiên Eclipse là dành cho java? Tôi đang chạy c #
steakbbq

@steakbbq có một số plugin cung cấp hỗ trợ C # ( EmonicCải thiện ) nhưng thật không may, chúng dường như thiếu hỗ trợ gỡ lỗi và tái cấu trúc.
kaoD

36

"chúng tôi chỉ cần một cái gì đó để chúng tôi có thể kiểm tra các tệp chỉnh sửa chúng và sau đó kiểm tra lại và xây dựng từ cùng một bộ tệp"

Sử dụng kiểm soát phiên bản; một hệ thống kiểm soát phiên bản (VCS) chính xác như những gì bạn đã mô tả, với phần thưởng được thêm vào mà nó lưu trữ lịch sử của mọi thay đổi mà bất kỳ ai đã thực hiện. Có rất nhiều hệ thống kiểm soát phiên bản phổ biến ngoài kia:

http://subversion.apache.org/

http://mercurial.selenic.com/

http://git-scm.com/

Tôi không sử dụng Visual Studio cá nhân, nhưng tôi hoàn toàn chắc chắn rằng Visual Studio có hỗ trợ cho tất cả các hệ thống kiểm soát phiên bản này.


11
Chỉ cần trao một máy chủ Git / HG riêng miễn phí trong trò chuyện: bitbucket.org (miễn phí cho tối đa 5 cộng tác viên). Ngoài ra HG phù hợp hơn vì nó có các plugin xử lý nội dung nhị phân lớn (dự án nội dung).
Jonathan Dickinson

2
+1 Một VCS là con đường để đi. Tôi sử dụng AnkhSVN làm Plugin Visual Studio cho Subversion.
Richard Marskell - Drackir

2
+1 ở đây. chứng thực cá nhân của tôi là TortoiseSVN. Để lưu trữ (giả sử nguồn mở), đề xuất của tôi là Google Code
PlayDeezGames


2
Xin đừng lật đổ. Kiểm soát phiên bản phân tán hoàn toàn đơn giản cho những người không quen làm việc với các hệ thống tập trung. Mọi người sử dụng để lật đổ bỏ lỡ một nhầm lẫn.
rjmunro

9

Đối với nhóm của tôi, chúng tôi sử dụng ba chương trình tùy thuộc vào những gì chúng tôi cần làm việc:

  • TortoiseSVN cho mã (cố gắng để các lập trình viên sử dụng cùng một IDE, chuẩn hóa các quy ước và khuyến khích nhận xét tốt)
  • Dropbox cho đa phương tiện (đối với các mô hình / họa tiết / tệp âm thanh, cho phép các nhà phát triển làm việc cục bộ cho đến khi các nghệ sĩ / nhà soạn nhạc / người tạo mô hình sẵn sàng cung cấp)
  • GoogleDocs cho tài liệu (dành cho tài liệu thiết kế / mockup / pitch thường dành cho nhà thiết kế, quản lý và nhà sản xuất)

Để phối hợp nỗ lực của các thành viên khác nhau (những người làm việc tại các thời điểm khác nhau), chúng tôi sử dụng hệ thống bán vé của Assembla . Bằng cách này, mọi người đều được cập nhật về trạng thái của toàn bộ dự án hoặc một con đường cụ thể mà họ chọn. Đồng thời sử dụng Skype / Google Hangout / Giao tiếp trực tiếp để đảm bảo mọi người đều ở trên cùng một trang trên ít nhất một tuần.

Phương pháp này thường hoạt động khi một nhóm bao gồm 3-5 người đã thiết lập vai trò (lập trình viên, nghệ sĩ, người tạo mô hình, nhà thiết kế, v.v.). Nếu điều này không hiệu quả, hãy thử các phương pháp khác hoặc kết hợp các khía cạnh làm việc để tạo một trong những phương pháp của riêng bạn. Chúc may mắn!


Tôi chỉ nói về kiểm soát phiên bản cho mã bởi vì đó là khía cạnh phát triển duy nhất mà anh ấy đã hỏi, nhưng studio của tôi cũng sử dụng Dropbox và Google Docs cho các mục đích tương tự như câu trả lời này.
jhocking

Sự kết hợp tuyệt vời.
Bill K

7

Âm thanh như bạn muốn hoặc hộp thả, hệ thống kiểm soát phiên bản hoặc cả hai.

Dropbox là tiện lợi nhất. Chỉ cần thực hiện các thay đổi của bạn và lưu và Dropbox sẽ đồng bộ hóa các thay đổi trên máy bạn bè của bạn. Đừng nghĩ rằng 2 người có thể làm việc trên tệp cùng một lúc mặc dù không ghi đè lên nhau làm việc.

Tuy nhiên, tôi khuyên bạn nên sử dụng hệ thống kiểm soát phiên bản Subversion , GITMercurial hiện là lớn 3. Có rất nhiều lợi thế khi sử dụng VCS: bao gồm khả năng tự động sao lưu, thay đổi rollback và kiểm tra mã của bạn trên bất kỳ máy tính nào có quyền truy cập vào máy chủ của bạn.

Sau khi sử dụng 3 tôi đã đề cập, tôi thấy Subversion dễ dàng nhất để bắt đầu và Assembla cho phép các kho lưu trữ SVN hoặc GIT riêng miễn phí .


9
Tôi không thực sự thích dropbox cho loại điều này. Nếu bạn sử dụng bất kỳ sản phẩm nào của Rùa *, nó có loại tích hợp Windows Explorer tương tự, nhưng bạn có thể kiểm soát cam kết / đẩy / kéo / hợp nhất để bạn không gặp phải vấn đề "2 người ghi đè lẫn nhau".
Jimmy

2
Tôi cũng không biết đó là lý do tại sao tôi khuyên dùng VCS. Tuy nhiên, hầu như không có đường cong học tập và bạn ngay lập tức có một bản sao lưu vì vậy tôi cho rằng nó đáng được đề cập.
ClassicThunder

9
Tôi khuyên bạn không nên sử dụng DropBox thay thế hệ thống kiểm soát phiên bản. Nếu hai người sửa đổi cùng một tệp trong cùng một khung thời gian, DropBox sẽ sao chép tệp. Đối với mã nguồn, điều này thường không mong muốn và gây nhiều phiền toái khi chỉ sử dụng hệ thống kiểm soát nguồn.
John McDonald

Subversion không dễ sử dụng hơn - mọi người chỉ quen sử dụng sẽ thấy nó cũng khó hiểu như mọi người đi theo con đường khác.
rjmunro

Tôi chưa bao giờ nói nó được. Tôi nói với tôi đó là cách dễ nhất để học hỏi. Thật là ngu ngốc khi diễn đạt các tuyên bố chủ quan như "Subversion không dễ sử dụng hơn" theo nghĩa tuyệt đối.
ClassicThunder

5

Như đã đề cập trong các câu trả lời khác, một VCS là con đường để đi. Git là sở thích của tôi, nhưng đó chỉ có thể là vì nó là cái đầu tiên tôi sử dụng.

Tôi thấy cuốn sách trực tuyến này rất hữu ích cho việc học Git. http://progit.org/book/ Bất kể bạn sử dụng VCS nào, đều đáng để dành một vài giờ để tìm ra cách sử dụng nó.

Một điều đáng nói nữa - VCS rất tốt cho mã nguồn (hoặc bất kỳ tệp văn bản nào), nhưng việc lưu trữ hình ảnh và tệp âm thanh có thể làm hỏng kho lưu trữ của bạn một cách không cần thiết. Một số người đề xuất một kho lưu trữ riêng cho việc này, nhưng tôi thấy Dropbox hoạt động tốt cho các loại tài nguyên này.

Đối với một dự án trường học, chúng tôi đã sử dụng thư mục Dropbox công khai và sử dụng tập lệnh này để cập nhật tài nguyên của chúng tôi https://github.com/dc2011/td/blob/master/tools/extrafiles.sh

Nó kiểm tra hàm băm md5 của tệp trong Dropbox so với hàm băm của tệp đã có trên đĩa (nếu nó tồn tại) để chỉ các tệp mới hoặc thay đổi được tải xuống.


1
vâng, tôi đã từng sử dụng svn. Bây giờ tôi luôn sử dụng Git. Mặc dù nhiều người không thích dòng lệnh, tôi thấy nó thực sự thoải mái. Trên windows tôi sử dụng Console, bao bọc xung quanh môi trường git-bash. Trên OSx, nó chỉ là Terminal với chủ đề Solarized.
Prozaker

Tôi đồng ý, tôi sống trong nhà ga nếu tôi có thể! Đôi khi có một đường cong học tập hơi dốc, nhưng nó làm cho tự động hóa dễ dàng hơn nhiều. Nếu bạn sử dụng OSX một cách thường xuyên, bạn nên kiểm tra iTerm2. Nó có hỗ trợ 256 màu, cũng như chế độ toàn màn hình và sử dụng các phần tách thực sự độc đáo.
Trưởng khoa

4

Như nhiều người đã đề cập, bạn cần kiểm soát phiên bản. Có một ưu đãi miễn phí tốt đẹp từ phần mềm FogCalet (bạn phải cảm ơn họ vì đã cung cấp stackexchange giúp trang web này có thể). Nó được gọi là Kiln (được xây dựng trên đỉnh Mercurial ) và nó tích hợp với một sản phẩm phần mềm theo dõi lỗi / tính năng / thời gian tuyệt vời mà họ đã xây dựng được gọi là FogBugz . Đối với một nhóm gồm 2 nhà phát triển, họ cung cấp các phiên bản miễn phí của các sản phẩm này (và lưu trữ chúng cho bạn). Tôi sử dụng thiết lập này cho các dự án của riêng tôi và các phiên bản trả phí cho tất cả các sản phẩm phần mềm tôi làm việc cho chủ nhân của mình (chúng tôi có một nhóm các nhà phát triển lớn hơn nhiều, vì vậy phải sử dụng các phiên bản trả phí). Đáng xem cho chắc chắn.

Nếu bạn quyết định sử dụng chúng, đây là một số hướng dẫn tốt hoặc các liên kết hữu ích để bạn bắt đầu:


1

Các công cụ mà nhóm của tôi sử dụng để cộng tác trơn tru:

• GitHub, nếu bạn có một ít tiền là một cách cực kỳ rẻ và dễ dàng để lưu trữ tất cả nguồn của bạn. Đây là nền tảng kiểm soát phiên bản mà hầu hết mọi người ở đây đã nói về. Hãy nghĩ về nó như một tài khoản Pastebin tồn tại trên ổ cứng cục bộ của bạn và được cập nhật bất cứ khi nào bất kỳ thành viên nào trong nhóm của bạn thực hiện thay đổi. Các dự án được lưu trữ được gọi là lưu ký. Có rất nhiều ứng dụng khách Git miễn phí, một số trong số họ tích hợp ngay vào Windows để giữ cho tiền gửi của bạn sạch sẽ và cập nhật.

• Google tài liệu cho các tài liệu thiết kế trò chơi, ý tưởng, khái niệm nghệ thuật.

• Việc sử dụng DropBox không thường xuyên nếu một trong số chúng tôi cần một tài sản hoặc tập lệnh cụ thể ... tuy nhiên điều này rất hiếm và chúng tôi muốn làm việc thông qua GitHub.


1

Nếu bạn sử dụng Visual Studio, tùy chọn tốt nhất là Team Foundation, là của Microsoft và là Điều khiển phiên bản tốt nhất mà tôi biết, điều tiêu cực là bạn cần một máy chủ, máy chủ sql và máy chủ nền tảng nhóm để chạy trong máy chủ (khách hàng đã sẵn sàng với studio trực quan), nếu bạn có cơ hội, hãy thử nó.


Tôi hiện đang sử dụng Team Foundation Tôi có một câu hỏi liên quan đến việc phân nhánh và sáp nhập các chi nhánh. Nếu tôi tạo hai nhánh và ai đó thêm một số mã vào một lớp và tôi thêm một số mã khác vào lớp khi tôi hợp nhất chúng, nó sẽ thêm cả hai thay đổi vào tệp hoặc chúng tôi sẽ gặp lỗi và phải chọn một trong các thay đổi ?
steakbbq

Tôi không sử dụng nhánh cho điều đó, tôi sử dụng nhánh cho các phiên bản khác nhau, nếu bạn làm điều đó thì studio hình ảnh có thể sẽ làm xấu việc hợp nhất (giống như khi ai đó đang sử dụng một lớp và một lớp khác kiểm tra cùng một lớp và hai người trong số họ thêm vào mã, visual studio sẽ yêu cầu bạn thực hiện hợp nhất thủ công), nếu bạn muốn thay đổi một lớp cùng một lúc, tại sao bạn không sử dụng các lớp một phần? sử dụng các nhánh cho các phiên bản khác nhau, theo cách bạn có quyền kiểm soát nhiều hơn đối với các phiên bản của mình
Rudy_TM

"Team Foundation, đến từ Microsoft và là Kiểm soát phiên bản tốt nhất mà tôi biết" Trời ơi :) Bạn đã bao giờ thử điều gì khác chưa?
Andy M

1

Để lập trình cặp ảo, tôi sử dụng thiết lập này (điều phối mọi thứ qua Skype):

  1. Cài đặt máy chủ SSH trên một trong các máy của bạn.
  2. Cài đặt tmux
  3. Người khác ssh vào máy tính của bạn.
  4. Yêu cầu chủ nhà bắt đầu một phiên tmux
  5. Yêu cầu đối tác của bạn chạy 'tmux at' trong kết nối SSH của anh ấy

Bây giờ bạn và bạn của bạn sẽ thấy cùng một màn hình thiết bị đầu cuối. Nhưng bạn có thể muốn khả năng làm việc cùng nhau bên ngoài máy tính của bạn, phải không?

  1. Tạo một tài khoản Bitbucket.org, tạo một dự án (tôi thích Git) và làm theo hướng dẫn của họ về việc tạo một kho lưu trữ trống.
  2. Sao chép các tệp của dự án của bạn bằng "git add. && git commit -m 'Cam kết ban đầu.'"
  3. Đẩy lên Bitbucket bằng "git push origin master"

Bây giờ bạn và bạn của bạn có thể làm việc với các thay đổi một cách độc lập và đẩy chúng lên Bitbucket khi bạn đã sẵn sàng.

Điều này sẽ không cho phép cả hai bạn chỉnh sửa cùng nhau trong Visual Studio theo bất kỳ cách nào hay, nhưng bạn sẽ có thể tự chỉnh sửa mã nguồn nếu bạn ghép nối một số tính năng mới hoặc gỡ lỗi một vấn đề. Miễn là bạn đẩy các thay đổi của mình sau đó, bạn của bạn có thể mở nó trong VS.


1

Tôi sẽ đề nghị kiểm soát phiên bản Bazaar . Đó là nhỏ, thiết thực, rất tốt cho các dự án nhỏ / một người đàn ông. Git và SVN được sử dụng thường xuyên hơn cho các dự án / nhóm lớn hơn. Bazaar có plugin phát triển VS, nhưng đối với bạn, nó không tạo ra nhiều sự khác biệt khi sử dụng nó bên ngoài VS. Thật dễ dàng để sử dụng nó khi bạn đã biết và thiết lập ban đầu. Nó có thêm vài plugin có ích.


-2

Đã có rất nhiều gợi ý hay nhưng nếu bạn muốn tìm kiếm một giải pháp đơn giản và công nghệ thấp, thì đây là cách hiệu quả khi tôi hợp tác:

  1. Sử dụng các bình luận tại phần đầu của mỗi tập lệnh để theo dõi khi nào nó được chỉnh sửa, ai và khi nào tức là:

    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. Một diễn đàn riêng hay tốt hơn vẫn là Wiki là một cách tốt để truyền đạt ý tưởng và giữ cho mọi người luôn cập nhật tiến độ.

Các ý tưởng đưa ra đã tốt hơn giải pháp này nhưng điều này rất dễ thực hiện với đầu tư thời gian tối thiểu, đối với một dự án nhỏ chỉ với một vài người làm việc cùng nhau, nó có thể đủ cho nhu cầu của bạn.

Đã từng làm việc cho một tổ chức toàn cầu lớn, tôi có thể thành thật nói rằng thời gian bị mất do băng đỏ xung quanh phần mềm kiểm soát phiên bản (MKS) của họ là một nỗi đau thực sự!


ugh tôi ghét những bình luận như thế ở đầu mỗi kịch bản. Và dù sao điều đó không giải quyết câu hỏi ở đây; các kỹ thuật để theo dõi các thay đổi không cho bạn biết bất cứ điều gì về cách các thành viên trong nhóm sẽ chia sẻ công việc của họ với nhau.
jhocking

Chà, Giao tiếp không phải là vấn đề, các nhà phát triển đồng nghiệp của tôi ngồi trong ventrilo cả ngày với tôi và chúng tôi nói chuyện khá nhiều về lol.
steakbbq
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.