Лучшие статьи и кейсы стартапов
Включить уведомления
Дадим сигнал, когда появится
что-то суперстоящее.
Спасибо, не надо
Вопросы Проекты Вакансии
Игра мультиплеер. Захвати чужой флаг и защищай свой
Рекомендуем
Продвинуть свой проект
Лучшие проекты за неделю
31
Эбиа

Эбиа

www.ebia.ru

16
Enlite

Enlite

enlited.ru

16
Amarket

Amarket

amarket.io

13
likearea

likearea

smm.li

12
RockinRobin

RockinRobin

www.rockinrobin.co

11
Perezvoni.com

Perezvoni.com

perezvoni.com

10
Cookiezz

Cookiezz

cookiezz.com.ua

10
Битрикс24

Битрикс24

www.bitrix24.ru

10
MuWID

MuWID

muwid.ru

Показать следующие
Рейтинг проектов
Подписывайтесь на Спарк в Facebook

Тестирование игры

59 0 В избранное Сохранено
Авторизуйтесь
Вход с паролем
Недавно пришла в голову идея сделать игру. Почему бы и нет? В итоге получилась такая мини игра

Идея игры витала давно, но в итоге решился воплотить ее, заодно разобраться немного с nodejs и сокетами.

В итоге вышла игра - http://flagger-game.com/

Прошу всех зайти, попробовать и отписать общее впечатление.

А теперь подробнее.

В некоторый день Х пришло осознание того, что по работе делать нечего до осени. И выходит что остался один на один со своими проблемами, нужно было чем-то себя занять и ничего лучше, кроме как сделать игру в голову не пришло. :(

Начав гуглить тему nodejs+игры наткнулся на несколько статей в том числе на хабре как ее сделать. Начал делать и честно говоря первая версия, в которой можно было бы просто двигаться.. и все. выглядела она так:

b_57a4c35347747.jpg

Просто ездили 2 квадрата по полю.

Но уже тогда, обмен с сервером шел на скорости 0.7мбит/с.

Тогда уже пришло понимание что игра собранная из кусков кода stackOverflow и гугла работать нормально не может.

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

Старался писать правильно, тем самым вышло так, что все объекты на карте имеют свой метод "Обновись" который зависит от dt. DT - интервал между обновлением. Тем самым скорость обновления элементов не зависит от скорости вызова их. То есть если пуля должна лететь со скоростью N/с , она и будет лететь вне зависимости от частоты обновления, просто чем дольше обновление - тем больше рывок.

Основной костяк игры собрался где-то за дня 4, были баги/глюки но в итоге большую часть постарался починить.

Выгрузил все на сервер.. и... лаги! Сервер ВПС дешевый, всего за 2$ и обмен с клиентом на скорости 30kb/s уже доставлял нагрузку на сервер, а точнее ВПС просто неуспевал все просчитывать и обновлять.

Пришлось оптимизировать часть расчетов и сделать реже отсылку ненужной инфы на клиент.

В итоге сейчас клиент/сервер работают в idle на скорости 0.08мбит, что в "теории" позволяет держать около 1000 человек на 100мбит/канале

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

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

Управление простое - Мышка + Клик.

0
Добавить в избранное Сохранено
Авторизуйтесь
Вход с паролем
Комментариев еще не оставлено
Выбрать файл
Читайте далее
Загружаем…
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать