Рубрика «MMO»

Не так давно, на заре этого тысячелетия, холодным ноябрьским днем 2004го я сел писать эмулятор сервера для некой онлайн игры. Писалось мне весьма хорошо, на радующем глаз C# и .Net Framework версии 1.1. Особых целей перед собой я не ставил, а опыт имел сравнительно небольшой. По какой-то причине сообщество оценило эту поделку (может, потому что она появилась раньше официального старта основной игры?) и через несколько месяцев я столкнулся с взрывным ростом онлайна, а заодно и серьезными проблемами производительности. Проект прожил 6+ лет, достиг заметных высот (2500 онлайна в пике, порядка 20000 MAU), а затем и почил в бозе. И вот спустя полтора десятилетия я решил сделать собственную ММО игру на тех же “проверенных временем” наработках и столкнулся с аналогичными же проблемами, не смотря на то, что они были уже единожды мною решены.
Читать полностью »

Недавно довелось пообщаться с Алексеем Нелюбовым — QA-директором компании Datcroft Games. Сейчас ребята работают над мобильным ММО Action Pixel Wars, проект находится в стадии софтланча. Отдел тестирования сопровождал игру на каждом этапе ее развития, и я решил, что из рассказа Алексея выйдет неплохая статья на хабр.

Далее — прямая речь.

У Pixel Wars долгая и непростая история. Руководствуясь бизнес-целями, мы начали сборку первых прототипов игры в 2016 году. В дальнейшем концепция была полностью переработана с учетом изменившихся реалий рынка, и в софтланч “Пиксели” вышли в конце 2018-го. В ближайшем будущем планируется коммерческий релиз проекта.

image

Читать полностью »

В этой статье я расскажу про одну малоизвестную технологию, которая нашла ключевое применение в нашей онлайн-игре для программистов. Чтобы долго не тянуть резину, сразу спойлер: кажется, что такого шаманства в нативном коде Node.js, к которому мы пришли после нескольких лет разработки, до нас еще никто не делал. Движок изолированных виртуальных машин (опенсорсный), который работает под капотом проекта, был написан специально для его нужд, и на данный момент используется в продакшене нами и еще одним стартапом. А возможности изоляции, которые он дает, не имеют аналогов и заслуживают, чтобы о них рассказали.

Но давайте обо всем по порядку.

Предыстория

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

Под капотом Screeps — виртуализация в MMO-песочнице для программистов - 1

Жаль лишь, что совсем немного реальных проектов, связанных с каждодневным заработком, могут предложить своим разработчикам такие чувства. Чаще всего для того, чтобы не терять страсть к программированию, энтузиастам приходится затевать интрижку на стороне: программистское хобби, пет-проект, модный open-source, просто скрипт на питоне по автоматизации своего умного дома… или поведения персонажа в какой-нибудь популярной онлайн-игре.

Читать полностью »

В нескольких актах подряд Библиотека Конгресса США обозначила решения, которые помогут движению архивации и сохранения видеоигр

Закон об авторских правах только что стал немного лучше с точки зрения истории видеоигр - 1

Новые постановления Библиотеки Конгресса принесли хорошие новости для дела сохранения старых видеоигр. В 85-страничном акте, покрывающем всё, от пультов управления электронными летательными аппаратами до ПО для диагностики сельскохозяйственного оборудования, Библиотека Конгресса описала разрешения на "добросовестное использование" видеоигр и ПО, попадающих под Закон об авторском праве в цифровую эпоху (Digital Millennium Copyright Act, DMCA). Эти разрешения облегчат жизнь архивариусам, сохраняющим исторические видеоигры, и музеям, выставляющим культурное наследие на всеобщее обозрение.

«Реестр поддерживает расширение прав на владение ПО в достаточно специфических случаях, когда организация, занимающаяся сохранением интеллектуального наследия, легально владеет копией серверного кода видеоигры и локальным кодом игры», — указано в заявлении Библиотеки. «При таких условиях действия, направленные на сохранение наследия, вероятно, считаются добросовестным использованием».
Читать полностью »

image

Эта статья является переводом нескольких фрагментов книги Braving Britannia: Tales of Life, Love, and Adventure in Ultima Online (www.bravingbritannia.com). Кроме бесед с десятками игроков об их опыте игры в эту прабабушку всех MMO, в книге представлены интервью с некоторыми из первых программистов, дизайнеров и продюсеров игры, в том числе с Крисом Майером (Fallout 76), Рафом Костером (Star Wars Galaxies), Старром Лонгом (Shroud of the Avatar), Гордоном Уолтоном (Crowfall), Ричем Фогелем (DOOM) и другими.

Прежде чем прийти в Origin Systems на должность ведущего программиста, Крис «Faceless» Майер экспериментировал с Ultima Online как один из первых игроков. Майер работал инженером-разработчиком ПО в Остине, штат Техас, используя быстрый Интернет на своём рабочем месте для игры в Ultima Online в обеденный перерыв или после работы.

