Какой самый эффективный способ работать с другом в одной игре?


29

Нам нужно что-то, где мы можем проверять файлы, редактировать их, возвращать их обратно и затем строить из них.

Что-то вроде Google Docs, где мы можем редактировать один и тот же код одновременно, было бы идеальным вариантом.

Мы оба используем Visual Studio 2010.


2
Я всегда задавался вопросом, почему никто не делал (или, по крайней мере, я не нашел) Docs-подобное редактирование кода. Я предполагаю, что есть некоторые присущие сложности, такие как завершение кода и тот факт, что код должен быть скомпилирован, но они не кажутся совершенно невозможными для преодоления с некоторой координацией (и, возможно, трюки, такие как стратегии слияния отложенного кода.) Я думаю, что они РЕАЛЬНАЯ проблема в больших проектах. В любом случае, мне придется
искать

1
@kaoD SubEthaEdit предлагает такую ​​функциональность для каждого отдельного файла (не уверен, насколько хорошо он обрабатывает большое количество файлов).
Майкл Бартнетт

Если кто-то может найти мне такую ​​программу для Windows и C #, я дам вам cookie.
steakbbq

1
Emacs может сделать это, но это неуклюже: emacswiki.org/emacs/CollaborativeEditing ; или MoonEdit: moonedit.com (хотя я не знаю, имеет ли он режим C #); или Гобби: en.wikipedia.org/wiki/Gobby
amitp

Насколько сложно было бы написать новый возвышенный компилятор IE? Вероятно, было бы проще разработать плагин для возвышенного права?
steakbbq

Ответы:


19

Как я сказал в комментарии к вашему вопросу, мне очень любопытно по- настоящему совместное редактирование . Некоторое время назад я проводил исследования, но большинство решений просто не соответствовали стандартам: либо они были простыми текстовыми редакторами с подсветкой синтаксиса, либо имели безумные затраты, либо были недоступны кроссплатформенно (например, SubEthaEdit ...)

Пока я не наткнулся на Сароса ! Это аккуратный плагин Eclipse, поэтому его легко интегрировать в ваш текущий рабочий процесс. Вы можете посмотреть их демо-видео , оно довольно впечатляющее. Он очень хорошо продуман для настоящей совместной среды редактирования и имеет несколько очень хороших ключевых функций. Он поддерживает произвольное количество участников, полную синхронизацию проекта, редактирование в режиме реального времени с помощью маркеров и выделения (например, Документы Google), в соответствии с мнением вашего партнера, несколько методов осведомленности участников и многое другое (вы даже можете поделиться своим экраном с помощью этого плагина. ) И, видимо, он интегрируется со многими другими плагинами Eclipse!

Я еще не попробовал это сам, но это один из немногих проектов, который еще поддерживается и выглядит очень многообещающе. Сделайте попытку и дайте мне знать (прочитайте эти инструкции раньше). Я обещаю, что вернусь сюда и опубликую свои впечатления в качестве комментария, когда попробую сам.

РЕДАКТИРОВАТЬ: Кроме того, как Густаво указал в комментарии, Cacoo может быть также полезным. Это интерактивный инструмент для совместной работы для рисования UML (на самом деле, для диаграмм любого типа). Saros поддерживает доску, но нет ничего похожего на инструмент для диаграмм, если вы хотите избежать неловкости.


3
Люди дали много ответов, все о системах управления версиями, но я думаю, что это фактический ответ на вопрос. +1 за совместное редактирование. Кстати, попробуйте Cacoo (Google google). Это инструмент для совместной работы по созданию UML, который помог мне в куче проектов, он может дополнить ваш ответ.
Густаво Масиэль

1
@ Gustavo-Gtoknu очень хороший инструмент на самом деле, вы не возражаете, если я обновлю ответ с ним?
KaoD

2
Сделай это сейчас! : D Ответ заслуживает.
Густаво Масиэль

Это здорово, однако Затмение для Java? Я бегу c #
steakbbq

@steakbbq Есть несколько плагинов, которые обеспечивают поддержку C # ( Emonic и Improve ), но, к сожалению, им, похоже, не хватает поддержки отладки и рефакторинга.
КаоД

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 это путь. Я использую AnkhSVN в качестве своего плагина Visual Studio для Subversion.
Ричард Марскелл - Дракир

2
+1 здесь. мое личное одобрение TortoiseSVN. Для хостинга (при условии открытого исходного кода) я рекомендую Google Code
PlayDeezGames,


2
Пожалуйста, не подрывная деятельность. Распределенное управление версиями абсолютно просто для людей, не привыкших работать с централизованными системами. Люди, привыкшие к подрывной деятельности, теряют понимание.
rjmunro

9

Для моей команды мы используем три программы в зависимости от того, над чем нам нужно работать:

  • TortoiseSVN для кода (постарайтесь, чтобы программисты использовали одну и ту же среду разработки, стандартизировали соглашения и поощряли хорошее комментирование)
  • Dropbox для мультимедиа (для моделей / спрайтов / аудиофайлов, позволяет разработчикам работать локально, пока художники / композиторы / моделисты не будут готовы к поставке)
  • GoogleDocs для документации (для проектных документов / макетов / презентаций обычно для дизайнеров, менеджеров и производителей)

Чтобы координировать усилия разных участников (которые работают в разное время), мы используем систему билетов Ассембла. Таким образом, каждый узнает о статусе всего проекта или конкретной авеню по своему выбору. Также используйте Skype / Google Hangout / Личное общение, чтобы убедиться, что все находятся на одной странице хотя бы раз в неделю.

Этот метод обычно работает, когда команда состоит из 3-5 человек, которые имеют установленные роли (программист, художник, модельер, дизайнер и т. Д.). Если это не работает, попробуйте другие методы или объедините рабочие аспекты, чтобы создать свой собственный. Удачи!


Я говорил только о контроле версий для кода, потому что это единственный аспект разработки, о котором он спрашивал, но моя студия также использует Dropbox и Google Docs для тех же целей, что и этот ответ.
Джоккинг

Отличное сочетание.
Билл К

7

Звучит так, как будто вам нужен либо выпадающий список, либо система контроля версий, либо и то и другое.

Dropbox является наиболее удобным. Просто внесите изменения и сохраните, и Dropbox синхронизирует изменения на вашем компьютере друзей. Не думайте, что 2 человека могут работать над файлом одновременно, хотя и не перезаписывают работу друг друга.

Тем не менее, я рекомендую вам использовать систему управления версиями. Subversion , GIT и Mercurial в настоящее время занимают 3-е место. Использование VCS имеет много преимуществ: в том числе возможность автоматизации резервного копирования, изменения отката и извлечения кода на любом компьютере. который имеет доступ к вашему серверу.

Воспользовавшись 3, я упомянул, я нашел Subversion наиболее простым для начала, а Assembla позволяет бесплатно создавать частные SVN или GIT-репозитории.


9
Мне не очень нравятся Dropbox для подобных вещей. Если вы используете какой-либо из продуктов Tortoise *, он имеет аналогичную интеграцию с Windows Explorer, но вы можете управлять коммитом / push / pull / merge, чтобы у вас не возникало проблемы «2 человека перезаписывают друг друга».
Джимми

2
Я тоже не знаю, поэтому я рекомендую VCS. Тем не менее, почти нет кривой обучения, и у вас сразу же есть резервная копия, поэтому я счел, что стоит упомянуть
ClassicThunder

9
Я бы рекомендовал не использовать DropBox вместо системы контроля версий. Если два человека изменят один и тот же файл за один и тот же период времени, DropBox продублирует файл. Для исходного кода это, как правило, нежелательно и более болезненно, чем просто использование системы контроля версий.
Джон Макдональд

Subversion не проще в использовании - люди, привыкшие к получению, найдут его таким же запутанным, как и люди, идущие в другую сторону.
rjmunro

Я никогда не говорил, что это было. Я сказал для меня, что легче всего научиться учиться. Глупо формулировать субъективные утверждения, такие как «Subversion не проще в использовании» в абсолютных терминах.
ClassicThunder

5

Как уже упоминалось в других ответах, VCS - это путь. Git - мой любимый, но это может быть просто потому, что это был первый, который я использовал.

Я нашел эту онлайн-книгу очень полезной для изучения Git. http://progit.org/book/ Независимо от того, с какой VCS вы работаете, стоит потратить несколько часов на то, чтобы понять, как его использовать.

Стоит упомянуть еще одну вещь - VCS отлично подходит для исходного кода (или любых текстовых файлов), но хранение изображений и звуковых файлов может привести к переполнению вашего хранилища. Некоторые люди рекомендуют для этого отдельный репозиторий, но я считаю, что Dropbox хорошо работает для такого рода ресурсов.

Для школьного проекта мы использовали общедоступную папку Dropbox и использовали этот сценарий для обновления наших ресурсов https://github.com/dc2011/td/blob/master/tools/extrafiles.sh

Он проверяет хэш md5 файла в Dropbox по хешу файла, уже находящегося на диске (если он существует), так что загружаются только новые или измененные файлы.


1
да, я использовал svn. Теперь я всегда использую Git. Хотя многим не нравится командная строка, я считаю ее очень удобной. В Windows я использую консоль, которая работает в среде git-bash. На OSx это просто Терминал с темой Solarized.
Прозакер

Я согласен, я живу в терминале, если я могу! Иногда есть немного более крутая кривая обучения, но это делает автоматизацию намного проще. Если вы используете OSX на регулярной основе, вы должны проверить iTerm2. Он имеет поддержку 256 цветов, а также полноэкранный режим и очень удобно использует разбиения.
декан

4

Как уже упоминалось, вам нужен контроль версий. Есть хорошее бесплатное предложение от программного обеспечения FogCreek (вы должны поблагодарить их за предоставление stackexchange, который делает этот сайт возможным). Он называется Kiln (построен на основе Mercurial ) и интегрируется с красивым программным продуктом для отслеживания ошибок / возможностей / времени, который они создали под названием FogBugz . Для команды из 2 разработчиков они предоставляют бесплатные версии этих продуктов (и размещают их для вас). Я использую эту настройку для своих собственных проектов и платных версий для всех программных продуктов, над которыми я работаю для своего работодателя (у нас гораздо большая команда разработчиков, поэтому мы должны использовать платные версии). Стоит посмотреть наверняка.

Если вы решите использовать их, вот несколько хороших руководств или полезных ссылок для начала:


1

Инструменты, которые моя команда использует для беспрепятственного сотрудничества:

• GitHub, который, если у вас есть немного денег, является чрезвычайно дешевым и простым способом размещения всего вашего источника. Это платформа контроля версий, о которой говорили большинство людей. Думайте об этом как об учетной записи Pastebin, которая существует на вашем локальном жестком диске и обновляется всякий раз, когда кто-либо из членов вашей команды вносит изменения. Хостинговые проекты называются депозитариями. Существует множество бесплатных клиентов Git, некоторые из которых интегрируются прямо в Windows, чтобы поддерживать чистоту и актуальность ваших хранилищ.

• Документы Google для игрового дизайна документов, идей, концепт-арта.

• Случайное использование DropBox, если одному из нас требуется определенный актив или скрипт ... это, однако, редко, и мы предпочитаем работать через GitHub.


1

Если вы используете Visual Studio, лучшим вариантом является Team Foundation, от Microsoft, и это лучший из известных мне Версионных контролей, минус в том, что вам нужен сервер, sql-сервер и сервер Team Foundation для запуска на сервере. (клиент уже работает в visual studio), если у вас есть такая возможность, попробуйте.


В настоящее время я использую Team Foundation. У меня есть вопрос относительно ветвления и слияния ветвей. Если я создаю две ветви и кто-то добавляет некоторый код в класс, и я добавляю другой класс в класс, когда я их объединяю, он добавит оба изменения в файл или получит ошибку и должен будет выбрать одно из изменений ?
steakbbq

Я не использую ветвь для этого, я использую ветвь для разных версий, если вы делаете это, то Visual Studio, возможно, сделает слияние плохо (например, когда кто-то использует класс, а другой проверяет один и тот же класс, и они оба добавляют code, visual studio попросит вас выполнить слияние вручную), если вы хотите вносить изменения в класс одновременно, почему бы вам не использовать частичные классы? используйте ветки для разных версий, чтобы вы могли лучше контролировать свои версии
Rudy_TM

«Team Foundation, от Microsoft и является лучшим из известных мне Version Control». О, дорогой :) Вы когда-нибудь пробовали что-то еще?
Энди М

