Мерль
Можно внести дополнительный бит в заголовках tar и таким образом накостылять удаление
Snusmumriken
Это если у тебя файловая система поддерживает изменение конкретных битов в кластере, без полной перезаписи. Хм. И специальный драйвер, вроде.
Мерль
Просто перезаписывать байт в файле, это вообще не проблема фс как таковой
Snusmumriken
Хотя конкретно тут - я не очень шарю. Только на стандартной сишке, без дополнительных либ/команд/такой поебени.
Snusmumriken
О, и правда, загуглил, есть такие костыли, seek + запись определённых ascii-символов на "перезапись"
Snusmumriken
Тогда можно мутить свою файловую систему внутри файла, с блоками : )
Snusmumriken
Я пиздежеобильный, да.
Snusmumriken
Внутри файла )) Если бы ты не скипнул - прочитал бы как я изобрёл tar.
Anonymous
ссылка не реп в инф о канале, это интерпр + библиотеки для луа?
Snusmumriken
ссылка не реп в инф о канале, это интерпр + библиотеки для луа?
Ага. Типа билд "для тех кому срочно нужна луа с либами". Я предпочитаю дёргать куски этого комплекта, ибо кроссплатформа и luajit + биндинги. https://luapower.com/ Правда, часть либ приходится вычищать от местных тулзов, имплементируя тулзу внутрь локально. К счастью, таких тут немного.
Snusmumriken
Пришло время для смешных гифок
fgntfg
@Snusmumriken https://habrahabr.ru/company/infowatch/blog/337084
fgntfg
мне тут яндекс.дзен статейку подкинул
fgntfg
а мы аккурат про это вчера беседовали
Saphire
Немного оффтопик: сколько стоит распечатать примерно 860 страниц (ну или вдвое меньше листов с двух сторон) отсканированного текста?
mva
2р/страница
Saphire
...
fgntfg
Ru Cafe глянь
fgntfg
если в Мааскве
Saphire
fgntfg
Посмотрел, действительно 2р\страница
fgntfg
думал дешевшее
Saphire
Куча типографий, самое дешёвое - 2.7 руб за 2х стороннюю, это включая бумагу. И то, это может быть просто по одной странице в нескольких копиях имеется ввиду печать
fgntfg
Можно придти в ближнюю к дому и поторговаться
Snusmumriken
@Snusmumriken https://habrahabr.ru/company/infowatch/blog/337084
Да, неплохо. Но рассчёт на то что склеены два известных формата, а не известный + что-то странное : ) Моя задача - zip + что-то странное, а zip не имеет сигнатуры конца архива.
Anonymous
Были статьи на хабре про стеганографию и прятание данных в самих изображениях в т.ч. jpeg
Snusmumriken
Были статьи на хабре про стеганографию и прятание данных в самих изображениях в т.ч. jpeg
Да, читал, офигительно крутая штука. Но есть лимиты на прятание. Ну, то есть текст спрятанный в картинке - меньшего объёма чем сама картинка. Было бы КРАЙНЕ забавно прятать скрипты игровых объектов внутри спрайтов этих же игровых объектов.
fgntfg
Да, неплохо. Но рассчёт на то что склеены два известных формата, а не известный + что-то странное : ) Моя задача - zip + что-то странное, а zip не имеет сигнатуры конца архива.
Зип имеет сигнатуру. Покрайней мере так написано в статье. Можно держать пустой Зип, или зип с точно известным содержанием. Для которого будет известно окончание.
Saphire
pico
Anonymous
А зачем что-либо прятать в игре?
fgntfg
Прятать рессурсы игры в рессурсах игры
fgntfg
Saphire
Там в Пико вся игра может быть в пнг сложена
Saphire
Простой пнг
Snusmumriken
Зип имеет сигнатуру. Покрайней мере так написано в статье. Можно держать пустой Зип, или зип с точно известным содержанием. Для которого будет известно окончание.
Он имеет сигнатуру начала : ) Смотри. У нас есть условно зип с ресурсами игры. В видимой части (zip-часть) - те ресурсы которые можно выдавать открытыми, их изменение не даст возможность читерства в сетевых игрулях с игроками-хостами. В невидимой части (кастомный формат) - всякие особо ценные скрипты, которые низя трогать, ибо допустим там реализация хоста.
Anonymous
Там в Пико вся игра может быть в пнг сложена
Боюсь, туда только .kkrieger поместится чтобы при этом систему вдруг не убить
fgntfg
Если игруля сетевая, то скрипты можно качать из сети и хранить в озу.
Saphire
Если игруля сетевая, то скрипты можно качать из сети и хранить в озу.
А можно не извращаться и сделать всю логику на сервере
fgntfg
Если это не очень шустрая игра, то можно
fgntfg
хотя каналы связи становятся всё каналистее
Snusmumriken
Если игруля сетевая, то скрипты можно качать из сети и хранить в озу.
Я думал на этот счёт. Но тогда никто не помешает дописать основную программу чтобы перенаправить код скриптов в файл. Вот если при загрузке скачивается ещё и случайно сгенерированный ключ игры, который, условно, меняется каждые сутки, а при коннекте к игроку-хосту проверяется эта версия - ещё куда ни шло.
Snusmumriken
Ты думаешь читеры такое не заметят?
Нет, не заметят. Они обнаружат архив, откроют его зипом и будут радоваться: "Обана! А тут простой зип!". Скрипты занимают незначительное пространство.
fgntfg
Можно по коду игры распихать магических битов и всяких контрольных сумм. Если битик не совпадает, или контрольная сумма не сходится - писос пососос, а не игра
fgntfg
особый привет - модерам
Snusmumriken
А можно не извращаться и сделать всю логику на сервере
Смотри какая у меня схема: 1. Есть сервер встреч, который пробивает NAT и страдает прочей хернёй, чтобы соединить игроков. У меня нет ресурсов держать 100500 серверов. 2. Есть серверы, которые хостят игроки, которые логинятся в мастер-сервере (даже если у них нет белого айпи). Вся логика на нём. 3. Есть клиенты, которые тоже могут работать серверами и логиниться у мастера, плюс они запрашивают у мастера список активных серверов для дальнейшего подключения. Если выдавать серверный код игрокам - будет жёппа, привет волхакам, читакам стреляющим сквозь стены и т.д. )))
fgntfg
Можно получить от сервера ключ, для расшифровки рессурсов, расшифровывать всё в память, играть. Переодически получать от сервера новый ключ и перешифровывать всё на диске.
fgntfg
Но на каждую хитрую жопу найдется свой хуй с винтом, про это не надо забывать. И пока ты не лепишь игру расчитанную на киберспорт или на заработок на микротранзациях - всё это пустое.
Snusmumriken
Можно получить от сервера ключ, для расшифровки рессурсов, расшифровывать всё в память, играть. Переодически получать от сервера новый ключ и перешифровывать всё на диске.
Не забывай что это скрипты. Можно открыть скрипт блокнотом и отключить шифрование, или записать ключ от сервера в файл. У меня основная идея - без сишных либ, делать максимально скрытую фигню. Скрывать скрипты сервера можно где-то в глубокой жопе, обфусцированно переопределив require на работу со скрытой частью архива, этого достаточно.
Saphire
Локстеп?
Snusmumriken
Эммммммммм
Давай ты будешь писать полноценное сообщение, а не общаться междуметиями : ) Что такое локстеп?
Saphire
Собственно, то, что ты сейчас сказал только говорит о том, как игровая сессия вообще создаётся. А что именно контролирует игру? А выдать серверный код надо всегда, если у тебя не ММО.
Snusmumriken
Собственно, то, что ты сейчас сказал только говорит о том, как игровая сессия вообще создаётся. А что именно контролирует игру? А выдать серверный код надо всегда, если у тебя не ММО.
Авторитарный сервер или авторитарный хост, который одновременно и клиент и сервер. Ну, знаешь? "Го в доту, я создал!". Выдавать серверный код - не хочу :Р Хочу извращений.
Snusmumriken
Где оно так называется? Линк. https://en.wikipedia.org/wiki/Lockstep_(computing)
Saphire
Когда все клиенты просто синхронизируются друг с другом
Tverd
А кто-нить видел что-нить для MMO на луа? Интересует сервер, желательно многопоточный? Исходный код )
Saphire
Точнее, там клиентские плагины на луа
Snusmumriken
Когда все клиенты просто синхронизируются друг с другом
Не друг с другом, а отсылают серверу свои условно нажатые клавиши, сервер их обрабатывает и возвращает результат, плюс результат всех нажатий клавиш других игроков, время от времени синхронизируя игровые объекты с компенсацией лага. Глянь: https://habrahabr.ru/post/302394/
Snusmumriken
А это лёгкий локстеп. Берут срез состояния игры у первого игрока, загружают в своё, и если всё идеально одинакового работает, красота
Не берут никаких срезов, блин. Никаких. У сервера - свои состояния. Ты прям вцепился в термин. Давай урл на нормальное описание : )
Snusmumriken
Сервер ему послал )))
Snusmumriken
Авторитарность, чел.
Saphire
Сервер ему послал )))
А что именно послал то?
Snusmumriken
Команды создания объектов, например. Переключения на определённое состояние, и т.п.
Saphire
Команды создания объектов, например. Переключения на определённое состояние, и т.п.
Короче инструкции по поручению состояния такого же, как у сервера... Т.е. по сути передача состояния мира
Snusmumriken
Ага. И иногда - полная синхронизация
Saphire
Срез, если грубо говорить
fgntfg
а что если серверные вычисления размазать между хостами?
Snusmumriken
Хуйня
Snusmumriken
Читаки повсюду