85

Онлайн браузерка ресурсами одного человека

Всем привет! В этом посте я хочу рассказать о том, как я разрабатывал онлайн-игру, а также поделиться результатом своей работы для обсуждения/критики/предложений. Итак, игра - 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

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

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

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

0
Автор поста оценил этот комментарий
Если дело в некорректном нике - форма должна выводить что-то вроде "данное имя уже занято, выберите другое", а не "ошибка сервера".
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

В случае дубликата ника/емэйла подобная ошибка и отдаётся. Спрашивая про ник я хотел узнать на каких данных происходит непредвиденная ошибка, которая и обрабатывается сообщением "Ошибка сервера".

На текущий момент проблема найдена и исправлена и, как выяснилось, она была не в вводимых данных.

показать ответы
0
Автор поста оценил этот комментарий

Что с моей почтой может быть не так?

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

нужно видеть почту - она здесь замазана :)

0
Автор поста оценил этот комментарий

Баг с хп на последнем уровне

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

поправил

0
Автор поста оценил этот комментарий

Блин, да я в этой игре просидел больше, чем в CS за три месяца)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Дело за малым - нужно привлечь в игру большей людей, чтобы тебе было в ней нескучно :)

0
Автор поста оценил этот комментарий

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

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

поправил - теперь ошибки при регистрации не будет

2
Автор поста оценил этот комментарий

при регистрации пишет "Ошибка сервера"

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

сейчас такой проблемы быть не должно

1
Автор поста оценил этот комментарий

@taurenstyle, что было бы неплохо поправить:

1) для быстрых слотов (D и F) задать возможность брать по 2 одинаковых (по мнению играющего) перка (лечение или ускорение): я например "иду на бой" и мне нафик не нужно ускорение, а вот 2 лечилки - самое оно!

2) НЕ МЕНЯТЬ местами в быстрых слотах перки при использовании: D - лечилка, F - ускорение; использовал лечилку - хоба, ускорение уже в D. Или так задумано?

Остальные ошибки уже упоминали.

А в целом - прикольная убивалка времени.


А, да, ещё прикол заметил, во многих сетевых играх такая тема: на меня напали/я напал на игрока - жаркий бой, гранаты/огнемёты, у моего противника здоровье на минимуме, хоба - ливнул.

Как с такой темой будешь бороться и будешь ли?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
0
Автор поста оценил этот комментарий

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

Так же стоит добавить минибоссов для коллективного кила.(или "омут" для портала к индивидуальному минибоссу?).

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
0
Автор поста оценил этот комментарий
Ну ты понял
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да, до адаптивной вёрстки или мобильной версии пока руки не дошли. Для мобилок в целом нужна более простая версия игры - тяжеловато будет в мобильный интерфейс впихнуть использование 6-ти абилок и сделать это так, чтобы игроки с декстопа не имели преимуществ.

2
Автор поста оценил этот комментарий

при регистрации пишет "Ошибка сервера"

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

какой ник ты пытался ввести?

показать ответы
1
Автор поста оценил этот комментарий

Вместо игры Умиротворённый Лось увидел только черный экран со значком выхода

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

не подскажешь какая у тебя операционка и браузер?

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества