Главное Авторские колонки Вакансии Образование
222 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
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.