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


Channel's geo and language: not specified, Russian
Category: not specified


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

Related channels  |  Similar channels

Channel's geo and language
not specified, Russian
Category
not specified
Statistics
Posts filter


Video is unavailable for watching
Show in Telegram
блять почему подобные видосы реально вызывают у меня новогоднее настроение

летом


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










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


виды получш


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




Forward from: 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. но они его даже не используют))) тупо память аллоцируют))) (или мб компилятор продристался)

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






Video is unavailable for watching
Show in Telegram
никита


Video is unavailable for watching
Show in Telegram


Video is unavailable for watching
Show in Telegram


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

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

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

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

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


Video is unavailable for watching
Show in Telegram


Video is unavailable for watching
Show in Telegram


Video is unavailable for watching
Show in Telegram

20 last posts shown.