1

Для программирования виртуальной пары я использую эту настройку (координируя все через Skype):

  1. Установите SSH-сервер на одном из ваших компьютеров.
  2. Установите tmux
  3. Другой человек SSH в ваш компьютер.
  4. Пусть хост начнет сеанс tmux
  5. Пусть ваш партнер запустит tmux at в своем SSH-соединении

Теперь вы и ваш друг увидите точно такой же экран терминала. Но вы, вероятно, хотите иметь возможность работать вместе вне вашего компьютера, верно?

  1. Создайте учетную запись Bitbucket.org, создайте проект (я предпочитаю Git) и следуйте их инструкциям по созданию пустого хранилища.
  2. Скопируйте файлы вашего проекта с помощью "git add. && git commit -m 'Initial commit.'"
  3. Push в Bitbucket с «мастером git push origin»

Теперь вы и ваш друг можете работать над изменениями независимо и отправлять их в 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) - настоящая боль!


тьфу, я ненавижу такие комментарии в заголовке каждого сценария. И в любом случае это не решает вопрос здесь; методы отслеживания изменений ничего не говорят о том, как члены команды будут делиться друг с другом своей работой.
Джоккинг

Ну, общение не проблема, мои коллеги-разработчики сидят со мной в Ventrilo весь день, и мы довольно много разговариваем.
steakbbq
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.