Забыли пароль?
Регистрация
Как написать собственную браузерную RPG?
04.09.2024 08:36:48
О, на web.archive.org нашел и свою самую первую статью!

Как написать собственную браузерную RPG?

Такой запрос я выполнил в Google перед тем, как решиться написать этот пост. Ответы нашел разные, от «молча» и «о, в этом топике можно поглумиться» до реальных примеров кода с алгоритмами на PHP, предложений структур баз данных и даже книг, обещающих, что после прочтения вы напишете отличную игру.

В книги подобного рода я не верю, напоминает серию «похудей за 5 дней». Прикинув, сколько усилий нужно приложить для того, чтобы ходить по интернету, собирать чужие алгоритмы, разбираться в каждом конкретном куске кода, структурах баз и пытаться все это поженить вместе, я пришел к выводу, что этот вариант крайне неэффективен и вряд ли даст на выходе что-то серьезное. Плюс меня скорее интересовали не технические моменты реализации, потому как совершенно понятно, что, чтобы написать игру, нужно быть программистом, а скорее весь процесс от начала до конца: с чего начать? где взять идеи? как сделать игру интересной? сколько нужно людей? а денег? как привлечь игроков?

В этом посте я расскажу реальную историю создания игры одним человеком за 3 (!) месяца. Сегодня в нее играют 200 человек, в Харцызске расписаны стены домов, а по Черновцам ездят такси и маршрутки с рекламой игры. 3 месяца назад еще не было даже идеи.

С чего начать?

С идеи. Понятно, что в наше время ничего нового уже никто не придумывает, все улучшают существующее, соответственно залог успеха — взять несколько удачных идей, объединить их вместе и создать что-то уникальное. Я заядлый геймер и поиграл в огромное количество игр на своем веку, соответственно за идеями далеко в карман лезть не пришлось. Больше всего мне нравились RPG, стратегии, игры типа Fallout, UFO, Red Alert. Отличные хиты своего времени, но представьте, сколько времени и средств было потрачено на реализацию? У меня таких денег нет, нужно что-то проще... В чем я хорошо разбираюсь и у меня есть опыт? В web-приложениях, значит будет браузерная RPG с элементами стратегии и пошаговым ведением боя. Отлично!

Поехали дальше... Какое выбрать время? Погуглив на предмет похожих игр, сложилось впечатление, что выбор довольно большой, но почти у всех фэнтези (орки, эльфы и прочая нечисть). Будем делать будущее! Далекое? Нет, совсем фантастика мало кому понравится, но и без нее не обойтись. Пусть будет 2086-й год, просто с потолка.

Придумывать для RPG статы не нужно, везде они примерно одинаковые, соответственно берем стандартные: силу, скорость, защиту, живучесть и т.д. и т.п. Система их взаимодействия тоже везде примерно одинакова, похоже, здесь проблем нет, едем дальше...

История игры

Что происходит и зачем? На мой взгляд, чем ближе к реальности — тем лучше, от фантастики народ уже устал. Берем мир, делим на страны, объявляем власть в каждой стране (кланы) и наделяем их возможностями: установление законов, сбор налогов с крафтеров и т.п. При такой идее автоматически получаем конфликт между кланами. Отлично, вот и есть ради чего играть!

Теперь как же объяснить виртуальные возможности, недоступные в реальной жизни. В последнее время популярна тема наномашин, ее и возьмем.

Все, идея готова! На создание ушел один день.

2086 год

После неудачных испытаний с нанобомбой почти все человечество было уничтожено. Оставшиеся в живых настолько ослаблены, что самостоятельное существование кажется невозможным. Исчезнувшая цивилизация оставила после себя разработки в таких передовых технологиях, как генная инженерия и нанотехнологии, и с помощью оставшихся знаний и наработок была создана система Genesyx, подключившись к которой человеческое тело снова обретает возможности, необходимые для выживания. Достигается это за счет внедрения в тело человека наномашин, поддерживающих жизненные процессы и развивающих различные навыки (силу, скорость и т.п.). Под их управлением находится все: физическое и психологическое состояние, реакция на внешние раздражители и даже чувства. Даже обыденное оружие и амуниция попали под управление наномашин, позволяющих их владельцам получить еще больше навыков при использовании. Сами наномашины управляются системой Genesyx, но игрок может воздействовать на их поведение, используя карманный компьютер и свою биоэнергию, необходимую для работы Genesyx.

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

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

Начинаем разработку (середина октября)

С идеей определились, что делать понятно, осталось сделать. Для реализации я выбрал следующие технологии:

— ASP.NET
— JavaScript
— MS SQL

Почему именно их? Просто потому, что много опыта именно в этих областях, и они явно подходят для больших нагрузок (а нагрузки будут очень большими).

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

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

Я выбрал второй вариант, т.к. решил делать сразу хорошо и не идти на компромиссы. Обошлось в 20000 р. и месяц работы, но устроило все! (найти можно намного дешевле, в зависимости от того, чего хочется получить в результате).

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

— Форма регистрации — полдня
— Форма входа — полдня
— Окно чата — 1 день
— Окно отправки сообщения в чат — 2 часа
— Список игроков — 2 часа
— Окно информации о персонаже — 2 дня
— Создание заявок на бой — 1 день
— Автоматическое восстановление жизни и энергии — 2 дня (тут пришлось реализовывать восстановление как на клиенте, так и на сервере, чтобы, с одной стороны, не было нагрузки при обновлениях и, с другой стороны, невозможно было читить с клиента).

Для запуска первой версии не хватает только одного: боя. Вот тут мозгу пришлось покипеть, т.к. раньше ничего подобного делать не приходилось. Во-первых нужно сделать рандом, причем не просто случайные числа, а рандом, зависящий от вероятности (пример: есть 50 силы, но насколько сильным будет урон, должно зависеть от другого стата «кулачный бой»). Покопал интернет, понял, что будет очень непросто. В итоге придумал довольно простой алгоритм сам. Дальше... попал или не попал? Еще один рандом с вероятностью, выдающий 0 или 1. Математики скажут «читай литературу, давно все придумано». Это правда, но поймут, что там написано, только математики . В результате алгоритмы были придуманы, бой был реализован. На все про все 3 дня (естественно, с кучей багов, но кого это волнует на данном этапе?).

Для запуска не хватает только дизайна. Регистрирую домен, покупаю виртуальный хостинг, выкладываю все в интернет. Далее зову пару друзей попробовать поиграть. В ответ получаю кучу фидбека: тут слишком часто обновляется, там мелькает, тут стат странно работает, в чате хочу такую-то феньку и т.п. Отлично! Докручиваем все мелочи, чиним самые серьезные баги.

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

После получения дизайна 3 дня уходит на вырезание картинок из PSD-шника и верстку.

В календарных днях на все вышеперечисленное ушло полтора месяца, ведь основную работу никто не отменял, соответственно время есть только по вечерам и на выходных.

Все, готов к запуску.

Первый старт (конец ноября)

Здесь все просто. Идем в игру похожего жанра и зовем пару друзей или просто знакомых. У меня таких было много, парочку я позвал. Разумеется, всем сразу понравится то, что админ — знакомый человек, с которым он давно играет в другом проекте и может наделить нереальными возможностями. Тут важно управлять ожиданиями: если всем все раздавать, серьезные ништяки игры сразу обесцениваются, соответственно договариваемся о чем-то конкретном: ты играешь, качаешься до 5 уровня, сообщаешь мне о багах и получаешь именной предмет в подарок после выполнения. Дело в шляпе. Человек начинает качаться, ему становится скучно, т.к. в игре больше никого нет, он зовет друзей. Пока несколько человек качаются и соревнуются в получении уровня, чиним найденные баги и докручиваем функционал, который просят игроки. В моем случае сразу захотели оружие, соответственно был сделан оружейный магазин, возможность покупки, одевания/раздевания и влияния статов оружия в бою. Итого неделя.

А дальше-то что? Вот это промах, оружие-то никто не нарисовал. Идем к фрилансеру, делаем заказ, ждем две недели, в процессе кормим игроков обещаниями. Чтобы совсем не потухли и не ушли, кидаем рекламу в паре похожих проектов. Резко наваливается куча игроков, все начинает серьезно тормозить, некоторые начинают в чате ругаться матом. В итоге к постояльцам всего +2 игрока... Но! Хостер кричит, что приложение нагружает сервер, и просит свалить нафиг. Арендуем выделенный сервер (6000 р. в месяц), смотрим, где провалы, оптимизируем.

Продвигаем (начало декабря)

Игра запущена, и доказано, что все работает, но играет всего 5 человек. Пора начинать пиар. Идем в похожие проекты и на тематические форумы и получаем кучу регистраций. Но вот беда, все уходят! Почему? Потому что игроков в чате мало, воевать не с кем и никто никого ждать не хочет. Логично, нужны боты! Здесь еще раз вскипел мой мозг, пришлось реализовывать алгоритм поиска пути на карте. Все довольно просто, но с непривычки тяжко. Через пару недель появляются боты, маскируем их под реальных игроков: пусть сидят в чате, создают сами заявки и принимают созданные. Вроде должно сработать. Повторяем рекламу в проектах и на форумах, народ подтягивается, многие уходят, т.к. функционала мало, но и многие остаются! Появляется пара энтузиастов, поверивших в будущее проекта, просим их тупо сидеть постоянно в игре и поддерживать жизнь в чате, соглашаются. Пару раз повторяем рекламу в других проектах (это все делают ) и получаем еще несколько игроков, готовых подзадержаться. Объявляем конкурс на лучшего рекламщика, обещаем игровую валюту и именные предметы за привлечение игроков. Через несколько дней уже 20 активных игроков. Дело пошло, супер!

