пивнушка тейла


Гео и язык канала: не указан, Русский
Категория: не указана


sc re, разраб surgeoffline и nodebrawl-core. 20 y.o.
долг в бравле на 3130 гемов

Связанные каналы  |  Похожие каналы

Гео и язык канала
не указан, Русский
Категория
не указана
Статистика
Фильтр публикаций


Видео недоступно для предпросмотра
Смотреть в Telegram
блять почему подобные видосы реально вызывают у меня новогоднее настроение

летом


Кстати я уже пару месяцев тренирую нейронку, которая от лица нескольких юзеров пишет комменты под почти каждым постом. Пока никто не спалил и даже не заподозрил ни один из этих аккаунтов.










всякие приколы позже поправлю


виды получш


нарисовал себе скинчик финально




Репост из: KTJS
так вот, поговорим про команды. а именно - про LogicCommand.

так как игра реализована на движке от supercell - titan (и там уже на уровне движка логика команд реализована), то мы можем ожидать идентичную реализацию и в играх от хайпхайп. ведь так? ведь так...?

нее, нихуя.

как это реализовано в играх от supercell?
разберём для начала клиент -> сервер
игра собирает нужный LogicCommand (далее - команда), проставляет данные команды и отправляет её в HomeMode::addCommand, который заворачивает туда нужные данные, выполняет саму команду и отправляет её на временное хранение в commandstorage.
когда игре понадобится отправить команду (или же, команды), она создаёт сообщение EndClientTurnMessage, переносит оттуда команды из commandstorage, кодирует через LogicCommandManager.encodeCommand и отправляет.
причём кодирует в виде

всё максимально понятно и не сложно.
с сервер -> клиент тоже всё максимально просто.
сервер присылает сообщение AvailableServerCommandMessage с закодированной командой.
игра вызывает LogicCommandManager.decodeCommand который сначала декодирует commandType, затем создаёт сопутствующий команде инстанс класса и декодирует команду дальше.
затем, игра также вызывает HomeMode::addCommand, ну и дальше всё по аналогии с клиентом. только сервер кодирует команду слегка по другому


казалось бы, хорошая реализация. ничего не добавить и не убавить. но хайпхайп так не считают...

клиент -> сервер
игра аллоцирует 36 байт памяти (типа LogicCommandRaw), проставляет филлерные значения и вызывает Hyperion::GameMode::addCommand, который по аналогии с HomeMode::addCommand из игр supercell проставляет некоторые данные и кидает команду в CommandStorage. но затем))) игра создаёт уже сопутствующий LogicCommand, проставляет туда нужные данные, кодирует и... внимание... берёт поинтер на буфер из ByteStream, и ставит его на 24 оффсет в аллоцированной памяти))) (ну и длину буфера на 28)
затем, когда игре нужно отправить команду, игра всё также создаёт сообщение EndClientTurnMessage в которое выставляет нужные данные с массивом raw команд, кодирует их через LogicCommandManager::encodeCommandRaw и отправляет.
и так и получается, что игра кодирует их в виде

а сам buffer выглядит как-то так...

сервер -> клиент
примерно всё также как и с supercell. НО!!!
когда игра получает AvailableServerCommandMessage, она вызывает LogicCommandManager::decodeCommandRaw который декодирует LogicCommandRaw и сохраняет всё добро... снова в аллоцированной памяти.
игра вызывает Hyperion::CommandStorage::executeCommand, который вызывает Hyperion::System::Commands::handleCommand, в КОТОРОМ ИГРА ИЗ LogicCommandRaw СОБИРАЕТ СОПУТСТВУЮЩУЮ КОМАНДУ. И ВЫПОЛНЯЕТ ЕЁ!!!!
сервер кодирует команду как-то так btw

а сам buffer выглядит как-то так...


и знаете что самое смешное? у них есть класс для raw-команд, который называется, не поверите, LogicCommandRaw. но они его даже не используют))) тупо память аллоцируют))) (или мб компилятор продристался)

удобнее ли такая реализация системы команд? сомневаюсь.






Видео недоступно для предпросмотра
Смотреть в Telegram
никита


Видео недоступно для предпросмотра
Смотреть в Telegram


Видео недоступно для предпросмотра
Смотреть в Telegram


Репост из: KTJS
наши любимые хайпхайп наконец-то вылезли из алкотрипа в виде лошадей и ии гунер гачи и НАКОНЕЦ-ТО выпустили большую (ну, если сравнивать с другими) обнову в рамбелстарсе, в которой появился батлпасс.

но, по всей видимости разрабы до сих пор испытывают головные боли без чекушки, в связи с чем творят какую-то хуйню.

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

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

че, правда? зацените тогда скриншот где можно наблюдать как разработчики разложили батлпас в 4 разных места! 4, блять! закинули по приколу список купленных пассов в LogicShop, количество токенов хуйнули в LogicGameChestManager->LogicChestManager, собранные награды запихуйнули в LogicHome, а current сезон батлпаса засунули в LogicGlobalEvent. вы прикиньте какого это поддерживать. кошмар!


Видео недоступно для предпросмотра
Смотреть в Telegram


Видео недоступно для предпросмотра
Смотреть в Telegram


Видео недоступно для предпросмотра
Смотреть в Telegram

Показано 20 последних публикаций.