Проекты
GameDev.ru / Проекты / Форум / мультиплеер эксперимент (нужно тестирование)

мультиплеер эксперимент (нужно тестирование)

Поделиться

Страницы: 1 2 3 4 5 6 7 Следующая

Mr FПостоялецwww8 июля 20179:37#0
Решил отвлечься и запилить за месяц-два какую-нибудь простую законченную играбельную ерунду. В данном случае дебютируют мои познания в сетевом кодинге и физике (самопальный неоптиимизированный физдвижок).

http://playcanv.as/p/BAuoCOx6/

ссылка будет обновляться и может не всегда работать


Изображение


старая карта с кубиками (быстрее загрузка): http://playcanv.as/b/Kr8bmTwg/

Игрой это пока не назовёшь (поэтому пусть будет пока в проЭктах), но что-то уже есть. Дальше сложно тестить без людей, так что было бы клёво, если бы человек 8 собрались в назначенное время и потестили. Есть желающие, в какое время вам удобно?
Платформа - десктоп (вин/линь/мак).

Управление:
WASD - ходить.
Мышь - прицел.
Левая и правая кнопки мыши - стрельба из левого и правого оружия.
Пробел - включить абилку.
Х - переключать абилки.

Шифт - включить щит.
Пробел - включить ускорение.
Е - сменить оружие на лежащее.
B - открыть меню прокачки.

Левое оружие (пулемёт) бесконечно, а правое надо находить разное, и патроны кончаются.

Задача:
Есть 4 команды. Надо набрать своей команде больше всех очков. Для этого можно захватывать точки (круглые фиговины) и убивать врагов. Постоял 5 секунд у точки - она захватилась, получил 20 очков и будет генерировать 1 очко раз в 3 секунды. Убил врага - получил 1 очко.

Игрок отдельно от команды также набирает очки опыта за победы и захваты, их можно тратить на покупку перков.

при игре записывайте все баги и желательно ещё включить дебаггер в браузере:

+ Показать

Правка: 7 окт. 2017 11:52

t800Пользовательwww8 июля 201710:33#1
Здравствуйте! А  в firebug который в Mozilla можно будет записывать для Вас баги?
Если можно  будет запишите меня в тестирорвщики, могу в любое время потестить, мой e-mail

С уважением Богдан.

Правка: 8 июля 2017 10:34

Mr FПостоялецwww8 июля 201710:35#2
t800
файрбаг авторы забросили, и у меня он что-то даже логи консоли перестал принимать. сейчас встроенная ФФ консоль уже не хуже. напишу, спасибо
t800Пользовательwww8 июля 201710:39#3
Mr F
> t800
> файрбаг авторы забросили, и у меня он что-то даже логи консоли перестал
> принимать. сейчас встроенная ФФ консоль уже не хуже.

Хорошо. Тогда во встроенной консоли буду скрины делать.

напишу, спасибо

ОК. Буду ждать.

t800Пользовательwww8 июля 201710:50#4
А то что у вас робот в по плечи в стенки заезжает
+ Показать

Это считать багом или нет?

Mr FПостоялецwww8 июля 201710:59#5
t800
> Это считать багом или нет?
не, это мелочи, быстро поправить, и модель будет заменена, пока волнуют только ошибки, приводящие к невозможности дальнейшей игры

Правка: 8 июля 2017 11:00

ТатаринПостоялецwww8 июля 201711:14#6
Ох, у меня притормаживает просто жесть, у меня вистибюлярка начала прям нервничать, играет нормально потом дергания начинаются.
io игра нормальная получится, но тебе надо над кодом поработать, и на amazon серверах только деньги потеряешь.
по ws передавай бинарные данные, а в коде надо провести хорошую оптимизацию.
Если есть желание могу помочь.
Mr FПостоялецwww8 июля 201711:17#7
Татарин
> Ох, у меня притормаживает просто жесть
именно фпс прыгает или сетевой лаг (игрок плавает/отъезжает назад)?

Татарин
> но тебе надо над кодом поработать
знаю

Татарин
> и на amazon серверах только деньги потеряешь.
пока что юзаю free tier на год. а есть варианты лучше?

Татарин
> по ws передавай бинарные данные
так и планирую. но пока на экспериментальной стадии удобнее JSON. когда точно утвердится что куда нужно передавать, сделаю бинарный формат.
то же касается и оптимизаций кода (и медии).

может быть даже удастся на UDP перейти через WebRTC, но что-то инфы по такому подходу не густо, и вообще он больше на peer-to-peer расчитан.

Правка: 8 июля 2017 11:19

