Ничего не поменялось. Браузер - Опера 12.18. Не думаю вам захочется заморачиваться с этим. Оригинальная игрушка с тем же рвением белой страницей отвечает. Я в вебе подотстал прилично, потому в советчики не напрашиваюсь, но: зачем таскать комбайн, если функицонала нужно вроде хватает и без него в браузерах. А так, отвалилось на непонятно чем.
Зато прояснилось :) Очень старый браузер. Отвалилась библиотека jBinary. Не смог найти какие у нее минимальные требования для Opera. Не понял что за комбайн?
1) Когда я маленький, то не могу остановить свой шарик полностью, сложно управлять, «педаль газа» должна быть отзывчивее. Скинь что-ли ф-цию которая определяет как и что, я может поковыряю.
2) После того как я стал множеством шаров, в 70% случаев оно не может правильно определить центр множества меня и центр видимой части карты. В последний раз вообще шарики слились в один, но этот один стал висеть в нижней части карты. И как тут играть? Я не вижу куда мне плыть.
Он имел ввиду всякие библиотеки. Но так же сказал что уже отстал от современного веба, поэтому не надо сильно обращать на него внимания. Предполагаю (реализацию я не смотрел), у него нет ws:// а на обычном аяксе (даже кОмет), нормальный реалтайм уже не запилить.
Я не выкладывал проект на гитхабе. И пока не планирую. А что конкретно интересует? Этот проект не претендует на звание клона агарио в стандартном понимании. Я написал все с нуля, и сервер и клиент. Кроме того сервер на C++. А те клоны что есть - серверная часть вроде как на nodejs. В общем мой вариант сам по себе и не имеет ни малейшей совместимости ни с остальными клонами ни с оригиналом.
Совместимость с оригиналом не так важна. А вот иметь возможность ознакомиться с программой которую запускаешь наоборот важно приятно и столманоугодно. Впрочем дело твоё.
1) Клиент моделирует физику после подтверждения сервера. Из-за этого настоящий аватар (на сервере) находится вовсе не там где мы его видим на клиенте. Поэтому целясь в его центр мы попадаем для быстрого аватара вообще за его пределы. Я планирую параллельно реализовать моделирование и на клиенте. И тогда эта проблема исчезнет.
2) Пока лечится только перезагрузкой страницы.
Лагает люто. Хрен с FPS, тут по конфигурации и засранности браузера по-любому всё печально будет, но у управления задержка в несколько секунд, летаю по всей карте, как угорелый, даже еда не собирается толком. EVDO Rev. A.
Баг: формула поедания зависит от радиуса, а не массы. Масса может расти бесконечно. Радиус же ограничен сверху playerMaxRadius. Получается аватары с массой сверх максимальной для заданного playerMaxRadius уже не могут ни быть съеденными ни объединить своих аватаров.
Клиент моделирует физику после подтверждения сервера. Тоесть пока не придет ответ от сервера аватар игрока движется по старому направлению.
Сейчас это выглядит так 40мс клиент кеширует движения мышью, игровая итерация на сервере 40 мс - поэтому в среднем обработка 20 мс.
Физика на клиенте начинает применяться через 60мс + ping.
Клиент применяет линейное сглаживание на интервале 250мс, тоесть настоящее положение своего аватара игрок видит еще позже - 310мс + ping.
В ближайшей версии запилю более адекватную компенсацию лагов.
Сейчас вроде получше, но всё равно дёргается. Плюс слишком резкое изменение скорости от увеличения радиуса. И кажется, в левом верхнем углу жрачка не жрётся.
Причина - В точке (0, 0) залип аватар игрока с радиусом 0, отсутствующим цветом и именем (последние два наследуются от игрока).
Еда остается потому что отваливается на полпути функция обработки пакета состояния комнаты из-за кривых данных аватара. Клиент доверяет серверу. Пока проблему решил перезагрузкой демона.
фпс стабильно 59-60 но дёргается, рывками передвигается, видимо из-за скачков пинга (от 80 и до 500) не грузит проц (в отличии от агар), возможно потому что я там 1 был //опера 37.0.2178.54 (Chrome/50.0.2661.102)
Дергается из-за лагов. Я работаю над адекватным алгоритмом лагокомпенсации. То что реализовано сейчас - примитивщина состряпанная за 5 мин на коленке, что бы хоть как то работало.
Ну 1,2,3 дня, неделя, месяц без обновлений это не страшно. Работает? Работает. Жрать просит? Нет. Когда настанет время рыпаться так и будем рыпаться, а пока. Работает не трогай. Я не гонюсь за циферками. А новомодные фичи браузеров распоследней версии юзают разве что девелы.
Анонсирую обновление физики. Ранее физики как таковой не было вообще, использовалось равномерное движение. Запилил все как полагается: три закона Ньютона соблюдены. Временно пришлось отключить сглаживание на стороне клиента.
Девелы для постоянно обновляющихся лисы и хрома не учитывают версии кроме последних двух-трёх + иногда LTS. Юзеров на остальных версиях действительно ничтожно мало. Так что застопорившись на какой-то случайной версии, ты рискуешь столкнуться с тем, что сайт сломается из-за того, что скрипты завязаны на фиче, которая давно в лисе запилена, и фолбеков, как для IE или Opera, например, пихать не будут. Конечно, пока всё работает — гут, но если вдруг сломается — надо будет ещё определить, в старом браузере ли дело или в чём-то другом, что нетривиально, раз ты не вебдев. Мало того --- ты можешь не заметить, что что-то сломалось. Был у самого такой случай, ломал голову, как в Thunderbird дополнение из файла поставить, а оказалось, что у меня из-за темы оформления кнопка меню на about:addons пропала.
Более-менее довел до ума velocity-based физику. Долгое время этот подход не взлетал и я всерьез готовился к переходу на position-based (хоть мне этот подход и не нравится). Сейчас вроде как играбильно, по крайней мере выглядит именно так как я ожидал.
Запилил ботов.
Если кому еще интересно, то заценяйте. Боты особым интелектом не отличаются. Жрут все что меньше, держатся подальше от вирусов и игнорят примерно равных себе.
Лагокомпенсации по прежнему нет. В этой версии я отключил и предсказание на клиенте. Вобщем это демонстрация насколько просто с помощью простейшей физики имитировать достаточно разумное поведение :)
PS. Что-то к игре интерес ниже нуля, видимо надо сворачивать лавочку...
Так как в этом деле я новичек, может посоветуете как грамотно поступить с исходниками (так чтобы была хоть какая-то польза в том числе и мне)? Просто выложить в открытый доступ?