Энтузиасты добавили в StarCraft сетевой код из файтингов

Новости Моды


Оказалось, что культовую стратегию можно избавить от задержки ввода и зависаний.

Первая часть StarCraft жива и будет жить. Как минимум об этом позаботится сообщество. К примеру, у StarCraft: Remastered уже есть крупный пользовательский сервер с лаунчером. Называется проект ShieldBattery в честь протоссов.

По мнению создателей ShieldBattery, они совершили технологический прорыв ради StarCraft и ее дополнения Brood War. Разработчики внедрили в игру полноценный сетевой код с механизмом отката сетевого кода (Rollback), решив проблему задержек ввода и постоянных пауз, преследовавшую кибератлетов на протяжении более 25 лет.


С момента релиза сетевой модуль от Blizzard работал по принципу жесткой синхронизации Lockstep. Компьютеры участников обмениваются только сигналами от игроков, но не пересылают координаты юнитов и туман войны. Чтобы не допустить рассинхрона, игра принудительно задерживает выполнение каждого приказа игрока, дожидаясь пакетов от соперника. При высоком пинге задержка доходит до 500 мс, а потеря даже единичного пакета могла вызвать зависания экрана, ломая микроконтроль в решающих сражениях и демотивируя игроков.

Разработчики ShieldBattery придумали решение проблемы и адаптировали сетевой код Rollback, ставший золотым стандартом в современных файтингах. В нем симуляция мгновенно откликается на действия игрока на следующем же кадре, не дожидаясь ответа по сети. В стратегии это стало возможным благодаря наблюдению за действиями киберспортсменов, когда даже при скорости свыше 300 APM игроки отдают новые приказы лишь в одном кадре из десяти. В остальные 90 % времени система предугадывает отсутствие новых команд, а при опоздании пакета мгновенно откатывает состояние мира на доли секунды назад и пересчитывает кадры быстрее миллисекунды. Вместо зависания картинки мелкие расхождения сглаживаются едва заметными скачками юнитов.

Еще одним заметным улучшением стала независимость отклика каждого участника матча. В ванильной системе задержка всей сессии равнялась скорости самого медленного соединения, из-за чего один игрок с нестабильным Wi-Fi держал в заложниках всех участников матча. На серверах ShieldBattery каждый участник матча полагается исключительно за качество своей линии связи – владельцы стабильного интернета получают мгновенную отзывчивость одиночной игры даже в матчах против соперников с других континентов.

Конечно, это явна не та фича, за которую StarCraft ценили везде. Но моддеры явно двигают игру вперед, позволяя компенсировать не различие в железе, а расстояние между игроками.



С одной стороны, такое обновление нарушает традиции классики. С другой стороны, сейчас самые дешевые смартфоны мощнее ПК, на которых работала классическая StarCraft. И, конечно, ShieldBattery не произвела революцию как таковую – похожие идеи были у разработчиков ряда других стратегий, включая Stormgate.