Yragus

На Пикабу
Дата рождения: 14 июня
110 рейтинг 1 подписчик 0 подписок 1 пост 0 в горячем
12

Ведущий инженер-энергетик из Норильска пилит WoW-сервер в одиночку. Вчера открыл ОБТ


Работал ведущим инженером в сфере энергетики. С 2014 года увлекаюсь разработкой игровых серверов — началось как хобби, затянуло серьёзно. Недавно попал под сокращение, живу в Норильске. Пока не могу устроиться на новую работу из-за компенсации от работодателя. Появилось много свободного времени — и я решил наконец довести до ума свой главный проект.

Сервер World of Warcraft, который я пилю с 2022 года. Называется Valor, версия WotLK 3.3.5a. Вчера открыл бету для всех.

Расскажу путь от первых попыток поднять сервер до рабочего проекта с 26 расами, 800 ботами и кастомным мировым боссом.

Как это началось

Играл на разных приватках — но нигде не мог найти то, что хотелось. Пустой мир, мёртвый аукцион, одни и те же стандартные расы. Подумал: «Да я сам лучше сделаю». Классическая ошибка.

Скачал исходники AzerothCore, поставил Ubuntu, два дня гуглил почему не компилируется. Оказалось — не тот компилятор. Добро пожаловать в разработку.

Первый сервер вообще стоял у меня дома на подоконнике. В Норильске. Кто не знает — это город за полярным кругом, где зимой бывает минус 50 и ветер сносит с ног. Однажды прихожу домой — а на системник с сервером намело снега через щель в окне. Сервер работал. В снегу. Охлаждение, так сказать, природное.

Моя серверная машина)

Моя серверная машина)

После этого случая я всё-таки перенёс сервер на нормальный хостинг в Красноярск. Но фото сохранил — на память.

Чему пришлось научиться

Опыт в энергетике помог с логикой и системным мышлением, но программирование — совсем другой мир. Всё с нуля. Без курсов, без менторов — только документация, Stack Overflow и упорство.

C++ — ядро сервера. Первые полгода боялся трогать что-то кроме конфигов. Потом начал править скрипты. Потом лез в ядро. Сейчас пишу свои модули и патчу баги в чужих.

Linux — сервер крутится на Ubuntu. Научился работать с systemd, nginx, iptables, fail2ban, MySQL. Когда первый раз настраивал файрволл — случайно заблокировал себе SSH. Пришлось ехать к серверу физически.

PHP/Laravel — сделал сайт с личным кабинетом и системой регистрации.

.NET — написал лаунчер с автообновлением клиента, чтобы игрокам не качать 15 гигов вручную.

DBC-файлы — бинарные файлы клиента с данными о расах, спеллах, моделях. Однажды случайно удалил папку с DBC для всех кастомных рас. 26 рас. Восстанавливал из облака три часа, попутно переосмысливая жизненные решения.

Мой напарник

Кстати, работаю я не совсем в одиночку. Мой кот Нафаня — бессменный тимлид проекта. Сидит рядом, контролирует процесс, иногда ложится на клавиатуру в самый ответственный момент. Пару раз «помогал» дебажить — случайно нажимал Enter и отправлял недописанные SQL-запросы в базу. Один раз удалил строку в конфиге хвостом. Но в целом — моральная поддержка бесценна. Когда в три часа ночи ловишь segfault, а рядом мурчит кот — уже не так одиноко.

Знакомтесь домовенок Нафаня))

Знакомтесь домовенок Нафаня))

26 рас — самая безумная часть

Захотел добавить расы из поздних дополнений в клиент 2008 года. Вулпера, Ворген, Пандарен, Драктир, Войд Эльф, Ночнорождённые, Зандалари, Кул-Тирас, и ещё куча. Каждая раса — это патч DBC, модели, фракции, стартовые зоны, все 10 классов.

Клиент 2008 года не знает что такое Вулпера, и ему от этого плохо. Каждая новая раса — это десятки правок в бинарных файлах, куча тестов и неизбежные баги на ровном месте.

Меню создания персонажей

Меню создания персонажей

Эредар

Эредар

Зандалар

Зандалар

800 ботов — чтобы мир не казался мёртвым

