Maks
Вообще геймдев ААА оч сложный особенно шутаны. Как вот рассчитывать сколько выстрелов сделал игрок?))) если скорострельность оружия например 600 выстрелов в минуту.
Emin Zalaev
А тыж англтации можешь написать json:”1” например
Ну и обычный анмаршал должен помочь в целом
kostyaBro
Ладно бы джиттера не было.... Но он есть
Andrey
А тыж англтации можешь написать json:”1” например
я плохо пересказал по русски по апи приходит например вот это "SetAddress": { "Address": [ { "Type": 0, "ByteId": 1 }, { "Type": 0, "ByteId": 0 } ] } это говорит что в поле 1 и в его чилдрене 0 надо что-то изменить "Type": 5, "CreateCollectionElement": { "Index": { "Type": 0, "ByteId": 0 } } } вот оказывается там надо добавить элемент в массив
Maks
Мы ведь каждый кадр смотрим зажата кнопка выстрела или нет. если зажата то стреляем получается. А если не зажат то завершаем стрельбу. Но при разном фпс мы по разному будем это обрабатывать из за релоада между выстрелами. Например если у нас 10 выстрелов за секунду и 100 кадров в секунду то это будет очень эффективная стрельба. И мы отправляем ивенты на сервер нормально сколько времени он стрелял. А если выше - то один кадр выстрел не будет происходить. Потому что релоад. И получается при 13 кадрах например за секунду будет выстрел, пропуск кадра, выстрел, потом не знаю лень считать, и в итоге скорострельность меняется)
Maks
Если не ошибаюсь в апексе фпс влияет на эффективность стрельбы)))
Maks
В зависимости от оружия
Maks
Короче лютая тема на самом деле
Maks
Если прям докапываться
Maks
Идеально сделать почти не возможно
Andrey
ну состряпай структуры и анмаршали
ты предлагаешь сделать такую структуру что бы это джейсон на нее маршалился на прямую так?
kostyaBro
Если не ошибаюсь в апексе фпс влияет на эффективность стрельбы)))
В чем-то вроде квейка был баг что на новом компе в виду 10000 фпс ты убегал в стену, тк игра зависела от ыпс
kostyaBro
У тебя ж тут чтото ну совсем нестандартное
kostyaBro
Короче лютая тема на самом деле
Вот потому и интересно)
Artur
А какое тестовое если не секрет?
зависит от позиции. на новичка и просто с опытом круды на очень опытного 2 сервиса и я даю фронт, прошу вебсокеты организовать с сессиями на супер опытного обычно хватает разговора про архитектуру, рейтлимитеры, кеши, уровни изоляции, саги но независимо от позиции я спрашиваю что такое 127.0.0.1 и что такое localhost.
Andrey
У тебя ж тут чтото ну совсем нестандартное
да для стандартного есть гугл ) а тут надо думать
Andrey
создать стуктуру с маршалингом это интересный вариант, у нас всегда один и тот же путь от корня до ветки, и мы каждой ветке можем заранее сгенерировать путь до нее
Vladislav
да для стандартного есть гугл ) а тут надо думать
что там думать, разбивай на одинаковые части и собирай франкенштейна, анмаршалинг разберется
kostyaBro
kostyaBro
куча это сколько?)
Столько что ты не можешь всегда держать горутину на каждый сокет
Andrey
ну если интересно то я пытаюсь протестировать срез версионированной модели которая хранится в структуре дерева
kostyaBro
а скейлинг кто запрещает делать?)
Ну вот не хочется) Так уж вопрос поставили
Artur
Ну вот не хочется) Так уж вопрос поставили
рвать соединение. на фронте написать вечный реконнект и очереди
kostyaBro
а скейлинг кто запрещает делать?)
Кароч челики реагировали на файлы веб сокета в самом линуксе и поднимали горутину когда надо.
Andrey
плохо то что когда будут обтимизации в хождении по дереву то вариант с прямым маршалингом перестанет работать
Andrey
по этому вот думаю стоит его делать или сразу думать над чем-то более рабочим
kostyaBro
С биржами и кучей графиков кстати тоже highload непростоц
Andrey
в принципе у нас есть само это дерево. и мы можем этими апдейтами по нему ходить
Andrey
Когда это будет? Завтра или через год?
с учетом того что вся модель в сборе разрабатывалась пол года, и свою херню я пишу в свободное от работы время, то через год это скорее всего раньше чем я закончу делать то что делаю
Andrey
да и как-то делать сложную заранее хренова работающую хрень не очень интересно ) интереснее придумать что-то такое за что можно будет гордится
Andrey
так вот у нас есть дерево с которого собирается этот апдейт
Andrey
мы можем по этому апдейту обходить дерево и доставать из него данные
Andrey
но только что нам это даст
Andrey
мы можем сделать копию дерево и ходить по нему складывая в него эти данные например
kostyaBro
с учетом того что вся модель в сборе разрабатывалась пол года, и свою херню я пишу в свободное от работы время, то через год это скорее всего раньше чем я закончу делать то что делаю
Мало контекста. А больше принять сложно, своего хватает. Но судя по тому что ты пишешь, есть логика в конвертации, универсальная логика. Ты можешь делать через map[string]json.RawBinary возможно
Andrey
во я придумал неплохой вариант мы можем просто без апдейтов замаршалить дерево на структуру и вывести структуру что бы узнать все ли поля заполнены
Andrey
так мы протестирум заполненность дерево, но не протестируем апишку
kostyaBro
Чувствую себя уточкой
Emin Zalaev
если крякаешь значит утка
kostyaBro
Которой объясняют чтобы разобраться с проблемой
Andrey
в общем тут суть в чем, есть бекенд и есть фронтенд и это блин всегда проблема ) ты делаешь какую-то сложную хрень запускаешь а фронтенд говорит что оно работает не правильно, а что бы доказать что оно работает правильно надо написать еще более сложную хрень
Andrey
zero value допустимы?
ну там в моделе все значения это указатели, т.е. значение либо установлено либо nil
Vladislav
ну тогда норм
kostyaBro
Между вами есть спецификация апи. Котрую можно описать BDD тестами
kostyaBro
Пахнет рекурсией
Vladislav
а ты не нюхай
Andrey
Между вами есть спецификация апи. Котрую можно описать BDD тестами
BDD это методология разработки и рекурсия там рядом не лежала
kostyaBro
Чутка, может не от сюда, мб с юлицы занесло
kostyaBro
Значит с улицы
Andrey
во точно
Andrey
я понял
Andrey
в общем есть дерево
Andrey
по этому дереву можно построить структуру
Andrey
и перенести все данные дерева в эту структуру
Maks
Кто нить через TDD работал? Я так мечтаю в проект с тдд попасть но нигде пока не довелось)
Andrey
мы просто копируем это дерево, и получается что мы берем исходное дерево собираем с него обновления, передаем его в другое дерево там эти обновления накатываем потом маршалим это дерево на структуру и по структуре уже смотрим все ли обновления пришли
kostyaBro
Ааа пожи Тут название поля, в нем тип и новое значение?
Походу бежим рефлексией и меняем если так
Emin Zalaev
подскажите что можно почитать про что то типа "обратный проход по дереву"
Andrey
Ааа пожи Тут название поля, в нем тип и новое значение?
там не название поля, там просто по очереди поля обходятся, там стурктура в виде дерева и по ней бегает курсор и дойдя до нужного места командой сет аддрес переходит к следующей команде которая говорит что с этим значением надо сделать