Який найефективніший спосіб працювати з другом в одній грі?


29

Нам потрібно щось, де ми зможемо перевірити файли, відредагувати їх, повернути їх назад, а потім створити з них.

Щось на зразок Документів Google, де ми можемо одночасно редагувати той самий код, було б ідеально.

Ми обидва використовуємо Visual Studio 2010.


2
Мені завжди було цікаво, чому ніхто не робив (або, принаймні, я не знаходив) редагування коду, як у Документах. Я думаю, що є деякі властиві труднощі, такі як заповнення коду і той факт, що код повинен бути скомпільований, але вони не здаються абсолютно неможливими для подолання з деякою координацією (і, можливо, прийомами, як затримки стратегій злиття коду.) Я думаю, що вони є РЕАЛЬНА проблема у великих проектах. Мені доведеться копати інструменти спільного кодування в будь-якому випадку (або зробити сам: P)
kaoD

1
@kaoD SubEthaEdit пропонує такий функціонал на основі файлу (не впевнений, наскільки добре він обробляє велику кількість файлів).
michael.bartnett

Якщо хтось може знайти мені таку програму для Windows та c #, я дам вам печиво.
steakbbq

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

Наскільки важко було б написати новий компілятор піднесеного IE? Можливо, просто було б легше розробити плагін для піднесеного, чи не так?
steakbbq

Відповіді:


19

Як я заявив у коментарі до вашого запитання, мені дуже цікаво справжнє спільне редагування . Я займався дослідженнями деякий час тому, але більшість рішень просто не відповідали стандартам: або вони були текстовими редакторами із виділенням синтаксису, мали шалені витрати або були недоступні міжплатформні (наприклад, SubEthaEdit ...)

Поки я не наткнувся на Сароса ! Це акуратний плагін Eclipse, тому його можна легко інтегрувати з поточним робочим процесом. Ви можете подивитися їх демонстраційне відео , це досить вражаюче. Це дуже добре продумано справжнє середовище редагування та має деякі дуже чіткі ключові особливості. Він підтримує довільну кількість учасників, повну синхронізацію проекту, редагування в реальному часі з маркерами та виділення (ала Google Документи), за думкою партнера, декілька методів обізнаності учасників та багато іншого (ви навіть можете поділитися екраном за допомогою цього плагіна. ) І, мабуть, вона інтегрується з багатьма іншими плагінами Eclipse!

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

EDIT: Також, як зазначив Густаво у коментарі, Какао теж може бути корисним. Це онлайн-інструмент спільної роботи для малювання UML (насправді, будь-якої діаграми.) Saros підтримує дошку, але немає нічого подібного до інструмента діаграми, якщо ви хочете уникнути незграбності.


3
Люди дали багато відповідей, все про версійні системи, але я думаю, що це фактична відповідь на питання. +1 для спільного редагування. До речі, випробуйте Cacoo (google it) Це інструмент спільної роботи для створення UML, допоміг мені у купі проектів, він може доповнити вашу відповідь.
Gustavo Maciel

1
@ Gustavo-Gtoknu дійсно дуже хороший інструмент, чи не заперечуєте, якщо я оновлю відповідь на нього?
якDD

2
Зробіть це зараз! : D Відповідь заслуговує.
Gustavo Maciel

Це чудово, проте Eclipse призначений для Java? Я бігаю c #
steakbbq

@steakbbq є деякі плагіни , які забезпечують підтримку C # ( Emonic і вдосконалюй ) , але , до жаль , вони , здається, НЕ вистачає налагодження і рефакторінга підтримки.
якDD

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 для коду (намагайтеся, щоб програмісти використовували той самий IDE, стандартизували конвенції та заохочували гарне коментування)
  • Dropbox для мультимедіа (для моделей / спрайтів / аудіофайлів дозволяє розробникам працювати локально, поки артисти / композитори / моделери не будуть готові до доставки)
  • GoogleDocs для документації (для дизайнерських документів / макетів / пітчей зазвичай для дизайнерів, менеджерів та виробників)

