Разработка ММО РПГ – практическое руководство. Эпизод 1

Вам интересно, сколько стоит разработка онлайн-игры? Хотите знать, как организовать разработку MMO от идеи до релиза? Вы когда-нибудь задумывались о технических сложностях создания…

Разработка ММО РПГ – практическое руководство. Эпизод 1

В серии статей «Разработка MMO RPG — Практическое руководство» вы получите ответы на эти и многие другие вопросы. Все цифры настоящие. Все схемы, таблицы, исходный код, диаграммы баз данных и т.д. Взяты из реального рабочего проекта.
Текст будет содержать много ссылок на игровой процесс и внешний вид нашей игры Star Ghosts. Я постараюсь подать материал таким образом, чтобы не было необходимости вникать в (и воспроизводить) наш продукт, но для лучшего понимания материала желательно выделить пару минут и посмотреть, как все это выглядит.
Готовый? Тогда поехали!

Трудозатраты

Начнем, пожалуй, с самого интересного: со стоимости разработки. На диаграмме (см. Рисунок 1) показаны затраты в процентах от общего бюджета проекта. В расчете не учитывается стоимость офиса, амортизация оборудования и налоги.

изображение

Как видите, строительство клиента было самым дорогим. И это неудивительно, учитывая, что игра работает в реальном времени и использует 3D. Второе место занимает сервер, и это тоже ожидаемо. Что неожиданно, так это высокие эксплуатационные расходы и низкие затраты на 2D и 3D графику. «Может, графика простая?» — ты говоришь. Абсолютно нет: геймерам нравится графика. Главное — активно использовать аутсорсинг для создания графики. Нам удалось значительно снизить затраты на производство графики, но, конечно, эксплуатационные расходы увеличились. Благодаря этому общий бюджет проекта был сокращен почти на 10%. Но дороговизна игрового дизайна — наша ошибка. Изначально мы неправильно оценили силу и стоимость разработки, поэтому нацелились на то, что не смогли сделать. В результате пришлось 3 раза переделывать сюжетную линию, несколько раз менять боевую систему, переделывать макеты интерфейса и так далее. При более трезвой первоначальной оценке, я думаю, можно было бы сократить стоимость игрового дизайна вдвое (или 5% от общего бюджета проекта).

Мы передали на аутсорсинг концепт-арт и создание 3D-моделей, и первое оборудование линейки (например, турель 1-го и 20-го уровней) обязательно производилось в офисе. А вот остальное (башенки 40-х, 60-х и 80-х годов) — и концепции, и 3D-моделирование были переданы на аутсорсинг. Потому что? В офисе, прежде всего, идет поиск концепции и ее 3D визуализация. И, как и любая исследовательская работа, требовала высококвалифицированных (а значит, и дорогих) специалистов. А как только форма найдена, производство можно безопасно отдать на аутсорсинг.
Кроме того, создание видео, дублирование, музыкальное оформление, создание звука и верстка сайта были полностью переданы на аутсорсинг. Нам не нужно было так много контента такого типа для нашей игры, поэтому нанимать людей не было смысла. А наши попытки передать часть программного кода на аутсорсинг (в виде финальных работ) не увенчались успехом, поэтому вся часть программного обеспечения была полностью написана нашими собственными силами.

Еще одна цифра на графике может показаться странной: стоит всего 1% теста. Основной вклад в тестирование внесли сами игроки на этапах от альфы до открытой беты, и мы заплатили им апседиумом (премиальная внутриигровая валюта). Таким образом, удалось значительно снизить реальные денежные затраты.

Состав команды

Над проектом постоянно в офисе работали пять человек. Примерно за 2 месяца до альфы мы привели в офис еще двух тестировщиков, работающих неполный рабочий день, но они работали с нами недолго — около трех месяцев каждый (или 1,5 человеко-месяца каждый). Начиная с закрытого бета-тестирования, мы смогли полностью передать тесты удаленным тестировщикам — одни за реальные деньги, другие за игровые.