ТатаринПостоялецwww8 июля 201711:26#8
Mr F
>именно фпс прыгает или сетевой лаг (игрок плавает/отъезжает назад)?
вот честно я не понял, я смотрел на ws лог и на игру и они тормозили одновременно, по моем практике это все таки код.
> пока что юзаю free tier на год. а есть варианты лучше?
я узаю российский сервер, он дешевый 150 рублей и держит народ, но тебе же нужен мировой рынок тут надо провести исследования, но на первых порах я бы забил на amazon, хотя если он бесплатен то шыло на мыло.
> так и планирую. но пока на экспериментальной стадии удобнее JSON. когда точно
> утвердится что куда нужно передавать, сделаю бинарный формат.
> то же касается и оптимизаций кода (и медии).
>
> может быть даже удастся на UDP перейти через WebRTC, но что-то инфы по такому
> подходу не густо, и вообще он больше на peer-to-peer расчитан.
TCP вполне достаточно, может у тебя сервер в этот момент что то делает и пакеты приходят не равномерно, на чем сервер написан?
у меня есть готовый сервер и клиент, была игрушка io, не взлетела но она оптимизирована, если узнать побольше про твой проект то можно быстро перестроить под тебя.

Правка: 8 июля 2017 11:26

Mr FПостоялецwww8 июля 201711:36#9
Татарин
> они тормозили одновременно, по моем практике это все таки код.
понял, похоже на то, спс

Татарин
> на чем сервер написан?
nodejs, он вообще не напрягается, где-то 0.5% CPU юзает, вся неравномерность прихода только от качества сети и расстояния от сервера.

хотя тьфу, вообще может быть такое, он же однопоточный. апдейт сервера может задержать на несколько мс посылку данных.

>у меня есть готовый сервер и клиент, была игрушка io, не взлетела но она оптимизирована, если узнать побольше про твой проект то можно быстро перестроить под тебя.
спасибо, но я хочу сам поразбираться, да и написано уже не так уж мало + клиент и сервер шарят одинаковые куски кода.
при реализации косился на эту статью: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
если есть какие-то неочевидные советы, что позволило круто оптимизировать, был бы рад узнать :)

Правка: 8 июля 2017 11:40

ТатаринПостоялецwww8 июля 201711:45#10
Mr F
да советов могу насыпать без проблем, сервер у тебя по сути должен быть 3 строчки кода, собрал раздал, довольно легко выжать из него все соки.
картка замкнутая получается что у тебя будет лимит на игроков 32x32 это максимум или даже меньше, тогда проще завести бинарный буфер и всем раздавать каждые 100 мс или чаще.
по клиенту тоже, начинать надо было с "use strict" хотя бы, а там с canvas библиотекой я мало работал, чего она там лагает для меня загадка, ну и то что ты от мышки луч трассируешь круто, но бесполезно если камера в изометрии зафиксирована можно просчтитать самому а то робот и в пол и в стены стреляет, хотя может это фича) физика там получилась пока не нужна, толко в кубики пострелять да и считаешь ты все на клиенте если кто то начнет читерить в io игре это будет финал для нее. Переходить на p2p можно, но тогда там может быть такой дикий бардак с читерством, который уже никак не исправишь.
Так сложно понять код если не знать какие цели ты преследуешь.

Правка: 8 июля 2017 11:47

Mr FПостоялецwww8 июля 201711:50#11
Татарин
> сервер у тебя по сути должен быть 3 строчки кода
ну побольше чутка) он же реплицирует все действия игроков - двигает их, коллизию считает, лучи выстрелов проводит, траектории гранат считает и т. п., чтобы читерить было сложно.

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

> хотя может это фича
фича в том, что можно целиться в разные части врага) но на деле это чот вышло почти нереально, когда они быстро бегают.

>физика там получилась пока не нужна
мне доставляет персонажей раскидывать на куски с ней + может ещё какие-нибудь объекты ломаемые добавлю

> да и считаешь ты все на клиенте
она чисто декоративная (серверная только у гранат)

ТатаринПостоялецwww8 июля 201711:54#12
Mr F
чем физику считает?
Mr FПостоялецwww8 июля 201711:57#13
Татарин
> чем физику считает?
клиент и сервер одним и тем же. самодельная position-based симуляция (в духе http://www.gamedev.ru/code/articles/PositionBasedPhysics) с приоритетом количества фигни над её аккуратностью.
сейчас каждый объект проверяет коллизию с каждым, и это конечно жесть. учитывая изометричность игры, планирую тупо распределить все объекты по 2d клеточкам и проверять только с соседними.

Правка: 8 июля 2017 12:02

robotcityПостоялецwww8 июля 201712:09#14
Mr F
Что то очень сложное для меня)
Я по проще использую https://www.gamedev.net/articles/programming/general-and-gameplay… esponse-r3084
Меньше расчётов и сквозь стенки уже не пройдешь а физику в цикле крутить не надо, но у тебя круче.
Переход на сетку правильная мысль.
Да у тебя правильные мысли, тебе советовать только портить - верной дорогой идёте товарищи.

Страницы: 1 2 3 4 5 6 7 Следующая

/ Форум / Проекты / Оцените

2001—2017 © GameDev.ru — Разработка игр