Разумеется, в процессе происходит постоянная дописка функционала, разработка оружия и прочего.

Подошел Новый год, все хотят халявы, почему бы и нет? Делаем двойной опыт за бои и хорошие подарки на Новый год. Всем очень нравится, и все больше игроков остается! На новогодних каникулах можно отдохнуть от работы и полностью посвятить себя приданию хорошего ускорения игре: народ просит моды в вещи и профессии, а также кучу прочих мелочей. Реализуем по мере возникновения спроса. Одновременно начинают появляться противники проекта, кто-то ругается матом, кто-то рекламирует другие проекты. Надо что-то делать.

Отдохнем от функционала, в игре должно быть приятно находиться

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

Ну есть 100 игроков, а дальше что?

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

Послесловие

До создания игры я долго думал, стоит ли овчинка выделки и что конкретно я один буду делать, было совершенно не понятно, ведь проект огромный. Статей, способных развеять мои сомнения, я не нашел и решил попробовать сам. Читатель сможет использовать опыт и будет понимать, чего ожидать, в каком направлении двигаться и как расставить приоритеты.

На сегодняшний день игра находится примерно в состоянии, описанном выше. Активных игроков — в районе 200 и 10–30 новых регистраций ежедневно.

Речь идет об игре Genesyx.

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

Продолжение следует...



20.09.2026 _ФаНтоМ_ заработал 355522 опыта за последние сутки.
17.09.2026 _ФаНтоМ_ первым достиг 26 уровня.
15.09.2026 CyberNemesis заработал 3759 опыта за последние сутки.
14.09.2026 Самый мощный игрок недели - bug (максимальный рейтинг: 3840.6)
14.09.2026 bug заработал 1 тактических очков за последнюю неделю.
14.09.2026 bug добыл 1 находок за городом за последнюю неделю.
14.09.2026 Insight заработал 667 опыта за последние сутки.
13.09.2026 bug заработал 3321 опыта за последние сутки.
12.09.2026 Киборги отстояли свою базу и ликвидировали группу атаковавших бойцов.
12.09.2026 bug получил 3 ранг фракции Легион чести.
12.09.2026 bug получил 2 ранг фракции Легион чести.
12.09.2026 bug пополнил ряды фракции Легион чести.
12.09.2026 bug вышел из рядов фракции Серый батальон.
12.09.2026 bug заработал 74294 опыта за последние сутки.
10.09.2026 База киборгов 1 уровня пала под натиском наших бойцов.
10.09.2026 База киборгов 1 уровня пала под натиском наших бойцов.
10.09.2026 База киборгов 2 уровня пала под натиском наших бойцов.
10.09.2026 Атака базы киборгов завершилась ничьей. Атаковавшая ее группа была ликвидирована.
09.09.2026 _ФаНтоМ_ заработал 3700 опыта за последние сутки.
08.09.2026 *Katenok* заработал 60 опыта за последние сутки.
Начать игру
Рейтинг игроков
Сентябрь 2026


меф. 25
Dogma 22
Нахал 21
Moff 15
*Katenok* 15
тест пушки 27
исток 22
ALIEN2005 14
meenus 24
~PioneR~ 24
Рейтинг кланов
Сентябрь 2026


20 Полиция 0.0
18 ANGELS 0.0
16 Волчья Стая 0.0
14 Resident Evil 0.0
12 Alkatraz 0.0
10 Legion 0.0
8 Мафия 0.0
6 Сектор 13 0.0
Все кланы
Чемпионат
Июнь - Август


Сектор 13 0 (0, 0)
Мафия 0 (0, 0)
Legion 0 (0, 0)
Alkatraz 0 (0, 0)
PHOENIX 0 (0, 0)
Resident Evil 0 (0, 0)
Гринпис 0 (0, 0)
Avengers 0 (0, 0)
Волчья Стая 0 (0, 0)
Эволюция 0 (0, 0)
Все кланы
Союзы


Titanium
Nuntios Caeli
Bang!
Социальные сети


Группа ВКонтакте
Дневник разработчика