Для координації зусиль різних членів (які працюють в різний час) ми використовуємо Асамблею квиткову систему. Таким чином, кожен отримує інформацію про стан цілого проекту чи конкретний проспект на свій вибір. Також використовуйте спілкування Skype / Google Hangouts / віч-на-віч, щоб переконатися, що всі перебувають на одній сторінці принаймні щотижня.

Цей метод, як правило, працює, коли команда складається з 3-5 осіб, які мають встановлені ролі (програміст, художник, модельєр, дизайнер тощо). Якщо це не спрацює, спробуйте інші методи або комбінуйте робочі аспекти, щоб зробити свій власний. Удачі!


Я говорив лише про контроль версій для коду, тому що це єдиний аспект розвитку, про який він запитував, але моя студія також використовує Dropbox і Google Docs для тих же цілей, що і ця відповідь.
поштовх

Чудове поєднання.
Білл К

7

Здається, ви хочете або спадне поле, система управління версіями, або те і інше.

Dropbox - це найзручніше. Просто внесіть зміни та збережіть, і Dropbox синхронізуватиме зміни на вашій друзі. Не думайте, що двоє людей можуть працювати над файлом одночасно, хоча не перезаписуючи один одного.

Однак я рекомендую використовувати систему управління версіями Subversion , GIT та Mercurial даний момент є великою 3. Є багато переваг у використанні VCS: включаючи можливість автоматизованого створення резервних копій, зміни відката та перевірку коду на будь-якому комп’ютері який має доступ до вашого сервера.

Використовуючи 3 згадані мною, я знайшов Subversion найпростішим для початку, і Assembla дозволяє отримати безкоштовні приватні сховища SVN або GIT.


9
Мені не дуже подобається Dropbox для подібних речей. Якщо ви використовуєте будь-який із продуктів Tortoise *, у нього є подібний тип інтеграції Windows Explorer, але ви можете контролювати фіксацію / натискання / потягування / злиття, щоб у вас не було проблеми "2 людини, що перезаписували один одного".
Джиммі

2
Я не обидва, тому я рекомендую VCS. Однак кривої навчання майже немає, і у вас моментально є резервне копіювання, тому я вважав, що варто згадати.
ClassicThunder

9
Я рекомендую не використовувати DropBox замість системи контролю версій. Якщо двоє людей модифікують один і той же файл протягом одного і того ж часового періоду, DropBox копіює файл. Для вихідного коду це, як правило, небажано і більше болить, що просто за допомогою системи управління джерелом.
Джон Макдональд

Subversion не простіший у використанні - люди, які звикли лише, знайдуть це так само заплутано, як і люди, що йдуть іншим шляхом.
rjmunro

Я ніколи не казав, що це було. Я сказав, що для мене найпростіше взяти навчання. Нерозумно в абсолютному вираженні висловлювати суб'єктивні висловлювання, такі як "Підрив не легше використовувати".
ClassicThunder

5

Як вже згадувалося в інших відповідях, ДКС - це шлях. 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.
Prozaker

Я згоден, я живу в терміналі, якщо можу! Іноді є дещо крутіша крива навчання, але це робить автоматизацію набагато простішою. Якщо ви використовуєте OSX регулярно, слід перевірити iTerm2. Він має підтримку 256 кольорів, а також повноекранний режим і дуже ефективно використовує шліци.
декан

4

Як багато хто згадав, вам потрібен контроль версій. Є приємна безкоштовна пропозиція від програмного забезпечення FogCreek (ви маєте подяку за надання stackexchange, що робить цей сайт можливим). Він називається Kiln (побудований на вершині Mercurial ) і інтегрується з приємним програмним продуктом для відстеження помилок / функцій / часу, який вони створили під назвою FogBugz . Для команди з 2 розробників вони надають безкоштовні версії цих продуктів (і розміщують їх для вас). Я використовую цю установку для власних проектів і платних версій для всіх програмних продуктів, над якими працюю для свого роботодавця (у нас набагато більша команда розробників, тому треба використовувати платні версії). Варто подивитися точно.

Якщо ви все-таки вирішили скористатись цими, ось кілька хороших навчальних посібників чи корисних посилань для початку:


1

