Вздумалось мне поиграть немного в Starcraft II на MacBook Pro Unibody Core 2 Duo 2.8 GHz 4 GB RAM, соблазнившись тем, что есть версия игры под Mac OS X.

Запустил, в очередной раз восхитился скорости работы SSD, а затем огорчился тому, что даже на более мощной видеокарте игра немного, но подтормаживает. Огорчение было настолько ощутимым, что я решил реанимировать домашний PC (Core 2 Duo 3.16 GHz, 2 GB RAM, ATI X1900XTX, X-Fi Fatal1ty).

Реанимирование сопровождалось воплями в Twitter о том, как я ненавижу Windows XP. Устав бороться с драйверами (а для улучшения производительности я хотел переставить XP на RAID0 из двух дисков 500 GB), я воспользовался сгенерированным для меня в Microsoft Technet ключом Windows 7. И вот тут-то всё разочарование в Windows как рукой сняло. RAID подхватился "из коробки", мне понадобилось только поставить последний драйвер для видеокарты ATI X1900XTX и для звуковой карты Creative X-Fi Fatal1ty. Всё!

Понятно, что Mac OS X на родное железо ставится даже без намёка на подобную возню, но я сравнил установку Windows 7 и процесс поиска и списывания не меньше, чем 8 разных драйверов под XP, и понял, что Windows 7 - это большой шаг вперёд.

Немного настроек, и система вполне пригодна не только к игре в Starcraft II, но и для приятного сёрфинга в Google Chrome и работы с серверами через putty. Как раз для ssh-клиента я и покупал когда-то X1900XTX за $600 (-;

Хоть Starcraft заточен под Battle.net, но он не делает одной очевидной вещи - не синхронизирует состояние прохождения кампании между компьютерами, на которых пользователь играет. Почему я должен под одной учётной записью проходить на разных компьютерах игру повторно?

Идея появилась - идея проверена - идея реализована.

Кратко: Dropbox + символические ссылки в Windows (я не верил, что в Win они существуют, и был приятно удивлён тому, что ошибался).

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

Итак, задача

Есть ноутбук под Mac OS X и компьютер с Windows 7. Я хочу играть попеременно на обоих, причём прогресс должен сохраняться - на одной системе я хочу продолжать с того же места, где закончил на другой.

Настройки на Mac OS X

Учитывая размер диска на ноутбуке (да, размер SSD заставляет думать о дисковом пространстве), я для Mac использую одну учётную запись Dropbox, а для Win7 - другую. В Dropbox есть очень полезная функция - можно "расшаривать" конкретный каталог для одного или нескольких пользователей Dropbox.

Создаю подкаталог Games в каталоге Private и жму на "Invite to folder":

Шлю приглашение на свою учётную запись Dropbox для Win7:

На Win7 открываю пришедшее приглашение и соглашаюсь присоединиться:

Делаю симлинк на Маке. Имя пользователя вместо ctrld подставьте своё. Писать команду нужно именно так - должен быть указан полный путь и в пути к "StarCraft II" в конце не должно быть слеша:

$ ln -s /Users/ctrld/Documents/Blizzard/StarCraft\ II /Users/ctrld/Dropbox/Private/Games/

Данные синхронизировались с Dropbox, перехожу к Windows.

Настройки на Windows 7

Я всё время думал, что в Windows максимум, что есть - это так называемые "shortcut'ы", представляющие собой файлы с расширением .lnk. Именно из-за них ходят "супер-остроумные" анекдоты, как супер-хакеры (рассказчики) издеваются над тупейшими пользователями, приносящими вместо файлов ярлыки. Недолюбливаю я подобный компьютерный юмор.

Так вот - в NTFS есть полноценные символические ссылки, и об этом можно прочитать в Dropbox Wiki.

Для начала принимаю приглашение на подключение Games в Dropbox:

Присоединённый каталог находится в корне Dropbox:

Перехожу в Documents и переименовываю каталог "StarCraft II" в "StarCraft II.old".

Создать симлинк может только администратор (по крайней мере из-под пользователя с административными полномочиями выдавалась ошибка о недостатке прав). Ну что же - запускаем cmd.exe от имени администратора:

Создаю симлинк (вместо ctrld подставьте ваш username):

C:\>mklink /D "C:\Users\ctrld\My Documents\StarCraft II" "C:\Users\ctrld\My Documents\My Dropbox\Games\StarCraft II"
symbolic link created for C:\Users\ctrld\My Documents\StarCraft II <<===>> C:\Users\ctrld\My Documents\My Dropbox\Games\StarCraft II

В Explorer выбираю Properties на созданном симлинке и снимаю флаг "Read-only" для всех вложенных файлов и подкаталогов:

Запускаю на Win7 StarCraft II и вижу уже не предложение начать кампанию, а её продолжение на задании "Эвакуация", на котором я остановился на Mac'е.

Прошёл задание, вышел из игры в Win7, теперь перехожу на Mac и запускаю игру. Вуаля - я могу продолжать с того же места, на котором закончил на Win7. Разве что нужно поменять настройки графики, так как они были загружены с Win7, но это малая плата за удобство.

Что нужно было бы сделать, если бы было два Mac'а

Если бы было два Mac'а, да ещё одна учётная запись Dropbox, то задача немного бы упростилась.

Первый Mac:

$ ln -s /Users/ctrld/Documents/Blizzard/StarCraft\ II /Users/ctrld/Dropbox/Private/Games/

Второй Mac:

$ mv /Users/ctrld/Documents/Blizzard/StarCraft\ II /Users/ctrld/Documents/Blizzard/StarCraft\ II.old
$ ln -s /Users/ctrld/Dropbox/Private/Games/StarCraft\ II /Users/ctrld/Documents/Blizzard/

Вот вы увидели ещё одно применение Dropbox. Отличный сервис, я очень им доволен.