Майера всегда интересовало создание игр и он надеялся когда-нибудь заняться им профессионально. На самом деле, он готовился к этой возможности всю свою юность.
Читать полностью »

Всем привет! В предыдущей части мы разобрались с базовой архитектурой, сетью и обменом сообщениями. Нарастим теперь функционал. Сделаем возможность войти, зарегистрироваться получив при этом сессионный id, который можно в будущем использовать для управления клиентом в процессе игры. Далее мы добавим чат, по сути все работает по его принципу: получили сообщение — разослали подписантам. Сделаем возможность создавать игровые комнаты, где будем собирать игроков и отправлять в бой. Синхронизировать перемещение клиентов и напоследок проверять выстрел на проверочном сервере. Будет много кода, я продолжаю пошаговое описание, чтобы можно было быстро разобраться и воспроизвести для своих нужд. Для тех, кто не знаком с первой частью, но хочет вынести для себя что-то полезное здесь и сейчас, я добавил реализацию алгоритма генерации фрактальных ландшафтов Diamond Square, в начало. Happy coding!

Часть 1. Общая картина, сборка библиотек, подготовка клиента и сервера к обмену сообщениями
Часть 2. Наращивание игрового функционала + алгоритм Diamond Square

MMO с нуля. Часть 2. Наращивание функционала + алгоритм Diamond Square - 1

Читать полностью »

Всем привет! В нескольких статьях я хотел бы поделиться опытом создания подобия ММО игры используя Unreal Engine и Netty. Возможно архитектура и мой опыт кому-то пригодится и поможет начать создавать свой игровой сервер в противовес unreal dedicated server, который слегка прожорлив или заменить собой фреймворки для разработки многопользовательских игр такие как Photon.

В конечном итоге у нас будет клиент, который логиниться или регистрируется в игре, может создавать игровые комнаты, пользоваться чатом и начинать игры, соединение будет зашифровано, клиенты будут синхронизироваться через сервер, в игре будет присутствовать одно оружие — лазер, выстрел будет проверяться на проверочном сервере. Я не стремился сделать красивую графику, тут будет только необходимый минимум, дальнейший функционал добавляется по аналогии. Логику можно легко расширить на сервере, добавить например случайные игры и балансер. Для меня было важно создать ММО базу и разобраться с тем что понадобится для создания полноценной мобильной ММО игры.

  • Часть 1. Общая картина, сборка библиотек, подготовка клиента и сервера к обмену сообщениями
  • Часть 2. Наращивание игрового функционала
  • Часть 3. Бонус материал. HLSL шейдеры в Unreal Engine, генерация ландшафтной сетки с помощью алгоритма Diamond Square, динамическая подгрузка моделей из сети

MMO с нуля. С помощью Netty и Unreal Engine. Часть 1 - 1
Читать полностью »

Серверы игры отключили, устроив перед этим апокалипсис

Достойный конец: разработчики уничтожили мир игры Planetside метеоритной бомбардировкой - 1

В 2003 году была представлена ММО игра Planetside. На то время это был интереснейший многопользовательский проект, успешно конкурирующий с другими ММО-играмми. Но спустя некоторое время ММО игрушек становилось больше, и Planetside все сложнее было конкурировать с прочими игровыми проектами. Игроки постепенно уходили, и спустя десятилетие разработчики решили прекратить активное развитие игрового мира. Все силы старая команда бросила на развитие второй части игрушки, Planetside 2.

В 2014 году первая версия перешла на free-to-play модель, но средств, получаемых от игроков, все равно не хватало. Фактически, доходы не покрывали даже расходы на содержание серверов. До поры до времени серверы Planetside не отключали, и многие пользователи продолжали изучать игровой мир, который был не так уж и мал. Но всему приходит конец, не является исключением и эта ММО. Студия Daybreak Games объявила о закрытии серверов игры, заметив, что решение о завершении проекта было принято для дальнейшего развития бизнеса компании и из-за ряда технических ограничений самой игрушки.
Читать полностью »

Убыток от обесценивания инвестиций Mail.ru Group в разработку онлайнового гоночного симулятора World of Speed составил 1 338 млн руб, говорится в отчетности российской интернет-компании. В Mail.ru Group не раскрывают общего объема инвестиций в создание игры. Весной 2014 года был анонсирован запуск бесплатных онлайн-гонок World of Speed от британской компании Slightly Mad Studio, игра до сих пор находится на этапе тестирования.

Читать полностью »

«Как замерять удовольствие от игры» и другие часто задаваемые вопросы об аналитике приложений - 1
Каждый месяц мы устраиваем AMA (ask me anything) сессию на reddit — отвечаем на любые вопросы об аналитике приложений. Мы решили отобрать самые интересные вопросы, и привести ответы на них здесь. Для каких типов игр нужна аналитика? Как правильно проводить эксперименты? Как увеличить retention? Ответы на эти, и многие другие вопросы — под катом.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js