Інструменти, які використовує моя команда для плавної співпраці:

• GitHub, який, якщо у вас є трохи грошей, - надзвичайно дешевий і простий спосіб розмістити все джерело. Це платформа управління версіями, про яку говорила більшість людей тут. Подумайте про це як обліковий запис Pastebin, який існує на локальному жорсткому диску і оновлюється щоразу, коли хтось із членів вашої команди вносить зміни. Розміщені проекти називаються депозитаріями. Існує безліч безкоштовних клієнтів Git, деякі з них інтегруються прямо у Windows, щоб забезпечити збереження ваших сховищ чистими та актуальними.

• Документи Google для дизайнерських документів, ідей, ідей дизайну ігор.

• Епізодичне використання DropBox, якщо комусь із нас потрібен певний актив або сценарій ... це, однак, рідко, і ми вважаємо за краще працювати через GitHub.


1

Якщо ви використовуєте Visual Studio, найкращим варіантом є Team Foundation, це корпорація Майкрософт, і це найкращий контроль версій, який я знаю, негативним є те, що для роботи на сервері вам потрібен сервер, сервер sql та сервер фундамента команди. (у клієнта вже є візуальна студія), якщо у вас є можливість, спробуйте.


Зараз я використовую Team Foundation. У мене виникає питання щодо розгалуження та об'єднання гілок. Якщо я роблю дві гілки, а хтось додає якийсь код до класу, і я додаю якийсь інший код до класу, коли я їх об’єдную, чи додасть вони зміни у файл, або ми отримаємо помилку і доведеться вибрати одне із змін ?
steakbbq

Я не використовую гілку для цього, я використовую гілку для різних версій, якщо ви зробите це візуальна студія, можливо, зробить злиття погано (як, коли хтось використовує клас, а інший перевіряє той самий клас, і два з них додають код, візуальна студія попросить вас зробити об'єднання вручну), якщо ви хочете одночасно вносити зміни до класу, чому ви не використовуєте часткові класи? використовуйте гілки для різних версій, так що ви маєте більше контролю над своїми версіями
Rudy_TM

"Team Foundation - від Microsoft, і це найкращий контроль версій, який я знаю" О, дорогий :) Ви коли-небудь пробували щось інше?
Енді М

1

Для програмування віртуальної пари я використовую цю установку (координуючи все по Skype):

  1. Встановіть SSH-сервер на один із ваших машин.
  2. Встановити tmux
  3. Інша особа входить у ваш комп’ютер.
  4. Запропонуйте хосту розпочати сесію tmux
  5. Попросіть вашого партнера запустити "tmux at" у своєму SSH-з'єднанні

Тепер ви з вашим другом побачите точно той же екран терміналу. Але ви, мабуть, хочете, щоб можливість працювати разом поза комп’ютером, правда?

  1. Створіть обліковий запис Bitbucket.org, створіть проект (я віддаю перевагу Git) та дотримуйтесь їх інструкцій щодо створення порожнього сховища.
  2. Скопіюйте файли вашого проекту за допомогою "git add. && git commit -m" Початкова комісія "."
  3. Натисніть на Bitbucket з "git push origin master"

Тепер ви з вашим другом можете працювати над змінами самостійно і підштовхуйте їх до Bitbucket, коли будете готові.

Це не дозволить вам обом редагувати разом у Visual Studio будь-який приємний спосіб, але ви зможете самим редагувати вихідний код, якщо підключитесь до якоїсь нової функції або налагодите проблему. Поки ви потім натискаєте свої зміни, ваш друг може відкрити їх у VS.


1

Я б запропонував контролювати версію Bazaar . Це невеликий, практичний, дуже хороший для маленьких / one2few чоловічих проектів. 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), справжній біль!


Тьфу я ненавиджу такі коментарі на чолі кожного сценарію. І все одно, що тут не вирішується питання; методи відстеження змін нічого не розповідають про те, як члени команди поділяться між собою своєю роботою.
поштовх

Що ж, спілкування - це не проблема, мої колеги-розробники сидять зі мною в Вентрило цілий день, і ми дуже багато спілкуємося, хаха.
steakbbq
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.