Онлайн браузерка ресурсами одного человека
Всем привет! В этом посте я хочу рассказать о том, как я разрабатывал онлайн-игру, а также поделиться результатом своей работы для обсуждения/критики/предложений. Итак, игра - World of Frogs
Немного предыстории:
По профессии я back-end разработчик, пишу на C#, работаю в сегменте разработки enterprise приложений. Но шарпистом-бэкендщиком я был не всегда - я увлёкся разработкой, участвуя в развитии одного из многочисленных пиратских WoW-серверов из славного Новосибирского Академгородка. Когда в 2011 году я решил начать работать, то, оценив рынок вакансий в своём городе, я пришёл к выводу, что пробиться в серьёзный геймдев вряд ли выйдет, а потому нужно копать в сторону c# или java и уже совсем в другой области. Так я на 5 лет забыл про то, чем так увлекался и что побудило меня войти в сферу IT.
Идея пришла мне в голову около года назад, после того как приехавший ко мне в гости друг показал нашумевший slither.io - тогда мне очень понравилась идея онлайн (что всегда интересней), полностью браузерной (чистый html + js - никаких флэшей) игры с низким порогом вхождения, весьма залипательной, но при том выглядящей достаточно просто для того, чтобы потянуть усилиями одного человека.
Идея зрела не один день, пока не вылилась во что-то конкретное - решил я, что формат должен быть похож на выше упомянутую игру-вдохновитель, но при этом мне хотелось принести некий кусочек чего-то подобного на WoW - набор опыта, рост по уровням, изучение способностей, PvP, PvE. Почему в качестве главного героя я выбрал лягушку? - этого я, честно говоря, уже и не помню. Вероятно, потому что лягушки прикольные :)
В качестве иных обитателей болота были выбраны тараканы и мухи.
Начать я решил с той части, опыта в которой у меня меньше всего, но которая видна пользователю в первую очередь - интерфейс игры. В качестве графического движка был выбран phaser.js, как выглядящий наиболее развитым и документированным среди бесплатных библиотек. В пэйнте была нарисована лягушка, которая в раскадровке выглядела вот так:
Осваивая движок, я научил лягушку ходить, прыгать и бить языком
Нарисовав также муху и таракана, я приступил к разработке серверной части, заранее обдумав то, как справляться с большим количеством игроков.
После чуть более чем полугода активной разработки по вечерам и выходным, после множества оптимизаций и решения моря проблем, я имел рабочую игру, с весьма страшненьким сайтом и непрофессиональными моделями игровых персонажей.
Т.к. мне хотелось, чтобы игра осталась не просто домашним проектом для саморазвития, но и также была интересна окружающим, было решено сформировать заказ для фрилансера, чтобы тот заново нарисовал игровых персонажей, элементы интерфейса игры, а также дизайн главной страницы. Модельки стали выглядеть так:
Для упрощения процесса вхождения в игру на главную страницу было добавлено обучающее видео, а в игре изучение новых способностей стало сопровождаться вот такими тултипами:
Для того, чтобы избавить игрока от лишних телодвижений и ввода ненужной информации, первоначальный вход в игру был реализован с главной страницы по одному нажатию кнопки мыши. Но т.к. онлайн-игра, как правило, предполагает возможность различать игроков между собой, был введён механизм генерации ников в виде случайного сочетания прилагательного + существительного из заранее заданного словаря. Как результат, незарегистрированному игроку может выпасть ник вида Могучий Бурундук, Жадный Лось, Дрожащий Тапок, Грозный Орангутан и т.п. :)
Анонимно зашедший игрок в дальнейшем может зарегистрироваться, чтобы не потерять набранный прогресс, а также выбрать более человеческий ник.
Для более комфортного привыкания к игре, было выключено нападение агрессивных NPC на игроков ниже 3-го уровня. Помимо этого убийство низкоуровневых игроков не приносит опыта, а убитые, в свою очередь, не теряют свой опыт.
На текущий момент под нужды проекта было арендовано две слабенькие виртуалки, которые в теории позволят держать суммарный онлайн в районе 600 человек. В случае необходимости можно докупить ещё серверов - архитектура приложения заточена под горизонтальное масштабирование.
Планов по развитию игры у меня миллион, лишь бы был интерес со стороны игроков.
Текущую версию публикую, чтобы получить фидбэк и, в случае необходимости, скорректировать вектор развития проекта.
Посмотреть игру можно на её сайте: http://frogs.world
Для обсуждения проблем, внесения предложений и иных фидбэков была создана группа в VK: https://vk.com/frogs.world
Лига Разработчиков Видеоигр
7.5K постов22.6K подписчика
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"