Ultima Online - воспоминания
Введение
Даже не знаю, с чего начать — историй столько, что в голове они сбиваются в одну сплошную кашу, где перемешались страх, смех и адреналин. Писатель я еще тот, уж простите. Особо впечатлительных прошу отойти от экрана дабы не пошла кровь из глаз=) Так вот, этот рассказ я хочу посвятить конкретному человеку — моему давнему игровому товарищу под ником Dipsy.
Если ты вдруг каким-то чудом это читаешь, я однозначно что-то изменю и приукрашу для красивого словца и слога, но ты себя узнаешь. Имя из пантеона телепузиков. Я не видел этого чувака со времен детства, но, блин, он до сих пор живет в моем сердце. Почему? Потому что это был наш личный Бендер, если говорить о «Футураме». Тот самый тип, который вечно мутил какие-то сомнительные, но гениальные схемы, постоянно влипал в дурацкие передряги и, главное, всегда утягивал за собой всю команду. Благодаря ему мы теряли золото, находили приключения и умирали со смеху.
Если ты это читаешь, Dipsy, знай — передаю тебе пламенный привет. Надеюсь, у тебя всё хорошо, и твоя жизнь до сих пор похожа на ту самую авантюру.
И так перед вами Ultima Online — пожалуй, нет такого опытного геймера, кто хотя бы краем уха не слышал об этой игре. Воистину эталон жанра. Игра, на которую равняются по сей день, извергая каждый год очередного «наследника» или «убийцу» этой легенды.
Это было моей первой ММО. Я не помню сколько мне было лет, по ощущениям лет 10, но однажды в нашем клубе появился один игрок в «Ультиму». Это был админ, который ночами гонял в игре, а админ у нас человек был уважаемый. Игра моментально охватила практически весь костяк клуба — и понеслось.
С тех пор прошло четверть века, а её магия всё так же необъяснима. Это был не просто геймплей, а первый настоящий цифровой мир, который дышал. В UO не было подсвеченных квестов — только огромный опасный мир и полная свобода, помноженная на хардкор.
Здесь вор мог обчистить твой карман прям у банка, пока ты выкладываешь вещи из сумки, а кузнец становился знаменит на весь сервер своим мастерством. Потеря вещей после смерти была реальной, а гильдии создавали не для галочки, а чтобы выжить. Установка первого виртуального дома ощущалась как покупка квартиры — ты выбирал полянку и чувствовал себя частью этого мира по-настоящему.
Турнир
На «Горбатой горе» пахло потом, пиксельной кровью и предвкушением. Сервер «UO: Fogotten Lands» готовился к событию месяца — Ежемесячному Турниру рандомных команд. В локальном чате было не протолкнуться от криков «ну когда уже?», «кто даст регов?» и привычного «ГЗ, ГЗ, ГЗ!».
Наша команда, «Бычьи члены», прибыла в полном составе: я (Плут с максимальным уворотом), Dipsy (танк-воин, который говорил только капсом и которого все звали Зогом за манеру речи), Hamster (жрец, лечивший даже тогда, когда лечить было нечего) и Devastator (маг, вечно ворчавший на лаги). Мы пришли побеждать. Или хотя бы эффектно умереть в финале.
— Главное, не обостритесь в загоне для смертников — напутствовал нас Devastator.
— ОК — коротко ответил Dipsy. Коротко и емко, как всегда.
Нас телепортнуло на мост, ведущий к огромной арене. Администратор события, известный под ником *Lord Greg*, стоял у ворот, похожий на статую в своих золотых доспехах. Мы прошли внутрь загона — большой квадратной клетки, где уже толпилось человек сорок. Все стояли смирно, как овечки перед стрижкой, ожидая, когда Грег начнет распределять их по цветным командам, перетаскивая из общего загона в загоны поменьше, под каждую команду свой загон.
— Ща нас рандомно перекидает — сказал я, поправляя свой разбойничий плащ.
И тут мы заметили это.
Ждем. Пять минут. Десять. Грег возится с настройками, даже не смотрит в нашу сторону.
— СКУКА— буркнул Dipsy. — ДАЙТЕ КОГО-НИБУДЬ ТКНУТЬ.
— Не дёргайся — сказал Hamster. — Тут ГЗ. Гварды придут — и намотают твои кишки на пики.
Dipsy вздохнул. Нажал на TAB и переключился в боевую стойку. В такой стойке начал бегать по квадрату и строить из себя дерзкого парня, который на всех нарывается. Но рука его дернулась и он просто ткнул ближайшего — какого-то афк, который стоял с открытым ртом. Да же не по приколу, а чисто случайно.
Лучник даже не шевельнулся.
И тут цвет ника Dipsy поменялся. С голубого на серый.
— Ой — сказал Dipsy.
— Ой, блять — сказал я. — Ты чё творишь?!
— Я НЕ ХОТЕЛ! ОН ПРОСТО СТОЯЛ…
— Он афк, придурок! Теперь ты преступник! Серый!
Hamster заржал:
— Ну всё, Зог, теперь ты вне закона. Любой может тебя мочить без последствий.
— Да пофиг — отмахнулся Dipsy, но видно было, что он очкует.
И тут, чисто по приколу — раз уж он всё равно покрасился, исключительно чтобы поржать.
Я написал в локальный чат:
«GUARDS!!!! ГВАРДЫ! ПРЕСТУПНИК В ЗАГОНЕ!»
Ничего не произошло.
Я ещё раз:
«GUARDS!!!»
Тишина.
Hamster глянул на статус и присвистнул:
— Блядь. Тут ГЗ-то нет.
— В смысле? — не понял Devastator.
— В прямом. Гвардзоны нет. Админ забыл включить защиту.
Мы переглянулись.
— То есть… — медленно сказал я.
— Да — кивнул Hamster. — Dipsy только что ткнул человека в зоне, где гвардов нет. Поэтому никто не пришел. И он покрасился просто так. По факту.
— По факту он преступник — усмехнулся Devastator. — Но гвардов нет.
— А значит, мы можем…
— Можем — закончил я.
Повисла пауза. Мы посмотрели на толпу. Половина афк — чай пьют, курят, в макросах зависли. Другие просто лохи в дорогом шмоте. И никого, кто бы мог защитить.
— КОМАНДА, РАБОТАЕМ! — заорал Dipsy.
Первые минуты были настоящей мясорубкой. Активные игроки, поняв, что происходит, попытались дать отпор. Кто-то кричал в чат «соберитесь, они нас режут!», кто-то пытался сбежать, кто-то просто тыкал куда попало в надежде зацепить хоть кого-то.
Но «Бычьи члены» были командой. Команда против толпы.
Dipsy держал фронт, собирая на себя основные удары. Его броня трещала, но Hamster не давал ей развалиться окончательно. Я резал спины лучникам и магам, которые пытались атаковать Dipsy с дистанции. Devastator контролировал периметр.
— СЛЕВА ТРОЕ! — крикнул Dipsy.
— Вижу — отозвался Devastator, и через секунду трое неудачников превратились в головешки.
— Сзади лучник! — это я.
— Занялась — кивнул Hamster, на секунду отвлекшись от хилов и влепив посохом по шлему подкравшегося стрелка.
Мы работали как единый организм. Каждый знал свое место, каждый прикрывал спину товарища. Сыгранность, отточенная годами рейдов и замесов, сейчас давала плоды.
Постепенно активных игроков становилось меньше. Кто-то пал в бою, кто-то успел сбежать, кто-то просто забился в угол и молился, чтобы его не заметили. Но мы не оставляли шансов. Зачищали загон методично, как хирурги.
— ЕЩЕ ОДИН! — Dipsy указал мечом на воина в красном плаще, который пытался спрятаться за спинами афк-персонажей.
— Добиваем — скомандовал я.
Воин сопротивлялся отчаянно. Он был явно не новичок — уворачивался, контратаковал, даже успел снять Dipsy треть здоровья, пока Hamster подбегал. Но против четверки у него не было шансов.
— Суки… — написал он перед смертью. — Ненавижу…
— Взаимно — усмехнулся Devastator и добил его последним файрболом.
В самом центре свары, прижатый спиной к стене загона, отбивался какой-то лучник. Он явно только недавно начал играть — держал лук неправильно, отбегал не в ту сторону и постоянно путался в собственных ногах. Над его головой мигала красная полоска здоровья — осталось меньше четверти.
И тут в локальном чате вспыхнуло:
«GUARDS!!!!»
Я аж хрюкнул от неожиданности.
— Ты чего ржешь? — крикнул Hamster, влепив очередной хил в Dipsy.
— Смотри в чат — ответил я, еле сдерживаясь.
Лучник тем временем продолжал отчаянно долбить по клавишам:
«GUARDS!!! GUARDS! STRAT!! ПОМОГИТЕ!!»
— Дурик — усмехнулся Devastator, даже не оборачиваясь. — Это тебе не город. Тут ПВП зона.
Лучник, видимо, только что осознал этот факт. Потому что следующее сообщение было полным отчаяния:
«А КАК ТУТ ВЫЗВАТЬ ПОМОЩЬ???»
Dipsy, который как раз добивал его собрата слева, на секунду отвлекся и написал в ответ:
— НИКАК. ТЫ ТРУП.
И добил.
Лучник рухнул лицом в грязь, так и не поняв, почему в этой игре никто не приходит на помощь, когда кричишь «GUARDS».
— НУБ — вынес вердикт Dipsy и переключился на следующую жертву.
Когда бой стих, мы огляделись. Загон напоминал поле битвы. Трупы лежали штабелями, лутом была усыпана вся земля. В локальном чате стояла гробовая тишина — все, кто мог писать, либо умерли, либо сбежали.
И посреди этого апокалипсиса, как незыблемые скалы, стояли ОНИ.
Афк-персонажи.
Лучник с открытым ртом. *Sir Sleeps-a-Lot* в крутом сете. Маг в дорогущих робах. Десятки полусонных душ, которые даже не подозревали, что только что разыгрался апокалипсис, а они стали его единственными выжившими.
— Ну что, — выдохнул я, обводя взглядом это стадо. — Пир начнется?
— ПИР НАЧНЕТСЯ — кивнул Dipsy, вытирая меч о труп последнего активного.
— Только быстро — поторопил Devastator. — Админ когда-нибудь да закончит свои настройки.
— Работаем — скомандовал Hamster, и в его голосе впервые за вечер прорезались командирские нотки.
И началось.
Мы просто убивали. Подходили к очередному сонному воину, били, ждали, пока упадет, подбирали лут. *Sir Sleeps-a-Lot* рухнул первым, щедро одарив нас полным своим сетом. Маг в дорогих робах даже не проснулся, когда Devastator снял с него скальп. Лучник просто замер в своей позе и упал лицом вниз, даже не пикнув.
— Это как собирать грибы — хихикал Hamster, набивая карманы шмотом. — Грибы не сопротивляются.
Мы раздевали их догола. Каждого. Складывали лут в кучу, сортировали, телепортировались на мост к сундуку и возвращались за новой порцией. Руны работали как часы.
— ЭТО ЛУЧШЕ, ЧЕМ ТУРНИР — признал Dipsy. — НА ТУРНИРЕ НАДО ДРАТЬСЯ. А ТУТ ПРОСТО СБОР УРОЖАЯ.
Мы работали. Минут десять, Пятнадцать. Загон постепенно пустел. Афк-персонажи таяли на глазах, оставляя после себя горы лута.
И тут Dipsy замешкался.
— СМОТРИТЕ — Dipsy указывал пальцем в сторону.
Мы посмотрели. В самом углу загона стоял танк в полном валоритовом сете, я такой в живую даже не разу не видел, только на рынке у продавцов. Ник — *Iron Giant*. Он стоял ровно, не шевелился. Типичный афк. Dipsy замахнулся мечом.
И в этот момент танк дернулся.
— Э? Че тут происходит? — написал он в локальный чат.
— ОН В ИГРЕ! — заорал Devastator.
Но было поздно. Dipsy уже врубился в него по полной. *Iron Giant* попытался защищаться, он был сильным игроком, опытным. Но против сыгранной четверки, которая только что зачистила полный загон, у него не было ни единого шанса.
*Iron Giant* продержался минуту или две. Целую минуту против четырех мазафакеров. Он даже почти успел убить двоих из нас, но Hamster был начеку и быстро подлечил.
— ДА СДОХНИ ТЫ УЖЕ! — орал Dipsy на весь зал.
*Iron Giant* сдох. Его легендарный сет лежал на земле. Dipsy нагнулся.
И в этот момент я краем глаза вижу, как Персонаж админа начинает шевелиться.
— Порталимся! — заорал я.
Мы втроем — я, Hamster и Devastator — судорожно начали жать на руну. Сияние, телепорт, мост. Безопасность.
— Dipsy? я тебя не вижу на мосту — спросил Hamster.
Тишина.
Мы обернулись. В загоне для ожидания, среди десятков голых трупов, стоял *Lord Greg* в сверкающих доспехах. А рядом с ним, склонившись над легендарным лутом, застыл Dipsy.
— DIPSY! ТЫ ЧЕГО? — крикнул Devastator.
— Я… — он обернулся с лицом , полный боли. — Я ЛУТ ПОДНИМАЛ… ТАМ ЩИТ… И МЕЧ… Я ХОТЕЛ СНАЧАЛА САПОГИ, ПОТОМ КАСКУ… А ОН ПОДОШЕЛ.
*Lord Greg* что-то напечатал в воздухе. Dipsy исчез.
— В тюрьму ушел — вздохнул Devastator. — Надолго.
— Ничего — сказал я, пересчитывая лут в сундуке. — Отсидит. У него теперь будет время подумать о жадности.
Мастер переговоров
На турнир мы в тот день не попали. Но когда мы стояли на мосту и смотрели, как админ в ручном режиме разбирается с толпой голых, матерящихся игроков, которые только что вернулись к компам и обнаружили, что от их персонажей остались одни трусы, «Бычьи члены» поняли: это было лучше любого турнира.
А где-то в тюремной камере, на голом полу, сидел Dipsy и смотрел на потолок.
— ОНО ТОГО СТОИЛО? — спросил он сам себя.
Картинка моргнула, и Dipsy понял, что тюрьмы больше нет.
Вокруг него были каменные стены, грубо отесанные, с факелами в железных держателях. Тяжелая дубовая мебель, шкура медведя на полу, стрельчатое окно, за которым чернело ночное небо. У камина, в резном кресле с высокой спинкой, сидел Lord Greg.
Без золотых доспехов. В простой льняной рубахе и кожаных штанах. В руке — кубок с чем-то горячим. Он смотрел на Dipsy поверх огня, и взгляд у него был тяжелый, как та самая каменная кладка.
— И это… — Lord Greg сделал паузу, отхлебнул из кубка. — …сейчас че такое, еб твою мать, было?
Dipsy молчал. Сидел на полу, смотрел в пол. Было тихо — только дрова трещали в камине да ветер выл за окном.
Greg поставил кубок на стол и наклонился вперед.
— Я спрашиваю. Чё. Это. Было.
— НУ… — начал Dipsy.
— Без «ну» — перебил Greg. — Я полчаса настройки ивента городил. Там регистрация, там распределение, там баланс команд… А когда я вышел из меню — там ПИЗДЕЦ. Трупы по всему загону. Все голые. Афк-персонажи ограблены до трусов.
Dipsy молчал.
— Ты понимаешь, что я теперь должен делать? — Greg встал и начал ходить по комнате. — там целая толпа разгневанных игроков требует вернуть шмот и дать компенсацию, там люди час ждали турнир! Кто-то регистрировался, кто-то готовился… А теперь я должен им объяснять, что ваш цирк уничтожил их ивент?
— ТАК ПОЛУЧИЛОСЬ…
— ПОЛУЧИЛОСЬ? — Greg остановился. — Вы, блять, всех раздели!!! 40 персонажей. — СОРОК!!!.
— Двадцать… примерно… даже чуть меньше — поправил Dipsi, тоненьким голосом. — Мы не со всех лут собирали, только дорогой.
Он подошел к столу, налил себе еще горячего и сел.
— Я знаю, что вас было четверо. — сказал он спокойнее. — Я видел, как твои сообщники сделали телепорт в последний момент.
Dipsy молчал.
— Так вот — продолжил Greg. — Ты будешь рубить дрова на лесоповале, 100 000 единиц.
- СТО ТЫСЯЧ??? это же не меньше месяца по несколько часов в день - завопил Dipsy
— Сто тысяч поленьев. Срубишь — выйдешь. Если сдашь друзей — срок делится на четверых. Каждый по двадцать пять. А если нет — рубишь всё сам.
Dipsy посмотрел на бревна, потом на Грега. В глазах мелькнула паника.
— МОЖНО МНЕ ПОДУМАТЬ? — спросил он.
— Думай, — кивнул Greg. — Я подожду.
МИ ВОЛКИ!
Мы стояли на мосту, пересчитывали лут и переглядывались.
— Дипси в тюрьме, — сказал я.
— Надолго? — спросил Hamster.
— Хуй знает. Судя по лицу Грега — надолго.
Мы заныкали лут по сундукам и залегли на дно.
Видя что Дипси переписывается с админом решили подойти к нему и узнать как у него дела.
— Дипс — сказал я. — Ты как там?
— НОРМ — ответил он. — ОТСИЖУ.
— Ты же не сдашь нас? — спросил Hamster.
Dipsy обернулся, посмотрел на нас. Глаза серьезные. Без улыбки.
— НИКОГДА — сказал он. — БРАТ ЗА БРАТА — ТАКОЕ ЗА ОСНОВУ ВЗЯТО. ВЫ ЖЕ МОИ ДРУЗЬЯ, БЛЯТЬ. МЫ С ПЕРВОГО КЛАССА ВМЕСТЕ. Я ЛУЧШЕ СГИНУ В ТЮРЬМЕ, ЧЕМ ПРЕДАМ.
Мы переглянулись. Тепло стало на душе.
— Молодец — сказал Devastator. — Настоящий мужик.
— Мы тебя вытащим — пообещал я. — Еще не знаю как, но вытащим. Слышишь?
— СЛЫШУ— кивнул Dipsy.
Мы хлопнули его по плечу и сели за свои компы. Каждый начал заниматься своими делами. Я ещё подумал: «Вот это друзья. Вот это команда. Никогда не предадим друг друга!».
Через десять минут: Темнота. Потом моргнул свет.
Я стою в одном халате. Босой. В руках — ржавый топор. Вокруг — лесоповал. Десятки пеньков.
Справа — Hamster. Тоже в халате. Смотрит на топор с недоумением.
Слева — Devastator. В халате. Топор в руке. Глаза бешеные.
Мы переглянулись.
И тут из леса выходит Dipsy. Тоже в халате. Топором машет. Улыбается.
— ЗДАРОВА, ПАРНИ!!!=)
24.09.1997 — Релиз Ultima Online [вехи_истории]
Ultima Online стала первой по-настоящему массовой многопользовательской онлайн-игрой (MMORPG), изменившей представление о виртуальных мирах. Она была частью культовой серии Ultima, созданной Ричардом Гэрриотом (Lord British).
Главные факты о игре:
🔹 Первая масштабная MMORPG — Ultima Online предложила открытый мир, где игроки могли жить полноценной виртуальной жизнью: сражаться, строить дома, торговать, объединяться в гильдии.
🔹 Игровая экономика — система торговли и крафта во многом предвосхитила современные онлайн-игры. Многие игроки впервые зарабатывали реальные деньги, продавая внутриигровые предметы.
🔹 Свобода действий — в отличие от более линейных игр, UO позволяла игрокам быть кем угодно: воином, кузнецом, алхимиком или даже вором.
🔹 Исторические события — в игре происходили события, организованные разработчиками (например, нападение монстров на города), и многие из них стали легендарными.
🔹 Массовость — к 1999 году в Ultima Online было более 200 000 подписчиков, что стало прорывом для того времени.
🌍 Игра задала стандарты жанра MMORPG, повлияв на такие проекты, как EverQuest, Lineage, World of Warcraft и многие другие. Даже спустя десятилетия UO продолжает жить — фанатские серверы работают до сих пор.
⸻
❓ Помните такую игру? Может быть даже играли?
Админим сервер Ultima Online 14 лет — заключительная часть лонга
Продолжение эпоса по разработке эмулятора старой мморпг. Первые три части по ссылкам ниже, если вы пропустили.
Первая часть
Вторая часть
Третья часть
Четвертая часть
2024 год – Пираты получили по заслугам
Год, в котором принимать пожертвования стало максимально сложно. Хотя тенденция ясно проглядывалась с 2014, как всегда очевидные вещи становятся достаточно неожиданными. Происходит так, потому что всегда думаешь - ну вроде бы это все, хуже уже быть не может.
Если брать относительно того, в каких условиях мы начинали, т.е. - возможность принимать донат сотней разных вариантов, каждый из которых был удобен и для нас, и для пользователей, то сейчас мы оказались в ситуации, когда 70% наших игроков могут использовать платежи только через крипту. В которою, разумеется, никто не может, несмотря на отснятое видео-faq. А остальные 30% за каждую 1000 рублей переплачивают 150-200 в зависимости от способа. А потом переплачиваем мы, проходя квесты с комиссиями и лимитами на вывод через сервисы, и все чаще еще и P2P, чтобы иметь возможность что-то на эти деньги оплатить. Таким образом, если раньше можно было купить условную краску в два клика за две минуты с пластиковый карты ничего не переплачивая, то сейчас проще не заморачиваться, обойдясь без нее.
Когда пытаешься задонатить любимому серверу в новой реальности.
Наверняка многих интересует вопрос - сколько денег все это приносит. Если смотреть на протяжении всех лет, то сумма исчисляется несколькими миллионами рублей. Точно никто и никогда не считал, но больше 3 и, вероятно, меньше 5. Если потные ручонки уже стали потирать сами себя - стоит помнить о сроках. Используя простую математику, станет понятно, что все достаточно грустно, особенно учитывая расходы. Второй вопрос, который может возникнуть - если люди тратят деньги, почему они играют у нас, а не на официальном сервере? Так вы просто сравните!
Наши баги: ИИ забывал, что моб умер, и продолжал двигать трупом и драться. А как-то, дав способность слаймам (живые лужицы) объединяться в слаймы побольше сливаясь друг с другом, мы забыли поставить лимит таких слияний. В какой-то момент, получался гигачад-слайм, который убивал всех с одного взгляда в сторону игрока, и после продолжал поглощать сородичей, ведь этим сервером может править только один. Кроме того, однажды, введя новый данж с механикой "волн" мы замедляли сервер до состояния картошки, после чего он падал. Дело было в том, что из-за несовершенства системы поиска пути мобы застревали в определенных местах, а сзади уже шли новые волны, застревая об застрявших. В какой-то момент количество мобов исчислялось тысячами на клочке земли в пару метров с закономерным итогом. Деление на ноль (в буквальном смысле), для моба, с интеллектом 0 при касте заклинаний? Да ради бога.
Типичная работа нашего железа при 100% нагрузке на все узлы из-за багов.
Один раз мы даже превратили нашего бота-стримера, о котором шла речь выше, в снеговика. С точки зрения механики, наша "камера" представляла собой просто невидимого человека с прозрачным телом, только с правами доступа выше плеера. Но в нашего новогоднего рейд-босса проверку по уровням доступа добавить забыли. Поэтому, в какой-то момент, босс, следуя своим механикам боя превратил нашу камеру в снеговика, а потом еще и выбил из инвиза. Было и такое, что игрокам при входе на ивент удаляло все вещи, включая рюкзак персонажа. Это важно, потому что персонаж создается с рюкзаком, и избавиться от него никаким образом невозможно, физически это даже не предмет.
Или - в Ультиме у предметов есть прочность, и предметы ломаются со временем. Булава ломает предметы сильнее другого оружия. Одним осенним днем у людей, находящихся в сейф-зоне (невозможно нанести дамаг), стали пропадать предметы. Как вы уже, наверное, могли догадаться несмотря на то, что дамаг не считался как таковой, скрипт обсчета количества повреждений работал исправно, причем только для булавы. Так, один находчивый парень за пару часов отлупил оным способом пол сервера, сделав всех оборванцами. А происходило так потому, что стоял он за пределами безопасной зоны атакуя тех, кто находился внутри нее. Хитпоинты не списывались, а вот прочность - да.
С обсчетами дамага у нас вообще все всегда было замечательно, и добавив как-то на Хэллоуин все в ту же безопасную зону предмет, который вызывал кровотечение у игрока, мы не особо рассчитывали на то, что люди будут убегать с ним (кровотечением) за ее пределы. А скрипт уже было не остановить, поэтому люди массово умирали от кровотечения в разных уголках мира без возможности его снять. Праздник удался. А рассказывать про отбрасывающие персонажа назад на пару шагов кусты - какой в этом в смысл?
Теперь баги официалов: скучные дюпы вещей, за которые потом банили пол сервера, когда люди просто покупали вещи с вендоров без возможности понять, что это нелегальная вещь. Скучные визуальные дюпы золота, когда при высоком пинге показывает предметы, которых на самом деле нет. Стирание всех макросов игрока, при использовании определенного предмета и релога в игру. Рассинхроны с сервером, когда невозможно зайти в игру по несколько минут после дисконнекта. Откат на неделю? Легко. Понимаете, насколько ошибки произведение искусства у нас, и насколько все скучно на официальных серверах?
Конечно, возможно дело в высокой цене, сложностях с оплатой, неиграбельном пинге. Может, в двух десятках пустых серверов кроме одного с отсутствием локализации и сбитым прайм-таймом, но лично я считаю, что дело именно в описанном выше. Так что, за всех говорить не буду, но у нашей пиратки еще точно есть козыри в рукаве, пусть и достаточно странные. А еще горячая новость, которую все уже успели обсудить - в России заблокировали Discord. Наш канал не так давно перевалил отметку в 1000 пользователей, к которой шел добрый пяток лет, так что, будем считать, отметили с помпой. Настало время расконсервировать телегу и "Here we go again".
Вообще же, говоря объективно - социальные сети наша ахиллесова пята. У нас никогда не было человека, который вел бы их и работал с комьюнити полноценно, а не постил несколько раз в год сухие новости обновлений. Считаю это огромным минусом, который будь исправлен, сильно бы нам помогал держаться на плаву. С другой стороны, в отличии от Ахиллеса уязвимых пяток у нас две, и вторая тесно завязана на рекламе. Когда вы думаете, что лажаете, настраивая свою рекламную компанию или расстраиваетесь по поводу несработавшей промо-акции, просто помните о том, что всегда есть дно, а за ним мы. Таким образом, набирая свою дрим-тим, помните о двух действительно главных людях, которые должны у вас быть. Вы же не хотите писать потом бесконечный лонг-рид, описывая свои ошибки?
Послесловие
Такая вот вышла история, на добрые 110к символов из двух частей. Что касается лично меня, в плане времязатрат было тяжело, потому что либо ты работаешь на убой в прямом смысле этого слова и зарабатываешь с сервера и хорошо, либо начинает страдать качество твоей работы со всеми вытекающими. Были времена, когда в месяц чистыми оставалось тысяч 120, а по текущим ценам это 250, но радости не было совершенно никакой. Если кто собирается повторить аналогичный путь, и по наивности считает, что, ничего не делая он будет зарабатывать - так не будет. Это такая же работа, как и все остальные, с ненормированным графиком бонусом, так что, либо впахиваете и деньги, либо отдыхаете без них.
Но были и плюсы - только благодаря серверу я для себя понял необходимость делегирования полномочий, даже когда будет не так хорошо, как когда делаешь сам. Научился в полной мере говорить нет, обрел терпение и спокойствие буддистов (хотя и до этого считал, что максимально спокоен, но все познается в сравнении) и стал злее одновременно.
Твое настроение, когда описываешь плюсы в послесловии.
Оброс целой кучей знакомств разной степени полезности, и той же степени полезности навыков. Когда захотите построить баню, поднять кластер виртуализации, постричь собаку, вывести спутник на орбиту или сделать пром. дизайн для упаковки конфет - оставайтесь на линии, если не сделаю это сам, точно знаю людей, которые вам нужны. Получил супер-способности - писать огромные тексты с кучей воды в которой плавают запятые, которые дочитывают до конца, крепко спать после фильмов ужасов, иметь телефон с круглосуточно выключенным вибро и звуком на все от звонков до уведомлений.
Уже нет запала и настроя, а есть много выгорания - все сложнее заставлять себя включать дискорд хоть раз 10 в год, и публиковать новости и рассылки. Все меньше становится обновлений и ответов на тикеты, хотя они все еще есть. Конечно, вложи мы столько сил, труда и боли в какую-то более популярную игру, а не в ту, о которой никто не слышал, сейчас бы уже жили на проценты со счетов, но сердцу не прикажешь. Повторил бы снова? Сначала нужно крутануть волчок, и посмотреть, упадет он или нет.
А вот взгляд того самого программиста из первой части, который давно уже стал полноправным админом для шарда и другом для меня (далее его текст написанный для этого лонга):
"Возникал ли у вас когда-нибудь вопрос к себе – зачем я вообще этим занимаюсь? У меня вот - примерно каждый день. Однако, оглядываясь назад на эти 110к символов истории успешного антиуспеха, я все-таки понимаю и тешу себя мыслью, что потраченного времени не жаль и мы все же привнесли в этот мир что-то хорошее и подарили людям хоть сколько-то приятных впечатлений. Как уже было сказано выше, жалею ли я о потраченном времени и силах – нет. Повторил бы я это снова, если бы вернулся в прошлое – почему нет? Как минимум это был опыт, пускай и сомнительный с точки зрения конвертации в деньги, как максимум – я купил себе компьютер. Так что, занимайтесь тем, что вам нравится, даже если это кажется полной фигней и бессмыслицей. Что-то точно получится, а бросить на полпути и ничего не добиться в итоге – соевые мувы. Но все же выбирайте игру помоложе, хотя бы из нашего века, я серьезно."
Что же касается сервера - скоро 2025, и наверняка хоть в каком виде, но мы дотянем до своего 15 летия, возможно - с парой человек, но постоянного онлайна и просто принципиально. Конечно, есть ощущение, что все это движется в закат и объективно говоря, когда этот день наступит - пожалуй будет только чувство облегчения. У нас уже давно нет никаких целей по бусту онлайна просто потому, что он и раньше был слабо возможен для игры, которой буквально десятки лет, а в текущей ситуации невозможен вовсе (сыны депутатов предательски все не начинают играть у нас).
Давно нет никакого азарта ни с кем соревноваться, потому что мы уже доказали все, что должны были - мы были в тройке крупнейших серверов в мире и единственными из российских серверов кто смог, первыми по живому онлайну в РФ, первыми в мире вводили вещи, которых не было ни у кого, и ближе всех подобрались к офф. серверам.
Сможем ли мы еще удивить? Хочется написать - скорее всего уже нет, но вся наша история говорит об обратном. Мы как свет звезд - сами давно мертвы и из ушедшей эпохи, но все еще летим сквозь интернет-вселенную, просто потому что, так все устроено.
Админим сервер Ultima Online 14 лет — четвертая часть лонга
Продолжение эпоса по разработке эмулятора старой мморпг. Первые три части по ссылкам ниже, если вы пропустили.
Первая часть
Вторая часть
Третья часть
2020 год – No pain, no gain
Итак, о непопулярных решениях, и о том, что привело к ситуации, при которой в принципе появилась необходимость в них. В начале нашего становления, как вы уже знаете, мы сильно отставали от официального сервера. И в какой-то момент показалась правильной следующая схема - мы не вводим какой-то кусок с т.н. офа, но вводим вещи с него. Выглядело это следующим образом: к примеру, у официалов выходит квест или ивент, за прохождение коих дается награда - предметы, свитки, маунты и иже с ним. Т.к. изначально мы отставали очень сильно по обновлениям, было решено сокращать отрыв, вводя новые предметы просто за какую-либо из ингейм валют (кроме доната). Это казалось логичным на тот момент, хотя легкое осознание возможных грядущих проблем прослеживалось уже тогда, но с мыслью "да когда они наступят, эти проблемы, никто не держит сервера по 10 лет в здравом уме" мы делали так из года в год.
Проблема заключалась в том, что на офе у людей уходило много времени и сил для получения предмета, который мог быть редким или мог быть получен в какой-то ограниченный срок ограниченным числом игроков. У нас же и по факту предмет был доступен всем, кто просто пофармит мобов и набьет нужное количество золота. Что создавало ситуации, когда вроде бы редкие ценные предметы в оригинале постепенно становились мусором у нас. Вот еще пример, уже более вопиющий - из-за неравномерной установки обновлений до определенного года, о чем было рассказано в предыдущей части, на сервере происходили перекосы по балансу, которые затыкались иногда просто свитками, дающими определенный бонус для оружия "угнетенного" класса. С точки зрения быстрой подгонки игры под текущие реалии оригинала с минимумом времязатрат — это работало.
Однако толком никто не думал, а что будет, когда баланс подтянется до необходимого через обновления, а свитки и оружие с бонусами останутся, создавая искусственный перекос уже в другую сторону. Так что на протяжении года подтягиваем все проблемные места сервера через боль и страдания оставшихся игроков до нормального состояния, в котором они должны были быть, если бы у нас к тому моменту было десятилетие опыта или же банально больше мозгов в моменте творения этой дичи. Все немыслимые непопулярные, но необходимые решения, которые копились как снежный ком год от года и на которые не хватало духа с высоким онлайном принимались с низким.
Этот год был во истину шоковым в полном понимании этого слова, потому что количество правок оружия, брони, крафта и всего, что уже было на руках у людей, было запредельным. Представьте, что вы ложитесь спать с хорошим луком из лута и в замечательных штанишках с крафта, а просыпаетесь с посредственным арбалетом в руках и в так себе ботинках, а ваш конь стал ламой, а еще с него сняли рарный цвет.
Когда еще вчера был в сияющих латах, а проснулся взъерошенным котенком.
А теперь представьте, что вы тратили на это время, а иногда и Время (с большой буквы). Конечно, мы компенсировали игрокам все неудобства, прекрасно осознавая, какой это фиговый экспириенс и подрыв доверия. Тем не менее, время и настроение мы компенсировать не могли, но всегда давали что-то взамен забираемого и немного сверху.
Однако, резали мы по живому и жестко, а игроки расплачивались за наши ошибки. К этому добавился систематический накат обновлений, чтобы не просто переделывать и отбирать, а делать так, как должно было бы быть изначально. Ивент — значит ивент. Квест — значит квест, больше никакой халявы. И все вышеописанное без учета правок баланса скиллов, которые тоже были. К примеру, правка и пересчеты системы оверкаста. Оверкаст — это штраф ко времени каста заклинания, в том случае, если между соседними кастами прошло очень мало времени. Условно - штраф за зажимание кнопки и спам спеллами.
Данная система ни на каких официальных ресурсах подробно описана не была, о ней было лишь несколько упоминаний за десяток лет от игроков. То, как мы это правили у нас, и выясняли все тайны этой чудесной приблуды тянет на отдельный лонг. Если коротко - писали десятки скриптов и делали сотни замеров на офе с огромной выборкой, доходившей до тысяч повторов, учитывали поправку на пинг и качество соединения, считали среднее время кастов, медианное, считали все до сотых миллисекунд, когда сервер работал без оверкаста и когда включал его. Могу лишь сказать, что ни на одном шарде и на ни одном из существующих эмуляторов оверкаст либо работает неправильно, либо не работает вообще. Вот такая вот не задокументированная фича, после которой вслед за всеми остальными, еще "убили" и магов в том виде, в каком они существовали у нас десяток лет.
В какой-то момент мы даже провели голосование, подлив еще больше масла в огонь - хотят ли игроки вайпнуть сервер на 10 лет? С небольшим перевесом победило - нет, не хотим. Уровень активности в нашем дискорд-канале в ту неделю больше походил на предвыборные дебаты кандидатов в президенты, где каждая из сторон была максимально убедительна, чтобы склонить чашу колеблющихся избирателей на свою сторону. А еще, на одной из двух главных городских площадей игры проходили демонстрации, где люди круглосуточно спамили сообщениями - за вайп, или против него. А заодно и за все, что приходило в голову, вроде замены кабачковой икры на полках магазинов на баклажанную.
При всем при этом, под стук сходящего с рельс поезда и вылетающих из окон пассажиров, мы продолжали самоотверженно и упрямо заниматься новаторством - вводим первую в мире среди серверов UO систему переключения языка игры на лету, без выхода из игры (на официальном сервере до сих пор до такого не дошли). Русского языка никогда в игре не было. Мы отчасти это победили в два захода - первый был за несколько лет до, и состоял в прямой локализации языкового файла игры. И уже в 2020 стало возможно перевести все сообщения, окна, вспомогательную информацию, уведомления, ряд квестов на русский уже на стороне сервера, что с нашей точки зрения делает игру для сородичей более приятной и понятной, хотя бы с визуальной точки зрения. И хоть немного более современной.
И на этом месте можно сделать небольшое отступление, по поводу "ввели первые", что иногда проскакивает и в первой части лонга. В определенный момент начинаешь понимать игру, какой ее задумывали, и многие вещи мы ввели вперед официалов просто потому, что они логичны и напрашивались сами собой. Так, вперед офа у нас появилась валюта платина, система дейлик-квестов, морфы предметов, ачивки, половина магазина пожертвований и еще много-много разного рода мелочей. Как шутит наш программист - "если у нас есть что-то, чего у них нет, значит, скоро они это введут". И действительно - введут, в этом нет никаких сомнений. Так что, иногда догоняешь ты, а иногда догоняют тебя.
2021 год – Новые горизонты
Наконец-то полностью доделали оригинальный 3D клиент до состояния, в котором он работает так же, как и на офф. серверах. До такой степени работоспособности его не доводил никто и нигде, потому что дураков, кроме нас, очевидно не нашлось. Крови он попил до неприличия много и сожрал денег, которых хватило бы на еще один сервер (зато мы научились снимать шифрование с оригинального клиента на лету и патчить IP своего сервера - еще одна ачивка на полку бесполезных достижений). Однако, теперь наш шард поддерживал оба официальных клиента - классический (2D изометрия), и с 3D графикой аля Warcraft 3.
В теории, это должно было расширить аудиторию за счет более молодой, но т.к. в Ультиме уже давно нет никакой аудитории, расширило это только наши задницы, с учетом всех времязатрат. Кроме этого, мы написали и прикрутили кастомный AI для мобов (эффекты, абилки, визуал), потому что в оригинале это просто рядовые куклы для битья, а хотелось немного разнообразить процесс убийства, чтобы мир выглядел более живым и непредсказуемым, а мобы имели индивидуальность кроме различий по графике. "Здорово!" - скажите вы, и вы будете правы. Настолько здорово, что в этом году мы принимаем решение отключить прием пожертвований на год и поддержку игроков (т.е. на тикеты больше никто не отвечает), сообщив об этом за несколько месяцев.
Игроки, ждущие ответа на свои тикеты.
Донат был отключен потому, что с учетом всего описанного за предыдущий год, а также того, что мы продолжали делать уже в этом, деньги брать было просто стыдно. Мы просто стерли половину игры и выстроили все заново, при этом никто не спрашивал игроков, хотят ли они этого или нет. Просто так было нужно (с). Однако, мы ввели конвертацию ингейм PvP-валюты в донат валюту, так что люди по-прежнему могли получать предметы из магазина пожертвований, но уже не за деньги, а за свою активность. Поддержку отключили для того, чтобы сосредоточиться на нужной работе, потому как править старые баги смысла не имело, когда все системы переписывались практически полностью по новой.
Таким образом, мы попали в парадоксальную ситуацию - сервер становился лучше и был без двух минут в идеальном и вылизанном техническом состоянии, онлайна уже почти не было, а денег просто не было, без "почти". Все было настолько грустно, что это был первый и единственный год, в который не было страшно делать рассылки на почту по зарегистрированным у нас на форуме пользователям, с новостями сервера. Какая тут связь? Это уже очень и очень давно является внутренним мемом, и, пожалуй, единственная вещь, которая заставляет меня верить в теорию о том, что все мы живем в матрице.
Всего за все годы было около 50 рассылок, каждая из которых имеет формат - выпуск номер такой-то, и "бла-бла" нового. Так вот, не было ни одной (и это абсолютная правда) рассылки, в течении 1-3 дней после которой у нас бы что-то мажорно не ломалось, причем не обязательно сервер. Это мог быть сайт, проблемы в датацентре, неудачное обновление системы. Стоит оговориться, чтобы понимать - обычно все работает стабильно. Может пройти полгода безупречной стабильной работы, но стоит сделать рассылку - и все. Дошло до того, что мы уже стали делать рассылки отдельно от постов в наших соц. сетях или рекламы, чтобы не факапиться на всю аудиторию сразу. Админы я думаю помнят, как в 21 году сгорел один из датацентров OVH, где среди прочего была расположена VPS-ка с нашим сайтом. Так вот, простите нас за 34-й выпуск новостей.
Когда сервер снова упал после рассылки.
В порывах активности между фазами отчаяния и отчаяния побольше, ввели Discrod-бота, который подключен к шарду игры, и сообщает людям в канале о старте ивентов, убийствах в пвп, статусах и проблемах сервера. Делает он это не просто так, а отталкиваясь от ситуации, при которой произошло событие. К примеру, если вы убили кого-то кулаком или стрелой, вы получите вариации разных забавных сообщений. А если сервер падает один раз или несколько подряд — это тоже повод для фантазии. А донаты у нас сопровождаются видео с лапкой кота, в которую вставляют монетку под музыку Хава нагила. И переходя к самому главному, с точки улучшения нашей работы - мы ввели полноценный антикраш на уровне приложения. Раньше при мажорных ошибках логики сервер либо зависал (после чего мы весело разбирали дампы памяти и искали причину), либо перезагружался.
И хотя запускался он с того же момента (как правило) это негативно сказывалось на игровом процессе. Дисконнект, ломается динамика пвп, ломается взятие босса, кто-то поставил скиллы на прокачку и уехал на работу и т.д., в общем, очевидные вещи объяснять не нужно. С новой системой положить сервер стало практически невозможно, а все ошибки просто записываются в лог файл для последующего разбора.
Под конец года мы нашли в себе остатки сил, и провели для оставшихся 2.5 игроков наш классический ивент - можно написать письмо-пожелание деду Морозу, стоящему возле елки. Все делается из игры. Дед Мороз их прочтет, и так или иначе - желания сбудутся. Мы вручную составляем список подарков, вручную подписываем каждый мешочек, собираем подарки, отталкиваясь от пожеланий (от каких-то редких красок до просто смешных безделушек) и 30 декабря так же вручную летаем по миру и раздаем эти подарки людям, поднимая настроение. Времени и нервов на это уходит неприличное количество, и каждый год я задаю себе вопрос, совсем ли мы больные если повторяем это и снова, и снова, и снова… И в этом году один из старых и оставшихся игроков пожелал, чтобы все наконец-то наладилось и устаканилось, и сервер вернул себе было величие. Это было трогательно, настолько, что у нас созрел план. Ведь хороший дед Мороз должен уметь исполнять даже сложные пожелания.
2022 год - Феникс и 100000 часов в онлайне
Год богатый на события и решения. И год, в котором мы преодолели отметку в 100К часов онлайна с учетом всех даунтаймов. Можете себе представить? Вот и мы не можем. Тем не менее, именно столько по времени наш сервер уже коптил датацентры, квартиры и балконы, а по миру нашей микро-вселенной бегали человеки и занимались своими внутриигровыми делами. А мы в этот момент занимались делами в мире реальном, в котором начались всем известные события, потому что, очевидно, просто жить - слишком скучно.
Вся наша выстроенная годами и отлаженная инфраструктура пошла ко дну фактически одним днем. Французский хостинг OVH, на котором хостился наш сайт стал для нас недоступен. А заодно проксирование DNS на американском Amazon, бэкапы на немецком Hetzner, и даже непосредственно хостер наших доменных имен Namecheap сказал нам - до свидания, у вас есть неделя, а потом вплоть до разделегирования доменов. Следом пошел GoDaddy, на котором у нас висели резервные неиспользуемые домены, система мониторинга серверов Host-tracker и вишенкой на торте стала заморозка аккаунта PayPal через который мы принимали все пожертвования от иностранцев. А то, что осталось, уже не могло принимать оплату, потому как Visa и Mastercard тоже отлетели в прекрасное прошлое. В целом, я думаю, вы понимаете, в какой ситуации мы оказались.
Вкатываемся в февраль 22-го.
Забавно было то, что русских и украинцев у нас всегда играло примерно одинаковое количество, и в той же Одессе было даже какое-никакое комьюнити, но объяснять корпорациями всю глубину френдли-фаера возможным не представлялось. Пока мы делали что-то одно, отваливалось что-то другое. Засучив рукава удалось все разрулить без простоев, и незаметно для пользователей, но режим "жопа в мыле" был активирован на достаточно продолжительное время. И руководствуясь принципом "Сгорел сарай, гори и хата" решаемся на частичный вайп сервера. В принципе, к тому моменту мы метались между продолжать агонию или все закрыть. За продолжать - у нас еще играли люди, сервер был приведен в идеальное состояние. Против - ментально мы дошли до состояния хлебушков и могли только дышать и изредка моргать. Поэтому, как истинные самураи, на вопрос "закрываем или продолжаем" мы ответили классическое "Да". После чего встал вопрос, как начать с чистого листа, получить необходимую встряску, но при этом сохранить весь бэкграунд и историю за многие годы. Нужно было пересадить душу в обновленное тело, и вот к чему мы по итогу пришли.
Во-первых, сохранили все дома игроков (в UO они полностью кастомные и строятся самими людьми по вкусу и цвету) со всеми вещами в них, перенеся этот огромный массив строений в огромную локацию, названную музеем Первой эпохи. И не просто в виде лишь визуала и мертвой декорации. Вы могли зайти в свой дом, открыть любой ящик, и посмотреть на все, что было вами собрано за годы игры. Во-вторых, мы зарезервировали все имена персонажей и гильдий за аккаунтами, на которых они были исторически. Сами же аккаунты не удаляли, сохранив на них оригинальную дату создания и награды за геймтайм. В-третьих - сохранили все награды за ивенты, конкурсы и квесты за все годы. В нашем случае - уникально подписанные вещи, которые мы привязали к тем учетным записям, которыми предметы были получены ранее.
Далее - сконвертировали всю еще неиспользованную донат-валюту на аккаунтах в свитки расширения банка персонажа (всегда нужная и полезная опция), сохранив за игроками и сам персональный размер скидки на товары (у нас это накопительная система). Оставили и механику, которую делали как временную, при которой донат-валюту можно было получать за пвп-активность. Оставили по 1 костюму для маунта (изменение внешности), в том случае, если они были, но с локом использования - только через полгода. Наконец, каждый персонаж c нормальным геймтаймом и полной прокачкой скиллов-статов получил приписку "Ветеран" (ее видно сразу в игре), так же каждому персонажу кроме "одноразовых" был выдан именной предмет - "Осколок памяти" в котором были прописаны все его бывшие достижения до "перерождения" (стата персонажа за весь срок его жизни, включая полученные ранее ачивки).
В итоге получилось, что с одной стороны, люди начинали заново, а с другой у них была прочная связь со всем, что происходило ранее, включая памятные предметы, которые можно было надевать и носить. Плюс к этому, мы исправили абсолютно все, в чем ошибались по ходу жизни сервера, но исправить иначе уже не могли, даже не смотря на наш шоковый заплыв последних двух лет, в плане правок.
Как в реальности выглядят наши хотфиксы по ту сторону экрана.
И еще одним существенными изменением было то, что мы теперь строго не придерживались официального сервера. Раз вводим многое первыми - уже в состоянии понимать, что делать. Это не означает, что мы все ломали, но теперь у нас были развязаны руки в плане расширения игры и ее механик. Не трогая ничего, что бы относилось к официальной части, но расширяли все, что с ней связано не было, вводя механики или элементы игры поверх. Так у нас получился новый-старый сервер, официально-неофициальный, перезапущенно-неперезапущенный.
Заодно, на волне всего разведенного нами хаоса, списались с с одним владельцем ретро компьютерного клуба и спросили - а можно нас поставить в ваш клуб? С нас баннер на главной, рассылка и социальные сети. Да и формат подходящий, мы самое что ни на есть ретровое-ретро. Другой вопрос, что мы — это игра только онлайн и к тому же честной судьбы пираты. Итогом нашей переписки стало то, что Inceptum стал, наверное, первым шардом UO со временем 2000-х, оказавшемся в компьютерном клубе. Это была классная ачивка и уникальная возможность, буквально "Назад в будущее", которая позволила сделать то, что делали админы шардов начала нулевых по знакомству. Таким образом, замкнув временную петлю, заново отправились в золотую эпоху как клубов, так и самой игры.
В этом же году удалось ввести автоматические стримы - все, что происходило в мире снимала камера-бот. Была выставлена большая задержка, написаны алгоритмы ее работы - приоритет на пвп и ивенты, далее боссы, далее мобы, далее просто все подряд включая площади городов. Работало все это иногда не особо стабильно, но тем не менее, подобной фишки не было еще ни у кого среди коллег по цеху. Так что, в очередной раз лепим к гордой груди значок новаторов. И это все конечно интересно, но как отреагировали люди на такие перемены?
А люди отреагировали более, чем положительно. Даже те, кто был совершенно против таких радикальных шагов. В конечном итоге, можно сказать, что мы все сделали правильно, и наш маневр удался не хуже, чем в Интерстелларе. Показатели онлайна вернулись к цифрам, которые были до всего нашего каскада факапов за последние годы, а сама игра стала заметно комфортнее как для игроков, так и для нас, в плане времязатрат на администрирование. Со спокойной душой можно сказать, что это был, пожалуй, первый год, где мы нигде и ни в чем не налажали.
***
Небольшая ремарка - 2023 и 2024 год идут больше по стезе размышлений и завуалированных (а иногда и не очень) ответов на вопросы из прошлой части лонга. В эти два года мы работали в обычном режиме и ставили обновления, как и всегда. Я думаю, десятка с лишним лет хватило, чтобы примерно понимать, что и как мы делали. Но написать хотелось бы не только об этом.
2023 год – Пираты всегда получают по заслугам
Чтобы жизнь не казалась малиной, решили выкатить клиент под андроид. Максимально своевременно в кавычках и в режиме натягивания совы на глобус, размеров которого ее пятая точка еще не видела. Взять игру 97 года, рассчитанную на шариковую мышь вашего деда и юзабилити времен, когда такого слова еще не существовало, и запихнуть все это на сенсорные экраны размером с пачку сигарет. Даже спустя полтора года не могу до конца понять, удалось нам это или нет. Вероятно, выжали максимум из возможного - оно работает, и даже можно играть. Однако, в общем и целом, наши труды можно подытожить словами классиков - сомнительно, но окей. Из забавных моментов в процессе был поиск телефонов, на которых можно было бы протестировать сборку клиента. В итоге наш тестовый стенд закончился не начавшись, потому что набрали мы только "айфоны для нищих" в лице разношерстных сяоми на одной и той же версии андроида, зато штук 7.
А клиент на телефоны нам был нужен для того, чтобы сохранять у части наших игроков плюс-минус привычный уклад жизни в новой реальности, в которой мы все оказались. На шарде есть небольшая мемориальная зона, где расположена память о людях, которые у нас играли - но сервер не пережили, по тем или иным обстоятельствам. Не трудно догадаться, что актуальность данной зоны возросла. Однако, жизнь не была бы жизнью без баланса, а он состоял в том, что благодаря нам на свет появились новые люди, создавались семьи после знакомств в игре, появлялись новые друзья. Понятно, что истории такие не редкость, однако по-настоящему гордимся каждой, потому как мы не большая компания без души, а просто обычные юниты с обычными радостями. Объективно говоря, может это единственная причина, по которой наш сервер столько проработал в плане стимула им заниматься.
С другой стороны, люди попадались разные. После какой-то из очередных баталий на форуме, один из наших игроков, работающий в органах, пожаловался в датацентр по поводу нарушений нами законов РФ, мол - нужно срочно принять меры, у вас хостятся известные террористы. Поддержка было напряглась, пришлось ее распрягать новостью о том, что форум хостится не у них. А один раз еле удалось отбиться, но уже от ящика коньяка из Армении - ревард за то, что держали внутренний курс WMZ (эквивалент долларов у вебмани) относительно реального так, чтобы люди могли себе позволить что-то купить во времена варп-штормов.
Конечно, было много попыток и подкупов - самая большая из тех, которая гарантированно была бы получена, это 1500$ за учетную запись гейм-мастера (учетная запись с правами ниже админа, но несравнимо выше обычного плеера), причем даже не для рисовки предметов, а для проведения ивентов. Во всяком случае, так было сказано, но проверять мы не стали. Были и угрозы со звонками на мобилку, были и довольно милые признания в любви. Из забавных случаев: как-то раз написал мужик в возрасте, в тогда еще аську, попросил дать куда перевести деньги. Пришло 15к, на дословно - "Жене нужна какая-то кирка для копки руды, я ничего не понимаю, это ей на аккаунт". Хотя никаких кирок у нас никогда не продавалось, о чем ему сообщили, но мужику было все равно. Его дама сердца в итоге просто покрасила перчатки в розовый цвет за 250р и копала в них.
Несколько раз помогали деньгами или чем-то материальным игрокам в тяжелой ситуации, о которой узнавали просто из третьих рук или мельком в разговоре, никаких сборов никогда не объявляли, просто из рук в руки частью доната.
Я лично, как админ, уже успел для наших игроков - посочинять сказки для детей, дать имена домашним животным, поразрешать семейные конфликты, помочь наладить жизнь, открыть сервер, помочь написать лабу по философии, нелегально перейти границу, десятки раз настроить десятки компьютеров, вырастить кактус и еще бесчисленное количество иногда очень странных вещей. А еще есть вот такие царские когти, от одной из девушек, играющих у нас, с нашим логотипом.
В общем, как вы понимаете, скучать приходилось редко и без всяких неполадок по технической части. Иногда прилетало с направлений, от которых не ждешь. У нас всегда была раздача на рутрекере (ех-торрентс ру) и по UO она была в топе среди схожих тем, с несколькими десятками страниц. В какой-то момент пришло сообщение в личку от администрации о том, что игровые раздачи от пираток теперь должны заносить деньги трекеру, потому что им нужно на что-то работать. Наш спор о том, что и нам нужно, и мы не компания и часто работаем в минус, закончился для нашей раздачи, которой было 8 лет вполне закономерной плашкой - "Торрент не зарегистрирован на трекере (Последний статус: закрыто)". Пиратский френдли-фаер.
Впрочем, иногда было тихо настолько, что совесть уже начинала грызть, мол три месяца не открывал клиент игры. Тогда включался режим "ничего не делаем, делая" и разводилась обширная бурная деятельность из разряда "никто и никогда это не заметит" по декорированию сервера. Дня три расставлять куски руды, шахтерские фонари и веревки около дыр в земле, потом натягивать паутину по углам и прятать скелеты в данжах — это особый вид аутизма. Желаю как-нибудь попробовать каждому, ваша работа снова покажется вам интересной, а в голове появятся мысли.
Заодно, чтобы весело было не только нам, и включив демедж-контрол в ситуациях, когда по две наседки на каждое ухо в плане обновлений, мы организовали т.н. консил (по аналогии с EVE) - теперь крупные гильдии должны были сначала договориться между собой, выбрать своих представителей и решить острые вопросы через голосования внутри гильдий, и только потом доносить общее решение до администрации. Таким образом, игрокам дали ограниченную возможность определять политику сервера и влиять на наши решения прозрачно, донося проблемы оперативно и сразу от лица большинства.
Итогом данных нововведений, как показало время, стало только наглядное доказательство того, что несколько взрослых человек с амбициями никогда не могут друг с другом договорится, а администрация оказывается принимала вполне себе взвешенные-ничего-себе-решения для всех. Как говорили синие человечки с кошачьими глазами "Великая мать не может быть на чьей-то стороне. Она сохраняет равновесие жизни."
* Продолжение читайте в заключительной части.
Ответ на пост «Админим сервер Ultima Online 14 лет — вторая часть лонга»1
Как я ломал 3 раза городской сервер UO...
Нахлынули вот воспоминания, чего они только в моей голове сидеть будут ;)
1) играл я в UO на городском сервере, а потом меня занесло на The Abyss(вроде так ...) играл да играл, скриптами майнил да лес рубил, и получилось у меня кому то что-то продать за реальные бабки... по интернету блеать, впервые в жизни я заработал денег... и очень понравилось это дело мне, начал искать баги что бы имущества виртуального побольше было. Для изучения поставил у себя сервер, и узнал что по дефолту там два логина админовских admin и кажется master, в общем на городском сервере пользовались только admin, и я спокойно зашел под мастером и шалил с .dupe и .kill... ну вот это и был номер раз, местному админу это не понравилось и он стёр меня со всем барахлом ...
2) По этому поводу я расстроился, и думал как наказать поганца...
Город не очень большой у нас, я узнал где живёт админ, мне повезло в его же подъезде жил знакомый, интернет технологии тогда не блестели шифрованием, в общем через этого знакомого соснифил пароль на админа и восстановил справедливость, подкрался на каком то евенте и унизил админа .kill публично
3) Тереть у меня было нечего, поэтому последствий второго взлома для меня не было никаких и я благополучно забил на городской сервер и мутил дела на The Abyss....
Но тут где то через пол года-год местные админы попросили меня на сервере контры чето настроить у них. Интернет провайдер в городе был один и так я получил доступ к игровому серверу, на котором кроме CS была и UO, так я получил права админа и пошалил на сервере в третий раз.
Админим сервер Ultima Online 14 лет — третья часть лонга
Продолжение эпоса по разработке эмулятора старой мморпг. Первые две части по ссылкам ниже, если вы пропустили.
Первая часть
Вторая часть
2016 – Космические разборки и космическое выгорание
Год начался с уведомления от нашего датацентра, в котором говорилось следующее — мы были вынуждены увеличить стоимость с 10к рублей до 20к в месяц за размещение вашего оборудования (для сравнения — в бюджетных ДЦ за эти деньги можно было размещать от 15 до 20 одноюнитовых серверов в месяц). На мои вопросы в поддержку о том, с чем связано увеличение цены вдвое, через день пришел ответ с почты на другом домене, в котором уже был указано совсем другое название компании. Я тогда подумал — нужно срочно искать альтернативы, потому что платить суммарно от 250 тысяч в год очень не хочется, особенно когда начинаются очень мутные ситуации. Пока искал место, в которое мы будем мигрировать (что занимало время, поскольку нам нужна была хорошая защита) пришло еще одно письмо.
Из того, что удалось понять — сменился собственник (в реалиях нашей страны означает — начался дележ), и соответственно все оборудование ЦОД-а текущим руководством планировалось перевозить в другой, арендуя там стойки. Причем клиентов о том, хотят ли они этого, никто не спросил. Было что-то вида — грузовик приедет в полночь, и увезет ваше железо куда-то там, поздравляем, у вас будет даунтайм. На следующий день я поехал на такси через пол-Москвы забирать наше железо. И тут сюрприз! Сама площадка и все оборудование, как оказалось в последствии, находилась на территории, принадлежащей российским космических системам (дочка Роскосмоса).
Каким образом у них на территории и на их пулах адресов оказался датацентр — я думаю, объяснять не будем, все уже взрослые. Однако, когда начался движ, возник классический любовный треугольник, в котором все хотели получить как можно больше. С одной стороны Роскосмос, на мощностях которого и территории работал один из крупнейших ДЦ Москвы. Со второй — собственник, который уже давно находился за границей по причине заведенных на него уголовных дел в РФ. Ну и наконец с третьей — ребята, у которых была генеральная доверенность от собственника на весь движняк от его имени, но в какой-то момент они решили, что сами по себе. Для простых клиентов ситуация была простой — забрать свое железо нельзя, потому что никого с железом не выпускают и не впускают, а ФСБ шерстит все, что движется.
Ситуация с железом за 5 секунд. Эвакуация батутом.
Дальше был увлекательный квест, в котором я ездил в магазин и просил распечатать там хоть какие-то чеки по железу (сервер собирался из комплектующих), вылавливал мужика с доверенностью на доверенность, у которого прям в машине был принтер, на котором мне распечатали документы и поставил печать о том, что я действительно у них размещался, общение с минишишкой из РКС, который в какой-то момент сказал «слушай, ты ведь админ, вроде адекватный, давай работать к нам, а то все освободилось, мы решили делать свой датацентр, персонал нужен». Через пару дней я ехал обратно на такси с сервером на заднем сиденье, а таксист, узнав, что это такое, сказал — вкладывать надо в золото. Я вот вложил, и купил машину. Сам же шард к тому моменту уже работал на арендованном сервере в другом ЦОД-е, куда позже и уехал наш физический.
В середине года мы открыли отдельный тест-сервер с самым дорогим и самым рискованным пулом обновлений в нашей истории. Данное обновление разделило шард на эпоху до, и эпоху после, по сути, меняя всю игру. Решено было вводить новую систему крафта с официального сервера — Imbuing. И к нему-же ряд подсистем, так же касающихся вещей — Reforging и Altering. Сложность тут заключалась в том, что на тот момент 3 из 10 крупнейших серверов, которые пытались его ввести закрылись будучи не в состоянии разгрести все последствия ошибок при его введении, остальные 2 потеряли практически весь онлайн и откатили изменения, из-за того, что весь баланс был сломан, и разобраться в его работе до конца они не смогли. А все остальные так далеко никогда и не заходили, работая на аддонах несколькими годами ниже.
Таким образом, нам предстояло сделать то, что до нас еще никто в мире не делал. Ввести сложнейшую систему так, чтобы не заруинить под валом ошибок вообще все.
Ведь все они бы касались непосредственно эквипа игроков, а это — святое. Риски были понятны заранее, но решили делать, потому что дальнейшие развитие одновременно с офф. серверами, не сделай мы этого, становилось невозможным. И выбор стоял между бросаем то, к чему шли 6 лет, или пробуем — либо умирая, либо работая дальше. На разработку только имбуинга было потрачено больше 70к рублей и несколько месяцев тестов до ввода в продакшен на лайф-сервер, и еще пару недель ежедневных рестартов с хот-фиксами уже на лайфе.
По итогу и в техническом плане мы справились отлично, хотя ошибки еще вылезали долгое время, но критических среди них не было. Таким образом, мы стали первым шардом, кто смог ввести действительно систему 1 к 1 с офа, а не подобие (к слову, к нам до сих пор так никто и не приблизился). Но, как и водится — проблемы начались сразу с нескольких сторон. Мы изначально знали, что часть игроков уйдет, и были готовы к небольшому их оттоку. Причина заключалась в том, что в СНГ люди не привыкли играть на серверах Ультимы, которые имеют регулярные обновления. Соответственно, в массе своей игроки ничего не знали о текущем состоянии игры, какой она есть на самом деле. Пока мы вводили правки медленно — у людей было время приспособиться, но и при этом каждый раз нам приходилось объяснять, почему изменения идут на пользу.
Хотя все знали, что мы ставим правки только с официальных серверов (кроме фиксов своих ошибок). Казалось бы, для того, чтобы узнать, что будет установлено у нас завтра, достаточно посмотреть патчнотсы того, что установлено у официалов сегодня. Но естественно никто этого не делал, а вводить постепенно огромное обновление мы не могли, потому что у него всего два состояния — старая система крафта и новая. Новая была существенно лучше, глубже, интереснее, и полезнее для игроков. Но люди не разобравшись говорили следующее — у нас были боты, которые делали все за нас, и мы просто получали готовые вещи, а теперь надо во что-то вникать, что-то фармить, переписывать ботов, нафиг оно нам надо, до свидания. Следующим фактором было то, что на этот год пришлось самое ожесточенное противостояние сразу нескольких крупных гильдий. И любые правки чего угодно воспринимались какой-либо из них в штыки, и как подыгрывание противоборствующей стороне. Доходило до смешного, когда за месяц после нескольких обновлений на форуме появлялись посты от каждой из них, вида: вот это-то наверняка сделано в плюс нашим врагам, они наныли, а администрация сделала! В итоге еще до ввода новой системы мы потеряли одну из крупных гильдий, и онлайн немного просел.
Далее произошла вторая волна дропа онлайна — боты, которые использовались игроками под крафт (в ультиме боты — часть игры, увы) стали бесполезны в новых реалиях и стали выгружаться, что уронило цифровой онлайн процентов на 30.
Видя такое резкое падение онлайна за короткий срок, хотя живой оставался таким же, как и прежде, начали отваливаться люди из паникеров, а за паникерами начали отваливаться и более или менее постоянные игроки. И хотя такие ситуации были для нас не в новинку и всегда контрились, сыграла роль основная причина в виде меня самого. К этому моменту начала сказываться безумная усталость, которая как я потом узнал, называется выгоранием. Почти 6 лет я провел в режиме краба на галерах, и когда все усилия наконец-то переродились в показатели онлайна и деньги, сил уже не оставалось никаких. К этому моменту на сервер уходило от 4 до 10 часов плотной работы каждый день, без выходных (я фрилансил, и время было). И до этого момента все «мы» в рассказе следует понимать как «я».
Отлично помню, как телефон пиликал от уведомлений по донатам каждый день, и в зимний период я мог заработать 100-120к рублей в месяц (что по инфляции и курсу на сегодняшний день в районе 200к). При этом, что для меня было удивительно, радости никакой не было. Вызывало раздражение, потому что напоминало о том, что надо крабить дальше. В одном лице я был и комьюнити менеджером, и тестером, писал ТЗ для кодера, и поддержкой, и эвент-мейкером, и конкурсы проводил, и с техническими проблемами на сайте или по железу разбирался тоже я. Это только то, что приходит на ум, а надо было заниматься еще рекламой, каким-никаким продвижением и т.д. по списку. И если у нас были проблемы с онлайном — они всегда перекрывались все той же рекламой. У нас всегда была статистика за месяц, сколько людей начало, сколько неактивны, и когда линия падала, она всегда догонялась новыми игроками.
Но в этот раз, я подумал — как меня все достало, я только что потратил 70 косарей, а они СНОВА недовольны всем (это кстати отдельная тема для отельного рассказа — если зайти на любой не русскоговорящий сервер или даже взять наших иностранных игроков, они всегда говорят спасибо и поддерживают, славяне же люто ненавидят все, что движется, а если не движется, то двигают и ненавидят). Я больше ни хочу ничего объяснять, и больше не буду ничего делать для того, чтобы перекрывать просадки по онлайну, я больше не буду разжёвывать каждый тикет в саппорте и объяснять, почему у нас все работает правильно на пальцах, я больше не буду сидеть в 30 открытых чатах помогая людям разобраться с тем, о чем они могут прочесть за 5 минут в интернете, если приложат минимум своих усилий, а не моих.
Это не было ежесекундным решением, просто то, что копилось все это время, наконец-то вылилось в режим «мы помещаем детенышей в агрессивную среду реального мира» с «кормим кашей с ложки и читаем сказку на ночь».
Таким образом, собрав все три фактора в то, что называется в EVE Online «фейл-каскадом», мы входили в новый год.
2017 – Свежая кровь
Находясь в порочном круге «забивают игроки, забиваю я, забивают игроки, забиваю я» в какой-то момент возникла ситуация, при которой денег на крупные обновления перестало хватать, при том, что кодеру оплачивалось практически все, что шло с сервера без остатка. Тут надо пояснить, что апдейты мы ставили ровно в том же режиме, как и всегда. И поддержка в виде меня работала, решая проблемы, и в целом все с виду было вполне обычно. Но часть старых игроков не смогла перестроиться на новые рельсы после обновлений, часть ныла, что ушли их друзья, оставшаяся требовала к себе внимания как раньше, которого больше не было. А новые же, приходя на сервер сталкивались с паническими настроениями и думали, зачем вообще им это надо и уходили искать что-то другое для времяпровождения. Да и я все чаще задавался тем же вопросом »зачем мне это надо?».
В один из дней, в котором ничего существенного не происходило, мне написал один из наших постоянных и самых старых игроков (играющий у нас с начала 2011) и спросил — почему ничего не происходит? Давайте сделаю так, чтобы происходило! Речь шла о его предложении кодить для нас. До этого с его стороны была некоторая добровольная помощь, которая заключалась в основном в написании или редактировании FAQ-ов, а также в попытке запустить через меня сервер Майнкрафта (который так и не снискал популярность). По итогу — человек находился на хорошем счету. На вопрос, кодил ли он когда-то под наш эмулятор, был получен ответ — нет, но что тут может быть сложного-то, я делал свой сервер майнича, значит и тут смогу легко вкатиться. Находясь в режиме «с каждым днем я все дальше от бога» и понимая, что скоро денег может перестать хватать не то, что на скриптера, но и на хостинг, я согласился. Сразу оговорив со своей стороны — грядут темные времена, и денег нет и вероятно не будет в ближайшем обозримом будущем, а будет только ответственность, кранчи и ад ради ничего. Проколов палец и подписав контракт, мы начали сотрудничество.
Давая вначале легкие и простые задачи для «вкатиться», и догружая задачами средней тяжести для «почувствуй, силу Люк» под неустанным присмотром нашего постоянного штатного программиста и меня в роли тестера, со временем мы пришли к тому, что человек стал понимать специфику того, над чем и с чем работает. Во всяком случае, так казалось до того момента, пока не встал выбор — либо мы оплачиваем размещение железа, сайта и всей инфраструктуры, либо продолжаем оплачивать работу над развитием сервера в плане кода. С этого момента у нас остается только новый программист, не внесший ни одной серьезной правки самостоятельно.
Примерно так должно это было выглядеть, если бы я не пустил все на самотек.
Дальше начался вполне закономерный ад, который довольно сильно давил психологически на всех. На меня, привыкшего к около безупречной работе нашего сервера и сделавшего для этого много, но допустившего эту ситуацию в целом. На игроков, которые несколько месяцев не могли нормально играть без ежечасных опасений откатов, часовых фризов, и любых самых неожиданных проблем с любыми взятыми элементами игры, которые ломались каждую неделю по десять раз. На нового программиста, потому что на него свалили огромный проект, к которому готов он не был не смотря на гонор по началу, и такой же огромный мой абьюз, которому позавидовала бы и солдат Джейн. Да и в целом, обстановка была достаточно веселой — если вы думаете, что видели в этой жизни токсичное общение, вы просто не были у нас в дискорде зимой 17-го.
В какой-то момент я опустил тентакли и смирился окончательно с неизбежностью бытия. Внутренне приняв наконец свое полное нежелание разруливать ситуацию и тотальное выгорание вкупе с виной за него, я прекратил тестировать обновления перед вводом на лайф сервер. Теперь и этим занимался наш новый кодер. Занимался он этим потому, что пришло понимание: если не сейчас — то никогда, и пора учиться делегировать полномочия.
А так это выглядело на самом деле.
С этого момента дозированными порциями и через фильтр «шит-контроля» решения начал принимать не только я один. Человек получил полный доступ ко всей кодовой базе и всем нашим наработкам за 7 лет, а также полную учетку в игре с максимальным уровнем доступа «Owner». Помимо этого, были выданы права администратора на нашем сайте, соц. сетях, дискорде и т.д., в общем — у нас появился второй полноценный администратор, впервые за все время.
Но, как вы, наверное, уже поняли, был и существенный минус — игроков наматывало на амбразуру такого шокового варианта обучения. Говоря честно, я не знаю, как люди играли у нас в тот период. На их месте я бы ушел через неделю искать другой проект, а я человек очень терпеливый. Если выражаться образно — вы живете годами в достатке в своем теплом особняке, не зная горя и в какой-то момент вам с ноги выламывают дверь, отбирают все, что есть, и дальше вы живете с бутылкой водки под протекающим мостом рядом с наркоманами, которые каждый день вас бьют и грабят. Вот насколько у нас все было плохо в тот период со стабильностью работы шарда и кривизной обновлений. Было стыдно и больно, но я уже точно осознавал, что эта та грань, при которой мы либо работаем дальше, либо все заканчивается через год просто угаснув. Потому, что я не могу себя заставить делать уже вообще ничего.
А теперь о хорошем — в этом году мы пообщались с разработчиком очень популярной софтины, которая использовалась всеми без исключения, в основном для ботоводства (она позволяет запускать персонажа с любой степенью автоматизации и сложных скриптов без запуска графического клиента игры). И получили уникальные ключи, работающие только с нашей сборкой шарда, которые позволяли детектить данный софт. Программа использовалась на всех серверах в мире, и мы были первыми из тех, кто смог ее определять на сервер-сайде. Это давало огромное преимущество по контролю ботов и ограничению зон и механик, которые могли использоваться игроками таким образом. И хотя я уже был знаком с разработчиком, и мы ранее немного общались, ключи были получены уже нашим вторым администратором. Так с ложкой меда в бочке дегтся, заканчивался очередной год.
2018 – Inceptum значит бессмертие
В первые месяцы, пройдя через очередной миллиард ошибок и растеряв следующую часть игроков, скрипя всеми колесами, мы переводим клиент и сервер-сайд игры на последнее обновление официальных серверов — Endless Journey. Делаем это первыми в уже теперь ех-СНГ и третьими в мире, но опять же — первыми из старых серверов. Теперь можно сказать, что номинально за 8 лет разработки мы догнали официальный сервер, которому было к тому моменту больше 20 лет. Номинально потому, что часть обновления еще не была на должном уровне готова, однако аналогов и этому ни у кого не было.
Весной произошло два события. По классике — одно хорошее, одно не очень. Первое заключалось в том, что кодер наконец-то начал нащупывать почву под ногами, и сервер стал худо-бедно походить на себя в былые годы, в плане стабильности. Скилл рос как на дрожжах, и его хватило даже на ввод уникальной относительно конкурентов и сложной системы мультилогина. Смысл его работы заключался в том, чтобы человек при логине в игру мог выбирать несколько серверов из списка, как во всех современных играх. Таким образом, для примера, стало возможно отображать и мейн сервер и тест-сервер на одном окне логина в списке доступных шардов. До нас эта система в полноценном виде была реализована только у официалов.
Второе состояло в том, что сервер уже перешел на оплату хостинга за мой счет, потому что денег перестало хватать, что было вполне закономерной реакцией людей на тот бардак, что царил у нас последнее время. И хотя и я, и скриптер работали бесплатно, расходы все равно были выше. Тут надо пояснить, что сервер работал в минус и первые полтора года своего существования, и не редко — несколько месяцев в каждом году и в дальнейшем. Но тут я решил окончательно (опять же благодаря своему выгоранию), что, если Inceptum хочет жить — он должен самоокупаться любыми способами, но работать хоть на рубль, но в плюс и без участия моего кармана.
Первое, что было сделано — сокращены расходы на все лишнее, часть инфраструктуры переехала обратно в Россию, а все необязательные веб-сервисы переехали с выделенных VDS на одну. Второй волной был пересмотрен весь магазин пожертвований — исходя из покупательского спроса были скорректированы расценки на то, что в нем находилось. И наконец последнее, что было сделано — наше физическое железо было вывезено из датацентра. Как сейчас помню, это было в лютый летний дождь, когда затопило пол-Москвы, и я под дождем пол часа ждал такси из Химок, надеясь на то, что парни в ДЦ, любезно предложившие запаковать все в пупырку, чтобы не залило водой, сделали это на совесть. Пока я смотрел в окно машины на потоки воды, доходившие до порогов, в голове созрел план.
За неделю я продал сервер на авито, обеспечив нам небольшой задел по деньгам на несколько месяцев. После чего я откопал свой аккаунт на серч энгайнс, и в разделе хостингов создал тему, содержание которой можно свести к следующему: Мы делаем рассылки по нашей базе пользователей раз в пару месяцев на примерно 10 тысяч человек, у нас есть сайт с посещаемостью в день такой-то, есть игра, есть соц. сети и группы в мессенджерах, работаем много лет. Мы размещаем везде вашу рекламу включая ингейм, и в рассылки вставляем блок, который вы отправите, взамен нам нужно железо бесплатно, с конфигом не ниже указанного, на длительный срок.
Честно говоря, надежд у меня было совсем мало, однако сразу откликнулось два человека. Первый был от совсем маленького хостера, второй был от крупного хостера. Пребывая в режиме «я не очень умный» и решив, что с мелкими ребятами будет проще по-свойски решать вопросы, я выбрал первых. Через два неполных месяца наше сотрудничество прекратилось, потому что в какой-то момент мне написал их менеджер, и сказал — сорян, но у вас три дня, потом сервер мы освобождаем. Удалив всю их рекламу у нас и подумав, какие же это чудесные люди, я написал вторым, с вопросом, актуально ли еще их предложение, потому что мы кажется обделались с выбором. Мне ответил их директор, тогда еще сидевший под своей учеткой сам. Это был максимально странный экспириенс с моей стороны, воспринимающийся как параллельная ветка вселенной. Я разговаривал с человеком, который летел в самолете на переговоры в другую страну, на блог компании которого я был подписан на хабре, и обсуждал с ним игру, которой был 21 год.
Честно описав ему ту бездну, на которую они подписываются и ее перспективы, я получил на выбор ряд серверов. Предложения были от — на год мы можем дать вот это, или на сколько хотите — вот это. Поскольку на год нам предложили сервер способный взломать пентагон, обсчитывая прогноз погоды на пятое тысячелетие, я выбрал наиболее подходящий вариант «на насовсем». У меня было полное ощущение, что все показатели и расклады, которые я ему давал, ему совершенно не важны и не интересны, тем не менее, с вежливостью они все были выслушаны. Я понял, что основное это «я просто так хочу» а не «мне от вас надо это и это».
Забегая вперед, скажу, что мы уже 5 лет как размещены у них же бесплатно, и никогда никто с нас не требовал никаких отчетов ни по одной рассылке или рекламе с нашей стороны. За это время нам несколько раз меняли конфигурацию железа (она всегда оставалась в рамках наших запросов) перенося с ноды на ноду, несколько раз писала поддержка — объясните, как вы у нас размещаетесь бесплатно, и несколько раз писал я, когда у нас были технически проблемы, которые всегда устранялись оперативно. Поэтому даже если завтра нас отключат без всяких предупреждений — я безмерно благодарен за это время и возможность, потому что во многом это позволяло нам работать следующие годы. Если кому-то будет интересно, и кто-то до сюда дочитает — логотип хостера у нас на главной сайта.
А к концу года был установлен рекорд по количеству патчнотсов за год, который удерживается до сих пор. Почти дойдя до цифры в 500 пунктов. Если отбросить цифры и сконвертировать в более понятные величины — несколько тысяч изменений на сервер-сайде. Наш второй администратор и по совместительству новый кодер в свой первый полноценный год прибывал в том же режиме и состоянии, что и я в свой первый — интересно, новый опыт, новые вызовы, надежда на лучшее еще не мертва, жизненная энергия еще вращает маховик ответственности. И за всю эту продуктивность и год, который стоил трех, он получил немного денег, и новые комплектующие с недорогой периферией к ноутбуку, чтобы программировать было комфортнее. А комфортнее — значит больше. Учитывая количество потраченного на сервер времени и нервов с его стороны за этот период, это было грустная и злая ирония. Тем не менее, сумев разобраться со всеми самыми критичными организационными вопросами мы продолжали наш путь в будущее.
2019 – Прыжок в неизвестность
И в этом будущем наконец-то полностью дошли и перешли на систему паблишей (патчнотсов полностью) 1 к 1 с официальных серверов. До этого на протяжении 8 лет мы в большинстве своем работали только по тикетам от пользователей, когда что-то относительно офф. сервера работало не верно. И время от времени делали большой скачок, когда могли ввести все, что вышло на официальном сервере за год-два-три. После — снова правили ошибки после этих заходов. Минус системы был в том, что иногда у нас провисали какие-то механики или геймплей, в том плане, что игра была сшита из разных обновлений за разное время.
Когда пытаешься объяснить игрокам все несостыковки и выстроить логически понятную цепочку обновлений.
Всю эту мешанину мы пытались свести к чему-то одному. К примеру, лучники могли работать с абилками 2016 года, а воины с абилками 2018. И хотя разница в формулах была невелика, система зависела от активности и добросовестности игроков — сдавать выгодные ошибки никто не хочет, но каждый хочет занерфить соседа. К этому году бесконечный поток сообщений вида «это работает не так, как на офе, вот ссылки и видео» иссяк. И впервые за все время мы начали переносить обновления по мере их выхода, сократив отставание от серверов разработчиков игры до нескольких месяцев, и придя к понятной линейной структуре апдейтов.
В этом же году первыми из крупных серверов, и первым — на последних обновлениях, поддержали разработчиков альтернативного клиента игры, и первыми среди всех серверов, что им пользовались, сделали рассылку с рекламой клиента по нашей базе. Забегая вперед, можно сказать, что по состоянию на конец 2023 на нем сейчас играет довольно много наших пользователей. Тут можно просто вставить цитату с форума:
«Не любите 3D клиент? Любите 2D, но слишком топорно, угловато и дергано? Кажется, у нас есть пилюля для вас — «2D» на стероидах, плавно, резво, красиво. Начнем издалека.Моя история знакомства с данным творением такова — в конце декабря 16-го мне написал разработчик клиента с вопросом по uop-ам, к сожалению, помочь я с ним не смог, т.к. мы сами так и не доковыряли файлы анимации из новых версий (на тот момент), как пример, но зато мне стало известно вообще о том, что такой клиент существует.
С запуском на нашем сервере, на тот момент, было множество проблем, ибо мы всегда на острие апдейтов.
Последние офф. клиенты только-только вышли, а мы уже были переведены на них, в то время как с дремучих времен ничего не меняется, и большая часть серверов в СНГ как сидело на 2-4 версиях клиентов, так и сидит. Вполне ожидаемо, пилится все в первую очередь под них. В итоге, дай бог и с граблями все доходило до запуска игры по факту, но черного экрана по итогу, о чем я и указал, и через какое-то время вообще забыл об этом разговоре, как и о клиенте.
Вспомнил я о нем, когда в начале сентября от разработчика пришло сообщение о том, что теперь на последних версиях — играбельно, и проблем особых у нас быть не должно. Я обещал посмотреть в течении недели, в итоге, как это обычно со мной и бывает, дополз до теста через 3, и вот теперь пишу эту новость».
После чего была проведена большая работа, по итогам которой гордимся тем, что сейчас сервера использующие данный альтернативный клиент и последние аддоны игры идут про проторенной усердием разработчиков, и во многом — нашими баг-репортами, дороге.
Однако, на этом все хорошие новости за этот год заканчиваются. И хотя с точки зрения обновлений мы работали как обычно (несколько сотен пунктов + паблиши целиком), но действительно монументального и интересного ничего не делали, сосредоточившись на сокращении остывания от официалов. Учитывая то, что рекламу мы так больше и не давали, а у старых игроков накопилась усталость, мы вполне закономерно пришли к каскадной убыли онлайна с относительно небольших потерь в начале. Устали игроки, устали мы, нового притока нет. И мы решили — раз уж все и так хуже некуда, надо сделать прыжок в пропасть — сделать все правки, духу на которые раньше не хватало. И исправить все ошибки, которые мы допускали за все эти годы, так, как если бы сразу со старта у нас был наш опыт в почти десять лет. Ведь когда есть онлайн — непопулярные решения чреваты его потерей. А когда ты уже его теряешь — какая к черту разница? И мы приступили к делу.
* Продолжение, как обычно, в следующей части.





![🗓 24.09.1997 — Релиз Ultima Online [вехи_истории]](https://cs17.pikabu.ru/s/2025/09/21/20/2udvkdo3.jpg)