На любом новом сервере главная проблема — некому играть. Подключил модуль AI-ботов. 800 штук. Бродят по миру, качаются, записываются в данжи через LFG. Танк танкует, хил лечит, ДПС бьют. У них даже тактики на боссов прописаны — все данжи Вотлка плюс рейды: ICC, Ульдуар, Ониксия.

Но баги. Бот-танк заходит в Азжол-Неруб, группа прыгает в яму после первого босса — а бот стоит наверху. Не умеет прыгать с высоты. Пришлось писать автотелепорт: если бот в данже далеко от группы — перемещается к лидеру.

Ещё: сервер падал раз в сутки. Дебажил неделю. Оказалось — несколько ботов одновременно умирают, одновременно ищут кладбище, гонка потоков повреждает хэш-таблицу. Segfault. Добавил shared_mutex — починилось.

Боты в LFG

Боты в LFG

Мировой босс — Пуджа Нерасстроенный

Какой WoW без мировых боссов? Добавил своего — Пуджа Нерасстроенный. Да, отсылка к Dota. Огромная абоминация, бродит по Нордсколу, примерно 7 миллионов HP. Притягивает игроков хуком как Death Grip, бьёт Hateful Strike, плюётся слизью. На 5% здоровья впадает в ярость, а через 6 минут — берсерк. В одиночку не убить, нужна группа.

Дропает тринки из ToC, эмблемы фроста и триумфа, Primordial Saronite. Но самое забавное — когда его никто не бьёт, он патрулирует территорию и троллит в чат. «Пуджа хочет играть! Где его друзья?», «Никто не приходит к Пудже... Пуджа грустит», «Мясо... Пуджа чует свежее мясо...». А когда кто-то всё-таки приходит — «Пуджа голоден! Пуджа разорвёт!». Грустный одинокий босс, который просто хочет внимания.

Мировой босс - Пуджа Нерасстроенный

Мировой босс - Пуджа Нерасстроенный

Что есть на сервере к ОБТ

Кратко что удалось собрать за эти годы:

— 26 рас (10 стандартных + 16 кастомных) — Рейт x10, но каждый игрок настраивает под себя от x1 до x10 командой — 800 AI-ботов в мире и LFG — Рефорджинг и трансмогрификация — Мировой босс Пуджа Нерасстроенный — Аукцион-бот (АХ всегда наполнен) — Ежедневные бонусы каждый день недели — Кастомный лаунчер — Никакого доната за шмот

Аукцион бот

Аукцион бот

Рефорджинг

Рефорджинг

Свой лаунчер

Свой лаунчер

Почему без pay-to-win

Это принципиальный момент. Я сам играл в WoW 8 лет. За всё это время так и не прошёл цепочку квестов на Шадоумурн — это легендарное оружие из ICC, которое нужно выбивать месяцами. Реально сложная цель, к которой идёшь всем рейдом.

А потом заходишь на популярный сервер — и каждый пятый бегает с Шадоумурном. Купил за донат и пошёл. Ты качался полгода, собирал рейд, вайпался на Лич Кинге — а рядом чувак, который просто закинул денег и получил всё за пять минут. И он тебя ваншотит на БГ.

Это убивает весь смысл игры. Когда легендарное оружие можно купить — оно перестаёт быть легендарным. Новичок заходит, видит эту несправедливость и уходит. А за ним уходят и остальные.

На Valor я делаю сервер мечты — где все равны. Шадоумурн? Иди в ICC, собирай рейд, проходи цепочку. Как задумали разработчики. Купить нельзя. Ни за какие деньги.

VIP на сервере — это только удобства: банк, почта, ремонт в любом месте, телепорт друзей к себе. На силу персонажа не влияет вообще.

Прокси и пинг

Сервер стоит в Красноярске. Первый прокси поставил в Москве — пинг 160мс. Перенёс в Новосибирск — упал до 68мс. 800 км вместо 4000. География решает.

Что самое сложное

Не код. Самое сложное — мотивация. Когда сидишь один, пилишь фичу неделю, выкатываешь — и онлайн два человека. Включая тебя.

А потом кто-то заходит, играет три часа, пишет «офигенный сервер» — и ты понимаешь зачем.

Вчера открыл ОБТ. Страшно и волнительно одновременно. Если кому интересно — сервер называется Valor (valor.su). Заходите потыкать, буду рад любому фидбеку.

Показать полностью 11
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества