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

Битрикс24

www.bitrix24.ru

16
Tados

Tados

tados.ru

15
YAGLA

YAGLA

yagla.ru

13
myPreza

myPreza

mypreza.ru

12
Devicerra

Devicerra

devicerra.com

12
Perezvoni.com

Perezvoni.com

perezvoni.com

11
Expresso

Expresso

www.expresso.today

9
Reader

Reader

Интернет-журнал о современных технологиях.

9
THE NN

THE NN

thenn.ru

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

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

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