В таблице (см. Таблицу 1) показан состав команды, их роли и общая стоимость работ. Каждая строка таблицы — это человек, который может одновременно совмещать несколько функций. Затраты на оплату труда указаны от начала работы (подготовка первых документов и создание демо) до выпуска продукта.

  1. Оцените свои сильные стороны и спланируйте бюджет максимально реалистично. В противном случае вы потратите дополнительные деньги и в конечном итоге создадите менее успешный продукт, чем могли бы.
  2. Получите максимальную отдачу от аутсорсинга для производства контента. Для офисных сотрудников оставляйте только интересные, критичные по времени или качественные исследовательские работы.
  3. Старайтесь минимизировать размер своей команды, но нанимайте только талантливых и высококвалифицированных людей.

Схема системы и план разработки

Технически Star Ghosts — это браузерная игра. Но веб-часть работает на Adobe Flash и использует соединение через сокет. Следовательно, по сути, это игра клиент-сервер, только клиент загружается прозрачно для пользователя. Какие составляющие игры? Казалось бы, все должно быть просто: и с клиента, и с сервера. Но на самом деле (см. Рис. 2) все немного сложнее.

изображение

Мы придерживаемся следующего порядка разработки:

  1. Главный заказчик
  2. «Пробирка» для 3D людей.
  3. Основной сервер
  4. БД
  5. Панель администрирования (в части: создание предметов, локаций, ботов)
  6. Автоматические скрипты
  7. Чат-сервер
  8. Администратор (все остальное)
  9. Драйвер платежной системы
  10. Драйверы провайдеров трафика
  11. Веб-сайт
  12. Рег сервер и клиент рег
  13. Драйвер социальной сети (авторизация).

Эта процедура позволила нам получить работающую систему на ранних этапах разработки и протестировать на ней некоторые концепции.

Ниже я дам краткое описание каждого из компонентов, для общего понимания системы, после чего мы подробно остановимся на каждом из них.

Этап 1. Сначала был разработан прототип игры без сервера, но который включал почти все технологии, предназначенные для использования в клиенте, а именно: Adobe Flash, Adobe Away3D, Adobe Starling. У нас было пространство, где пользователь управлял одиноким кораблем. На этом прототипе мы запустили базовую систему для расчета кривой смещения корабля, пространственного смещения (параллакса) и проверили возможности рендеринга моделей на текстуре. В целом, мы протестировали все узкие места, которые видели на ранних этапах разработки, и примерно поняли, как все это будет для нас. Это позволило сделать вывод о возможности технической реализации задуманного, а также предоставило демонстрацию, с которой можно было выйти к инвесторам.

Этап 2. После утверждения технического задания мы разработали технические требования к 3D-моделям — на этом этапе мы уже имели представление о внешнем виде, платформе и движке игры. Кроме того, мы создали «пробирку» для 3D-людей — отдельный инструмент, в который можно загрузить 3D-модель и посмотреть, как она будет выглядеть после рендеринга в Away3D. Дело в том, что после экспорта непосредственно в движок модель выглядит несколько иначе, чем инструмент моделирования. Поэтому для нашего художественного отдела, и особенно для арт-директора, было чрезвычайно важно увидеть, как на самом деле, как он сказал, «сузить сюжет». Здесь сразу оговорюсь: в процессе работы мы перешли на новую версию Away3D, в которой шейдеры были другими, и это привело к изменению отображения моделей. Пришлось снова «подтягивать сюжеты». Отсюда можно сделать два очень важных вывода: во-первых, требуется, чтобы текстурщики отсортировали файлы текстур, расположили все по слоям с человеческими именами, чтобы через шесть месяцев другой человек мог открыть файл и найти нужный слой, и, во-вторых, все «Подтягивания» делают графики не сразу по готовности, а ближе к концу проекта.

Этап 3. Затем мы приступили к созданию сервера и сетевой части в клиенте. В качестве языка программирования был выбран C ++, потому что у нас уже были разработки и собственные библиотеки на этом языке. На этом этапе сервер работал без базы данных, загружал данные из файла XML. Цель этого этапа — протестировать выбранные серверные технологии, а также дать гейм-дизайнеру и всей команде возможность играть онлайн. Здесь важнее всего проверить, при каком максимальном пинге еще можно играть в игру. То есть нужно выяснить, можно ли играть в сети или все так запутано, что играть невозможно. На этом этапе наши корабли даже не могли стрелять, мы просто летели один за другим и тестировали разные алгоритмы синхронизации.

Фаза 4. Итак, итеративная разработка клиента и сервера продолжается уже некоторое время. Первым делом появилась XML-конфигурация оборудования, чтобы геймдизайнер мог проверить параметры орудий и кораблей. Также на этом этапе было множество экспериментов, создание различных видов оружия и поиск боевого механизма.

Фаза 5. Когда игровая механика более-менее стабилизировалась, появилась возможность подключить базу данных к серверу. В качестве СУБД был выбран MySQL. Подключение означало, прежде всего, передачу загрузки данных об оборудовании из файлов XML в базу данных, а также загрузку и сохранение статуса пользователей. Конечно, было необходимо создать административную панель, которая позволяла бы разработчику игры создавать / изменять объекты и места. Панель администратора написана на PHP. Когда не было необходимости редактировать файлы XML, дизайнер игры был очень доволен, и процесс заполнения игры объектами и местами стал прогрессировать намного быстрее.

Этап 6. По мере усложнения проекта мы столкнулись с тем, что создание каждого нового пакета вручную занимало много времени и приводило к ошибкам. Поэтому, опять же, на PHP был написан сценарий, который принимает XML-файл и из него генерирует файлы исходного кода для клиента и сервера (и, следовательно, для сервера чата). Похожая проблема возникла и у геймдизайнера: по мере того, как ассортимент предметов рос, управлять ими и изменять их стало чрезвычайно сложно. Поэтому для него было написано множество скриптов, что позволило легко сгенерировать сразу всю строку статей.

Шаг 7. Изначально мы будем использовать чат-сервер IRC. Там все казалось простым и вопрос в чате отложили. Но когда пришло время создавать чат, оказалось, что интегрировать IRC-сервер с нашей системой не так-то просто. Ведь нам нужно не только разрешение, но и система модерации, а также отображение конкретных данных в чате: уровень, клан и т.д. Мы обнаружили, что проще написать собственный чат-сервер, чем модифицировать IRC-сервер. Фактически, на клиенте потребовалось меньше времени для интеграции с нашим сервером, чем на IRC, поэтому это решение было исправлено.

Фаза 8. Мы приближаемся к закрытому бета-тестированию (Closed Beta Test). Стало очевидно, что потребуется сбор статистики. Улучшения коснулись сервера и базы данных, а также отображения в панели администрирования. Работы было много, но в основном рутинная, за исключением дизайна базы данных.

Этап 9. После закрытого бета-тестирования мы исправили ошибки и внесли некоторые изменения, после чего начали подготовку к открытому бета-тестированию (OBT). Конечно, нужно было реализовать возможность приема платежей. Эти улучшения коснулись клиента, сервера, базы данных, а также пришлось создать специальный скрипт. Здесь опять же никакой особой магии — все о PHP.

Шаг 10. Пора разобраться с поставщиками трафика. Мы работаем с ними по двум схемам: фиксированная стоимость в месяц вне зависимости от количества переходов / регистраций или оплата за регистрацию (CPA). Для работы по модели CPA необходимо было выполнить интеграцию с API этих провайдеров трафика. Улучшения коснулись клиента, сервера, базы данных, веб-сайта и панели администрирования (фильтры в статистике).

Фаза 11. Непосредственно перед OBT мы создали сайт игры (во время CBT игроки переходили на страницу с Flash, а регистрация и вход были реализованы во Flash). На интеграцию игры с базой форумов, чтобы обеспечить сквозной доступ к форуму / игре, потребовалось больше времени.

Фаза 12. После OBT и нагрузочного тестирования мы обнаружили, что переливать трафик на основной игровой сервер — плохая идея. Дело в том, что объем трафика во многом зависит от времени суток. А в часы пик может доходить до ста запросов в секунду. Наши игроки прыгали прямо в игру, для каждого нового игрока создавался отдельный инстанс. Это создавало очень большую нагрузку на игровой сервер и вызывало задержки. Поэтому был создан специальный сервер регистрации (фактически, другой экземпляр основного сервера, но запускаемый со специальным ключом, поэтому он загружает только места регистрации) и отдельный клиент, на котором игрок играет только до регистрации (после чего он перенаправляется к главному серверу). Кроме того, мы уменьшили объем данных, загружаемых в клиент регистрации, так как мы точно знали, что нужно игроку. Это сократило время загрузки клиента и решило проблему с задержками на главном сервере, а также сделало систему масштабируемой: при необходимости мы можем развернуть не менее сотни отдельных серверов записи.

Фаза 13. Непосредственно перед выпуском была добавлена ​​интеграция с социальными сетями, то есть возможность авторизации через социальные сети. Это увеличило конверсию рефералов в регистрацию примерно на 10%.

Источник

Наш список лучших ролевых игр (ТОП 40 ролевых игр) был дополнен и отредактирован экспертами по ролевым играм среди читателей, мы добавили культовые игры, а лишние были удалены.

Fallout 1-2

  • Жанр: RPG
  • Разработчик: Black Isle Studios
  • Дата выпуска: 1997-1998 гг
  • Платформы: ПК

Серия игр, в которых каждая часть считается культовой. Сюжет основан на постапокалиптическом мире, пережившем ядерную войну. Здесь главному герою предстоит отправиться в безжизненные пустоши. На его пути встречаются трудности: от радиоактивных крыс до мутантов, заполнивших этот и без того опасный мир. Однако в борьбе с ними вам поможет целый набор инструментов: развитие персонажей, компаньоны и просто куча всяких вещей, разбросанных по месту. Если говорить о сюжетной составляющей, обязательно выделять диалоги, каждая строчка которых влияет на мир и отношение его жителей к вам.

Даже с учетом устаревшей графики, отличной ролевой составляющей, сюжетной линии и самого мира можно передать атмосферу постапокалипсиса, покорившую сердца многих фанатов.

Источник

На нашем сайте вы можете бесплатно скачать ролевые игры через торрент последней версии. Регулярные обновления новых версий каждый день!

Обновлено до 1.0.1.B227.R55294

Disciples: Liberation — пошаговая стратегическая ролевая игра, разработанная Frima Studio. Его выпуск намечен на четвертый квартал 2021 года. Анонсируйте более 80 часов трехактной кампании, которая погрузит игрока в атмосферу.

Rust (Раст) — интересная игра в онлайн-режиме. Придется выжить в самых суровых условиях. Вы окажетесь на острове, населенном страшными существами и игроками, которые легко могут стать вашими противниками. Ваши свирепые враги.

Источник

И вообще, что это за настольные РПГ?

А не встретиться ли нам?

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

В 2011 году Rolecon прошел в Москве, собрав 350 человек. Фестиваль был посвящен исключительно настольным ролевым играм и, помимо игровых сессий, в «Ролеконе» прошли мастер-классы, дискуссии и тематические презентации. Все это пришло по вкусу игрокам. Конечно, «Ролекон» напоминал аналогичные мероприятия в западном стиле: организаторы не скрывали, что их вели GenCon и Penny Arcade Expo. С тех пор прошли еще два «больших ролекона» (последний собрал более 500 человек) и множество однодневных «мини-ролеконов», которые были не столько условностями, сколько игровыми комнатами.

«Ролекон»

Ролекон проводится в Москве с 2011 года (Фото: Денис Антонов)

Вслед за московским «Ролеконом» конференции стали проводиться и в других городах. В Санкт-Петербурге появился Ролекон-Север, в Екатеринбурге — Рикон, Новосибирск-Томский Дунгетто выходит из тени, на конференциях живых ролевых игр типа Зиланткон и настольных игр типа Мипла, секции настольных ролевых игр активирован. В 2014 году «Игрофест: активация» прошла в Красноярске. Практически в каждом большом городе есть свое убежище, которое постепенно поднимается с диванов дома и проводит игры для начинающих и не только.

Настольные ролевые игры явно больше не являются второстепенным хобби для компьютерных фанатов. Это очень разнообразное явление и, пожалуй, каждый сможет найти в нем что-то интересное только для себя — будь то игра воображения, увлекательный сюжет или методичная «прокачка» персонажа.

Над текстом работали: Роман Броницкий, Ольга Мыльникова, Алексей Шлыков, Андрей Воскресенский, Виталий Федосеев, Александр Стрепетилов, Максим Мухамедов

Источник

Оцените статью
Новости, гайды, обзоры, рецензии все о лучших компьютерных играх