Игроки рынка стремительно выходят и в Интернет, удачно сочетая новые возможности для маркетингового продвижения с отлаженным механизмом продаж. Участие в онлайновых акциях не привязывает пользователей к компьютеру. Однако даже при офлайн-участии удерживается аудитория сайта. В Рунете подобные «гибридные» инициативы пока редкость. Из более или менее известных можно отметить SMS-олимпиаду по русскому языку, которую провел образовательный веб-ресурс Gramota.Ru. В соревновании приняли участие 2932 посетителя сайта. Также заслуживает внимания портал Translate.ru, «переводческий» движок которого компания ПРОМТ сдала в аренду фирме i-Free. Поступивший SMS-запрос система i-Free передает переводчику и после получения перевода отправляет его клиенту на телефон.
   Судя по всему, отечественный рынок Value Added Services прошел «наколенную» фазу развития, и сейчас это вполне серьезный бизнес с набором стандартных инструментов и ощутимой конкуренцией. Не исключено, что неизвестный отечественный умелец уже придумывает романтического медвежонка, который придет на смену сумасшедшей лягушке, и его бодрое рычание заглушит в метро и другом общественном транспорте истерическое кваканье. Главное, чтобы идею не украли. Если что, мы о медвежонке ничего не слышали — и точка.
 
   IVR (Interactive Voice Response) — система интерактивного голосового общения. Как правило, взаимодействие происходит путем нажатия телефонных клавиш (робот ведет диалог примерно такого содержания: «Чтобы узнать прогноз, погоды нажмите “1», для разговора с оператором нажмите “2”" и т. д.).
   JDBC (Java Database Connectivity) — драйвер, обеспечивающий связь Java-приложений и СУБД.
   SMPP (Short Message Peer to Peer) — протокол передачи SMS-сообщений, поддерживаемый SMS-центрами (SMSC) операторов связи.
   UCP/EMI (Universal Computer Protocol/External Machine Interface) — протокол, обеспечивающий связь SMS-центров с Интернетом или другой TCP/IP-сетью.

«КТ» #608) было подробно рассказано о mmorpg: о финансовых потоках, типах игроков, процедуре создания частного онлайн-сервера и еще о куче всяких мелочей. Кто-то просто принял статью к сведению, кто-то лишь пролистал, но некоторая категория читателей захотела детальнее узнать о том, как это сделать самому. И поразмыслив над письмами типа «Да это все элементарно — поставил дома программку и ты богат», я решил написать более приближенное к реальности руководство по открытию своего mmorpg-сервера.

Требуемое ПО
   Что же такое серверное ПО для mmorpg? Сервер mmorpg — это программное обеспечение, написанное разработчиками игры и служащее для создания игрового мира. А клиент этот мир соответственно отображает, но его можно скачать где угодно, поскольку в большинстве проектов он бесплатный. Существует два вида серверного ПО — официальное и не официальное, то есть эмуляторы. Официальный сервер представляет собой верх стабильности и масштабируемости. К недостаткам же его относится слишком сложное редактирование мира и дороговизна (если приобретать его легально). Эмулятор сервера — это ПО, написанное энтузиастами, которые желают поиграть или на халяву, или в «другую версию» любимого мира (так, например, делают разработчики эмулятора сервера для Final Fantasy XI; их сервер будет создавать новый мир для FF, но платить за игру все равно придется). У эмуляторов довольно много плюсов, но есть и минусы, которые могут погубить проект еще в самом начале, — а именно:
   Эмуляторы нужно ждать. Некоторые из них создаются больше года и лишь потом попадают в Сеть.
   Практически полное отсутствие наполнения мира. Не секрет, что порой во вселенной mmorpg находятся десятки тысяч объектов (та же космическая EVE Online). Наполнение баз данных — одна из самых трудоемких задач. Зачастую, если игра, для которой создается эмулятор, очень популярна, наполнением БД занимаются десятки и сотни человек. К примеру, для эмулятора WoWemu (под игру World of Warcraft) БД наполняли все кому не лень. Создавались международные группы, которые действовали сообща, пытаясь подогнать мир эмулятора под официальные серверы WoW. А WDDG Team даже стала писать собственный эмулятор.
   Баги. Движки эмуляторов обычно имеют огромное количество ошибок и неточностей. Хотя в большинстве случаев это временное явление.
   Вы можете играть в любимую mmorpg бесплатно.
   Вы можете сами создавать настройки мира или выбирать из уже предложенных.
   Практически все эмуляторы мультиплатформны, в отличие от официальных серверов, которые создаются исключительно под Windows (интересно, почему?).
   Вы можете заработать деньги, построив на базе эмулятора сервер с глобальным доступом и продавая какие-нибудь вещи/ценности или дополнительные возможности из виртуального мира за вполне реальные деньги.
Как сделать эмулятор?
   Достаточно легко, если вы мастер программирования, хотя случаи создания эмулятора одним человеком чрезвычайно редки. Пожалуй, стоит упомянуть товарища WAD’a, сделавшего WoWemu (отрадно, что WAD русский и что он создал первый эмулятор сервера для World of Warcraft), и Ramsey, в одиночку занимающегося эмулятором для Priston Tale и участвующего в куче других проектов. Но если ваши желания превосходят ваши возможности, то можно собрать группу разработчиков. От них требуется знать Asm, C, C++, C# (последний не очень популярен, скорее всего, из-за новизны, а также «безопасности» в работе с указателями), Java (редко), крипто/декриптографию, способы отлавливания пакетов. Криптографа/декриптографа достаточно одного, как и знатока ассемблера. А вот мастеров работы с высокими языками программирования мало никогда не бывает.
   Как же выглядит процесс? Человек, исследующий пакеты, запускает игру, заходит на официальный сервер, играет и при каждом действии смотрит, какие пакеты были присланы и отправлены к клиенту и от клиента соответственно. Затем он отдает полученные пакеты декриптографу, а вместе со знатоком ассемблера выясняет, что же эти пакеты делают. И далее программисты пишут приложение, причем так, чтобы при получении каких-либо пакетов оно отвечало соответственными, то есть эмулировало работу официального сервера. Порой самое трудное — это понять, что делают пакеты. Например, после того как Ragnarok Online стала сверхпопулярной в Сети, ее разработчик, корпорация Gravity, в следующем своем проекте (R.O.S.E., или Rush On Seven Episodes) организовала архитектуру, при которой клиент получает информацию не с видимого участка, а со всей (!) карты. Таким образом, найти пакеты, которые посылаются конкретному персонажу, очень непросто.
   Интересны также способы заполнения базы данных мира. Кроме ручного существуют всяческие изощренные методы. Например, команда OpenWoW (ныне распущенная, но об этом чуть ниже) хотела использовать специальную программу-прослойку между клиентом и официальным сервером. Задача программы — при появлении объекта в зоне видимости (или на карте) записать данные о нем в базу. То есть она частично должна была автоматизировать процесс заполнения базы. Была у OpenWoW и другая задумка — написать программу, которая бы подключилась к официальному серверу Blizzard и скачала весь мир. Каким образом они собирались это сделать, так и не известно.
Выбор подходящего мира
   В русском секторе mmorpg наиболее популярны LineAge 2, World of Warcraft, Ragnarok Online; сдают позиции Mu Online и RF Online. Сразу скажу, что создавать сервер для Mu Online не имеет смысла из-за острейшей конкуренции, которую эта игра не выдерживает. Для RF Online нет нормального эмулятора/официального сервера. Тот, что сейчас доступен, битком набит багами, исправлением которых занимается Siu со своей командой, но дело идет медленно, поскольку все приходится редактировать через hex-редактор (главный недостаток официальных серверов). Для успешности сервера LineAge 2 необходимо предложить пользователям версию С3, но здесь трудности заключаются в жуткой нестабильности официального сервера С3 (на самом деле используется сервер С1 с exe-файлами от С3 плюс некоторые наработки). Сейчас таких серверов единицы. Серверу World of Warcraft нужно предоставить максимальное количество возможностей (ни один эмулятор до сих пор не поддерживает все навороты игры). Ragnarok Online можно порекомендовать самые последние обновления (и заодно повысить стабильность) — в частности, включить поддержку новых персонажей и изготовление эксклюзивных спрайтов персонажей и карт (очень трудоемкое дело, которое, впрочем, должно себя оправдать). Проекты из разряда Dark Age of Camelot, Star Wars Galaxies и Everquest 1/2 не столь популярны, чтобы был резон создавать для них частный сервер.
Изменение игрового мира
   Для изменения mmorpg-вселенной (количество получаемого опыта, падающих из монстров вещей, количество падающих денег — одним словом, «рейты», а также различные ограничения и модели) нужно манипулировать и серверной, и клиентской частью.
   Для примера возьмем популярную «бесплатную» Ragnarok Online. У нее больше всего разработчиков, бесплатных серверов и сторонних программ. В клиенте можно найти пару exe-файлов (первый заведует автоматическим обновлением и кое-какими мелочами, второй отвечает за сам движок игры), пару файлов типа .grf (это архивы, содержащие текстуры, модели, спрайты, карты, звуки, палитры), папочку с музыкой и папочку с настройками. В принципе такой архитектуры придерживаются все разработчики игр. Хотя встречаются игры с одним .exe-файлом и одним архивом (например, лучшая, по мнению посетителей портала mmorpg.com, игра Guild Wars).
   Как же изменять мир? В серверной части — путем редактирования файлов настройки, исходного кода эмулятора (разумеется, с последующей компиляцией) и базы данных (однако не всегда в ней находятся какие-либо настройки или параметры, отвечающие за работу эмулятора). Для редактирования файлов настройки на клиентской стороне особых знаний не требуется, ну разве что знание английского языка. Для внесения изменений в исходный код нужно владеть ассемблером и C/Java. Для редактирования БД понадобятся MySQL— или MSSQL-серверы. Можно легально скачать с сайта Microsoft триал-версию MSSQL, которая работает аж 365 (!) дней, причем некоторые товарищи утверждают, что по истечении пробного времени сервер продолжает пахать как ни в чем не бывало. Кроме того, нам потребуются программки типа grf-extractor (коих написано великое множество). С их помощью можно добавлять новые карты, новые спрайты, да вообще все, что угодно. Пожалуй, самое сложное — ввод новых эффектов, но я с подобным трюком не сталкивался. Однако добавление файлов через grf-extractor подходит лишь при начале работы сервера, ведь удаленно редактировать клиенты вы не сможете, да и как это делать, если у вас, допустим, зарегистрировалась хотя бы тысяча человек? Для таких случаев созданы программы автоматического обновления клиентов, позволяющие проверять появление обновлений и загружать их в клиента, непосредственно в файлы-архивы.
Кража официального сервера
   Допустим, вы не горите желанием писать свой эмулятор, не хотите использовать чужой, а украденного официального сервера в Сети нет, тогда остается лишь одно — украсть его самому. Правда, ни мне, ни моим знакомым (хотя среди них много хакеров) не известны способы кражи сервера из Сети. Согласно «легенде», сервер LinaAge2 был утащен «во время перезагрузки» одного из выделенных серверов. Говорят, в это время он был перемещен на доступный из Интернета хост, поэтому его и смогли умыкнуть. По мнению Ramsey, единственный способ украсть сервер — скопировать его на носитель: иными словами, нужно иметь знакомого в команде, обслуживающей сервер, или в команде разработчиков. Есть, однако, закрытый для подавляющего большинства российских (да и прочих) пользователей китайский сектор Интернета. «Закрытый» он не потому, что туда нет доступа, просто с китайским у нас пока не так гладко, как с английским. В Поднебесной официальные серверы появляются как грибы после дождя. Там сложилось mmorpg-emu-сообщество, готовое поделиться со «своими» всем, что есть. Практически для любой китайской (и не только) mmorpg можно найти официальный украденный сервер. Именно в Китае впервые появился официальный сервер с закрытого бета-тестирования очередного корейского mmorpg-шедевра Rising Force Online (RF Online).
   За воровство сервера вас могут привлечь по статье 272 УК РФ (неправомерный доступ к охраняемой законом компьютерной информации). Наказание, если орудовал один человек, — штраф в размере до двухсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до восемнадцати месяцев, либо исправительные работы на срок от шести месяцев до одного года, либо лишение свободы на срок до двух лет; если несколько человек — штраф в размере от ста тысяч до трехсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период от одного года до двух лет, либо исправительные работы на срок от одного года до двух лет, либо арест на срок от трех до шести месяцев, либо лишение свободы на срок до пяти лет. Со статьей все более или менее ясно, однако привлечь за содержание частного сервера трудно. Статья 146 УК РФ (нарушение авторских и смежных прав) предусматривает наказание в виде штрафа в размере до двухсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до восемнадцати месяцев, либо обязательные работы на срок от ста восьмидесяти до двухсот сорока часов, либо арест на срок от трех до шести месяцев. Но она сформулирована невнятно; в ней сказано, что наказание следует при «присвоении авторства (плагиат), если это деяние причинило крупный ущерб автору или иному правообладателю». Допустим, доказать потерю прибыли можно, но как доказать воровство? Достаточно, скажем, убрать с сайта сервера клиент (если он не распространяется открыто, как, например, клиент World of Warcraft), а также, на всякий случай, все логотипы и названия игры в их зарегистрированном виде — и наказывать уже будет не за что. Ведь использование эмулятора не означает воровства интеллектуальной собственности, поскольку он пишется с нуля, а доказать использование краденого официального сервера не представляется возможным. Таким образом, несовершенство российских законов в ИТ-сфере практически развязывает администраторам руки. Иллюстрацией к этому можно считать недавнее признание сайта mp3search.com легальным.
   Но, как известно, «за бугром» все по-другому. Общество мгновенно отреагировало созданием множества форумов, где обсуждаются эмуляторы, руководства по его настройке и прочие атрибуты. Blizzard, в свою очередь, повела с этими форумами войну.
   Администраторам ресурсов рассылалось письмо с подробной информацией о тех правах и законах, которые они нарушают. Хотя кое-кого все равно привлекли к ответственности. Некоторые добрые люди до сих пор выплачивают «близзам» штрафы от $10 тысяч до $40 тысяч. Под давлением компании был закрыт один из самых крупных форумов Интернета — Blizzhackers, за то, что на нем содержались гайды и ссылки для эмуляторов WAD, а также ссылки на клиент и патчи (на самом деле он переехал на другой адрес, удалив все упоминания о WoW). В России «близзы» давили на один из первых частных серверов для WoW, организованный администраторами сети Enforce (тогда он имел около 20 тысяч зарегистрированных аккаунтов); те, правда, конфликтовать не стали и быстренько свернули деятельность сервера.
Затраты на аппаратную часть
   Теперь немного о стартовом капитале. Для начала рассмотрим не покупку сервера, а его аренду на площадке провайдера. Итак, допустим, нам потребуется самый производительный арендуемый сервер (подойдет для LineAge 2 и World of Warcraft, а также для любых популярных проектов). Стоимость аренды в месяц — $199, установка — $60, подключение к Сети — еще полсотни. Оплата производится сразу за два месяца. Получается больше пятисот долларов единовременно лишь за сервер. Далее порядка $20 за домен в зоне .ru. Если вы не хотите нагружать арендованный сервер своим сайтом, то потребуется мало-мальски приличный хостинг, это еще $30. Получается $559 сразу плюс $230 каждый следующий месяц, и это не считая того, что всем, кто у вас работает, нужно платить. Цены абсолютно приемлемые, но если проект не начнет окупаться в первые два-три месяца, вы потеряете солидную сумму.
   Теперь вариант с покупкой сервера и размещением на площадке провайдера. Более или менее мощный сервер стоит примерно 90 тысяч рублей. Сюда входят два процессора Xeon 2800 МГц, 1 Mбайт кэша, 800-МГц шина, два винчестера по 36,7 Гбайт Ultra320 SCSI-Wide, два модуля памяти Kingston DDR 1 Гбайт ECC; добавление каждого гигабайта оперативки обойдется еще в 5 тысяч рублей (а ее потребуется ой как много). Преимущество такого выбора — возможность поставить на кон все, что угодно. Покупка собственного сервера — смелый шаг, поскольку, купив его, вы сразу потратите больше $3000, а это больше года аренды сервера, причем от аренды вы можете отказаться в любой момент (например, если проект оказался неудачным), а сервер уже не продать. Как правило, покупать собственный сервер имеет смысл после года успешной работы на арендованной «машине».
   Ну что, вы готовы открыть свой сервер? Все еще думаете, что это легко и дешево? Мне так не кажется. Так что не беритесь за «коммерческий» проект, если не уверены в своих силах, не имеете специалистов и не решили финансовую часть вопроса. А самое главное, помните: вкалывать придется аки пчелка. Конкурировать сейчас труднее трудного. Для каждой популярной mmorpg в России есть свой, и не один, бесплатный сервер. Для РО это MOTR, Oskom, RuRO. Для Lineage 2 — Melcosoft, Enforce, Alkar. Для WoW не знаю очень популярных, во многом это может быть обусловлено отсутствием нормальных эмуляторов.
   Удачи вам и успешных проектов.

АНАЛИЗЫ: Этот непостижимый административный учет

   Для россиянина связь между учетом и распределением очевидна до неразрывности, по-видимому, вследствие того, что в недавнем советском прошлом учитывалось ненамного больше того, что распределялось. Например, государство не распределяло места в поездах, незачем было вести персональный учет занятости мест в вагоне поезда, и передвижение было анонимным.
   Это касалось не только учета товаров, услуг и природных ресурсов, но и учета населения. Разница лишь в том, что человек, в отличие от всего остального, не мог быть забыт и свою основную, связанную с учетом функцию государство видело в том, чтобы правильно этого человека распределить. Надо признать, что в целом государство с этой функцией справлялось. В числе приоритетных навыков руководителя любого уровня было умение наладить работу так, чтобы даже распоследний неумёха приносил пользу.
   С распадом СССР ситуация изменилась. Задача не забыть человека по-прежнему осталась ключевой, но уже не для того, чтобы его распределять. Баланс нарушился. Два осколка социализма — система распределения льгот и система прописки, подпирая друг друга, фактически сорвали рыночные реформы в России. При этом основную отрицательную роль сыграла система учета населения: в условиях несвободы рынка труда ни о каких рыночных реформах не могло быть и речи (вернее, как раз и могли быть только разговоры).
   Безусловно, федеральная власть пыталась что-либо изменить в обеих частях этой связки. Однако сама связка не разрывалась, притом что каждая «половинка» реформировалась отдельно. Например, была создана чудовищная пародия на страховую медицину (см. врезку).
 
   До введения страховой медицины бюджетные деньги по поликлиникам (кроме ведомственных) распределял Минздрав. На смену этой системе пришла система распределения мизерных страховых премий по той же сети поликлиник. Жители по-прежнему были лишены права выбора лечебного учреждения. Конечно, приложив некоторые усилия, человек мог сменить поликлинику или выбрать врача в рамках одной поликлиники, но он не мог наблюдаться в одной поликлинике у окулиста, а у терапевта лечиться в другой. Нельзя было выбрать и страховую компанию, так как сеть поликлиник была поделена между страховыми компаниями. В Москве власть даже не заключала отдельные договора страхования конкретных граждан, ограничиваясь заключением с каждой страховой компанией единого договора страхования. Учет застрахованных велся исключительно на уровне учета выданных полисов, а полисы выдавались на основании данных административного учета, то есть прописки (впоследствии регистрации). Финансы распределялись исключительно через Московский фонд обязательного медицинского страхования (МГФОМС), куда кроме бюджетных поступали также средства от работодателей, в обязательном порядке страхующих своих сотрудников. Договора страхования работников работодатели не заключали, что исключало не только выбор страховой компании, но и контроль за качеством медицинского обеспечения со стороны работодателя. Никакой конкуренции, никаких конфликтов с лечебными учреждениями, никакой заинтересованности в качестве лечения и почти никакой ответственности со стороны медработников. Человек прописан по определенному адресу, а значит, он будет застрахован в определенной страховой компании и будет обслуживаться в определенной поликлинике.
   Если сотрудник нигде не прописан, то он не получит полис, даже если работодатель исправно отчисляет страховые взносы в Московский фонд обязательного страхования, что прямо вытекает из отсутствия договора страхования между работодателем и страховой компанией. А все потому, что в качестве базовой используется административная система учета населения, созданная, как уже говорилось, в целях распределения людей.
   Система же учета застрахованных оставалась производной от базовой системы. Этот рудимент государственной машины тотального учета и распределения всего и вся продолжал по инерции распределять людей по поликлиникам, но уже не было остальных механизмов хорошо отлаженной машины, заинтересованных в сохранении здоровья человека для его эффективного перераспределения из сферы здравоохранения в производственную сферу. Лучшая или одна из лучших в мире систем здравоохранения приходит в упадок от бессмысленности своего существования (то же самое можно было бы сказать и о ЖКХ или пенсионной системе).
   Административный учет препятствует и формированию гражданского общества, причем по тем же причинам. Например, учет избирателей, намертво привязанный к прописке, не позволяет незарегистрированным гражданам голосовать, а значит, интересы этой непрерывно увеличивающейся части населения на протяжении десятилетия не были представлены в законодательных органах.
   Там, где есть система учета, крайне важно понимать, для каких целей она создается и каким образом интегрируется с остальными системами. Власть разрушила связку «льготы — административный учет», просто выдернув с корнем льготы из этой конструкции. Власть понимает, что новая система не будет дешевле предыдущей, она лишь предлагает населению некоторое время потерпеть, пока постепенное увеличение финансового обеспечения не поднимет уровень жизни льготников до прежнего положения. И тут власть не обворовала население, как это кажется на первый взгляд. Власть просто вынуждена за счет населения оплачивать свою бездарность. Причем не только за счет льготников, но и за счет остальных налогоплательщиков, поскольку создание новой системы социального обеспечения влетело и еще влетит бюджету в такую копеечку, что впору не то что воровать — из своего чиновничьего кармана докладывать. Власть, видимо, не знает, насколько опасна подмена целей в системах управления. Иначе невозможно объяснить упорство, с которым этот трюк проделывается на всех уровнях.
   В качестве примера можно привести изобретенный в Москве способ борьбы с безбилетниками с помощью турникетов в общественном транспорте (см. врезку).
 
   Теперь инвалид-колясочник просто не может попасть в автобус, а если по милости доброго водителя и попадет (через заднюю дверь), то вынужден будет ехать без билета (льгот ведь у него теперь нет). То же самое касается женщин с детьми (даже без колясок). Убедившись, что эти турникеты приводят к давке, власть вместо их отмены увеличила количество автобусов и трамваев на маршрутах. В результате:
 
   на каждой остановке пришлось построить утепленный киоск для «продажи» бесплатных посадочных талонов для льготников, которые перед тем как отстоять очередь на посадку в автобус, отстаивают очередь в этот киоск;
 
   время общей поездки по маршруту увеличилось, так как увеличилось время посадки-высадки;
 
   увеличилась общая нагрузка на инфраструктуру;
 
   немалые средства потрачены на рекламную и информационную работу по популяризации турникетов.
   Конечно, безбилетнику стало труднее попасть в транспорт — но не труднее, чем остальным пассажирам. Зато теперь безбилетник может не опасаться контролеров. Это характерная особенность систем, базирующихся на новых принципах учета, — ориентация на исключение возможности нарушения закона и, как следствие, отсутствие необходимости в санкциях.
   Анализ показывает, что целью введения турникетов не могла быть экономия. То же самое можно сказать и о внедрении в 1998 году системы «Магистраль» (единая система персонального учета пассажиров железнодорожного, авиационного, а теперь и автобусного, морского и речного транспорта) якобы в целях борьбы с билетными спекулянтами (при ежегодном падении спроса на перевозки и, соответственно, вынужденном сокращении пассажирского подвижного состава).