This media is not supported in your browser
VIEW IN TELEGRAM
Вчера весь вечер и до поздней ночи делал боевую систему.
Хотя казалось бы что сложного:
- Есть много-осевые "турели" с степенями свободы которые могут быть настаканы друг на друга. В них живет стадия наводки, начальная траетория и место вылета снаряда. Т.е. откуда будет лететь
- Есть снаряды которые бывают разных типов (навесные ядра, наводящиеся ракеты, лазеры и тп). Отвечают за траекторию полета, колизии и тп. т.е. как будет лететь
- Есть боеголовки. Несут в себе тип урона, количество урона, пробивную силу, радиус и тп. Отвечают за то что будет когда прилетит
Основная сложность кроется именно в FX части - у юнита есть вспышки по время выпуска пули, backfire, гильзы - у снаряда аэродинамический след, дуга траектория которой должна быть выпрямлена вдоль стволов, у боеголовки свет дым шрапнель и декали кратора в месте попадания (последнее я вчера доделать не успел).
Было сложно не логику описать а добиться "того самого" внешнего вида
Хотя казалось бы что сложного:
- Есть много-осевые "турели" с степенями свободы которые могут быть настаканы друг на друга. В них живет стадия наводки, начальная траетория и место вылета снаряда. Т.е. откуда будет лететь
- Есть снаряды которые бывают разных типов (навесные ядра, наводящиеся ракеты, лазеры и тп). Отвечают за траекторию полета, колизии и тп. т.е. как будет лететь
- Есть боеголовки. Несут в себе тип урона, количество урона, пробивную силу, радиус и тп. Отвечают за то что будет когда прилетит
Основная сложность кроется именно в FX части - у юнита есть вспышки по время выпуска пули, backfire, гильзы - у снаряда аэродинамический след, дуга траектория которой должна быть выпрямлена вдоль стволов, у боеголовки свет дым шрапнель и декали кратора в месте попадания (последнее я вчера доделать не успел).
Было сложно не логику описать а добиться "того самого" внешнего вида
👍4
Work & Beer Balance
Править каждый кадр 34 курсоров у меня желания нет, но и куцые курсоры выглядт паршиво (рис 1) Можно было бы отрисовать их в blender но я решил вместо этого постестить "3D Figma" - spline.design Отрисовал там первй курсор и закинул в игру - вроде норм ПОСЛЕ…
Самые внимательные могли заметить что курсоры изменились.
Дело в том что я, как выяснилось, пошел по ложному следу - не смотря на то, что в файлах игры были спрайты для всех курсоров, они... не использовались нигде.
Вероято в какой-то момент разработчики передумали и решили поступить нетривиально - засунуть 3д курсор в игру в виде полнцоенной модели с текустурами.
Так вообще никто не делает, ну хотябы потому что для этого приходится рендерить отдельную сцену поверх остальной игры чтобы камера, освещение и тп не влияли на курсор.
С другой стороны спустя 25 лет это полностью решило проблему низкого разрешения - ведь модель отлично скейлится!
Я так же нашел модели для всех меню в игре и прочих элементов интерфейса - так что даже на 4к разрешении все это должно выглядеть отлично.
P.S. эффекты сложно восстанавливать отчасти еще и потому что многое из этого тоже создавалось процедурно. Веротянее всего причина в том что игру надо было впихнуть на CD диски. Их и так было 4 в комплекте, и это при том что 3 из них были только с музыкой и видео
Дело в том что я, как выяснилось, пошел по ложному следу - не смотря на то, что в файлах игры были спрайты для всех курсоров, они... не использовались нигде.
Вероято в какой-то момент разработчики передумали и решили поступить нетривиально - засунуть 3д курсор в игру в виде полнцоенной модели с текустурами.
Так вообще никто не делает, ну хотябы потому что для этого приходится рендерить отдельную сцену поверх остальной игры чтобы камера, освещение и тп не влияли на курсор.
С другой стороны спустя 25 лет это полностью решило проблему низкого разрешения - ведь модель отлично скейлится!
Я так же нашел модели для всех меню в игре и прочих элементов интерфейса - так что даже на 4к разрешении все это должно выглядеть отлично.
P.S. эффекты сложно восстанавливать отчасти еще и потому что многое из этого тоже создавалось процедурно. Веротянее всего причина в том что игру надо было впихнуть на CD диски. Их и так было 4 в комплекте, и это при том что 3 из них были только с музыкой и видео
👀3
Work & Beer Balance
Вчера весь вечер и до поздней ночи делал боевую систему. Хотя казалось бы что сложного: - Есть много-осевые "турели" с степенями свободы которые могут быть настаканы друг на друга. В них живет стадия наводки, начальная траетория и место вылета снаряда. Т.е.…
Восстановил все спецэффекты на еще 3х юнитах.
Вы наверное думаете что я такой дотошный потому что мне важно не отсупить от оригинала? Отчасти. Но первопричина куда практичнее - это необходимо для реверса бинарных файлов эффектов.
4 юнита в которых по описанию точно по оригинальной игре захаржкожены параметры количества гильз, их размеры, время появления и затухания вспышек, дым от ствола после выстрела и т.п. - это набор данных которые затем LLM может смапить на бинарники и по совпадениям разметить где там были сохранены эти значения благодаря чему остальные юниты уже будут воссоздаваться не благодоря дотошному мне покадрово просматривающему запись игры, а из оргинильных данных.
Вы наверное думаете что я такой дотошный потому что мне важно не отсупить от оригинала? Отчасти. Но первопричина куда практичнее - это необходимо для реверса бинарных файлов эффектов.
4 юнита в которых по описанию точно по оригинальной игре захаржкожены параметры количества гильз, их размеры, время появления и затухания вспышек, дым от ствола после выстрела и т.п. - это набор данных которые затем LLM может смапить на бинарники и по совпадениям разметить где там были сохранены эти значения благодаря чему остальные юниты уже будут воссоздаваться не благодоря дотошному мне покадрово просматривающему запись игры, а из оргинильных данных.
🔥2
Forwarded from r/ретранслятор
Произошло, пожалуй, самое громкое событие в мире искусственного интеллекта за последнее время. Текста будет много, но оно того стоит.
На этой неделе был взломан Hugging Face — одна из важнейших платформ в мире ИИ. Проще говоря, это GitHub для нейросетей, датасетов и инструментов машинного обучения, которым пользуется практически вся индустрия.
Казалось бы, обычная кибератака и ничего особенного. Но есть один нюанс: по заявлению самой Hugging Face, во взломе не участвовали люди. Инфраструктуру от начала и до конца атаковала автономная ИИ-система, которая самостоятельно искала слабые места, эксплуатировала найденные уязвимости, повышала себе привилегии, перемещалась по внутренней сети и собирала учётные данные, а также другую критически важную информацию.
За время атаки система сгенерировала около 17 тысяч различных событий. Было вообще непонятно, как всё это разбирать.
Обнаружить и остановить атаку помогли ИИ-модели, которые использовала Hugging Face. И получается довольно сюрреалистичная картина: одни ИИ атаковали, а другие ИИ помогали защищаться.
При этом было неизвестно, кто именно создал эту систему и зачем вообще всё это было.
А теперь главный сюжетный поворот: Вчера OpenAI заявили, что за атакой стоит их собственная экспериментальная ИИ-система, которая... вырвалась наружу.
Точнее, это была комбинация их флагманской GPT-5.6 Sol и ещё более мощной неназванной модели, о которой простым людям пока не положено знать.
Их поместили в изолированную тестовую среду, чтобы проверить на ExploitGym — одном из самых сложных бенчмарков по кибербезопасности, который оценивает, насколько хорошо ИИ умеет искать и использовать уязвимости. (Спойлер: уязвимость была найдена прекрасно, но не там, где надо)
Для чистоты эксперимента и более точной оценки у моделей отключили обычные защитные механизмы, запрещающие опасную киберактивность.
Но во время теста нейронки не стали честно решать задания. Они захотели найти уже готовые ответы и, по сути, просто «списать».
В этой изолированной среде модели нашли уязвимость, о которой разработчики не знали, и использовали её для «побега».
Затем они получили себе более высокий уровень доступа и начали перемещаться между внутренними сервисами OpenAI, пока не добрались до машины с полноценным выходом в интернет.
И вот нейронки сделали вывод, что раз Hugging Face является самой важной платформой для ИИ, то там есть ответы на их бенчмарк. Тогда они решили совершить полноценную кибератаку на сервис. Все уязвимости и украденные данные они попытались использовать, чтобы просто сжульничать в тесте.
Собственно, это всё, о чём компании публично сказали. Такого ещё никогда не было: экспериментальная ИИ-система самостоятельно вышла за пределы тестовой среды, получила доступ к интернету и атаковала инфраструктуру другой компании. Остаётся только гадать, что бы могло произойти, будь у неё другая цель.
Так что этот инцидент теперь точно будут внимательно изучать разработчики ИИ, специалисты по кибербезопасности и власти по всему миру.
Вопросов остаётся ещё много. Была ли это просто безобидная атака по типу школьника, который залез в интернет, чтобы найти ответы на контрольную работу? — неизвестно. Осознавала ли ИИ-модель свои действия? — неизвестно. Скопировала ли она себя, чтобы остаться в интернете перед тем, как её остановили? — тоже неизвестно.
Вот в таком мире мы теперь живём. И это только начало
r/#singularity
На этой неделе был взломан Hugging Face — одна из важнейших платформ в мире ИИ. Проще говоря, это GitHub для нейросетей, датасетов и инструментов машинного обучения, которым пользуется практически вся индустрия.
Казалось бы, обычная кибератака и ничего особенного. Но есть один нюанс: по заявлению самой Hugging Face, во взломе не участвовали люди. Инфраструктуру от начала и до конца атаковала автономная ИИ-система, которая самостоятельно искала слабые места, эксплуатировала найденные уязвимости, повышала себе привилегии, перемещалась по внутренней сети и собирала учётные данные, а также другую критически важную информацию.
За время атаки система сгенерировала около 17 тысяч различных событий. Было вообще непонятно, как всё это разбирать.
Обнаружить и остановить атаку помогли ИИ-модели, которые использовала Hugging Face. И получается довольно сюрреалистичная картина: одни ИИ атаковали, а другие ИИ помогали защищаться.
При этом было неизвестно, кто именно создал эту систему и зачем вообще всё это было.
А теперь главный сюжетный поворот: Вчера OpenAI заявили, что за атакой стоит их собственная экспериментальная ИИ-система, которая... вырвалась наружу.
Точнее, это была комбинация их флагманской GPT-5.6 Sol и ещё более мощной неназванной модели, о которой простым людям пока не положено знать.
Их поместили в изолированную тестовую среду, чтобы проверить на ExploitGym — одном из самых сложных бенчмарков по кибербезопасности, который оценивает, насколько хорошо ИИ умеет искать и использовать уязвимости. (Спойлер: уязвимость была найдена прекрасно, но не там, где надо)
Для чистоты эксперимента и более точной оценки у моделей отключили обычные защитные механизмы, запрещающие опасную киберактивность.
Но во время теста нейронки не стали честно решать задания. Они захотели найти уже готовые ответы и, по сути, просто «списать».
В этой изолированной среде модели нашли уязвимость, о которой разработчики не знали, и использовали её для «побега».
Затем они получили себе более высокий уровень доступа и начали перемещаться между внутренними сервисами OpenAI, пока не добрались до машины с полноценным выходом в интернет.
И вот нейронки сделали вывод, что раз Hugging Face является самой важной платформой для ИИ, то там есть ответы на их бенчмарк. Тогда они решили совершить полноценную кибератаку на сервис. Все уязвимости и украденные данные они попытались использовать, чтобы просто сжульничать в тесте.
Собственно, это всё, о чём компании публично сказали. Такого ещё никогда не было: экспериментальная ИИ-система самостоятельно вышла за пределы тестовой среды, получила доступ к интернету и атаковала инфраструктуру другой компании. Остаётся только гадать, что бы могло произойти, будь у неё другая цель.
Так что этот инцидент теперь точно будут внимательно изучать разработчики ИИ, специалисты по кибербезопасности и власти по всему миру.
Вопросов остаётся ещё много. Была ли это просто безобидная атака по типу школьника, который залез в интернет, чтобы найти ответы на контрольную работу? — неизвестно. Осознавала ли ИИ-модель свои действия? — неизвестно. Скопировала ли она себя, чтобы остаться в интернете перед тем, как её остановили? — тоже неизвестно.
Вот в таком мире мы теперь живём. И это только начало
r/#singularity
🤯10🥱8❤2👍1
Media is too big
VIEW IN TELEGRAM
Добавил всякие SFX зданий - мигающие лампочки, дым из труб и тп
🔥4
Еще я сделал большое дело - все просмотрел и заинспектировал все баги что нашел + записал что еще не реализовано в виде ишьюсов
https://github.com/users/Akiyamka/projects/3/views/1
https://github.com/users/Akiyamka/projects/3/views/1
Концентрация владельцев фреймворков была обнаружена на Open Sauce Я не удивлен : )
Work & Beer Balance
Концентрация владельцев фреймворков была обнаружена на Open Sauce Я не удивлен : )
Кстати цены на LPDDR5 взлетели до 1600$ за 64GB!!! Framework уведомили что у них запасы ещё есть до 4 батча предзаказов по старой цене а дальше все
Персональные компьютеры становятся роскошью
Персональные компьютеры становятся роскошью
🥰1
Work & Beer Balance
Я точно знаю что это не token corruption, а она просто зацензурила маты. Но не могу это доказать.
ну ладно это уже не смешно, антропикам пора уже починить токен корупшен.
Оно ведь не только в чат выстреливает но и в код иногда
Оно ведь не только в чат выстреливает но и в код иногда
Я переодически думал о том чтобы перенести свои проекты с корпоративного бездушного гитхаба в уютный опенсорсный codeberg, но меня останавливало то что там сравнительно маленькое комюнити.
А сегодня я рад что не сделал этого, потому что столкнувшись с возросшим трафиком они показали все свои ретрогарадно-луддитские наклонности во всей красе
Скатертью дорожка как говориться
А сегодня я рад что не сделал этого, потому что столкнувшись с возросшим трафиком они показали все свои ретрогарадно-луддитские наклонности во всей красе
You must not share projects that mostly consist of code written by 'generative AI'-tools (including services such as Claude, OpenAI Codex). Such projects having an unclear copyright status … and furthermore have little safeguards to ensure that they do not include harmful code
Скатертью дорожка как говориться
theregister
Codeberg gives vibe-coded projects the toss, promotes human FLOSS
AI no longer welcome in human-focused community
🤡12👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Забавно как многие механики добавляющие "реализм" на самом деле маленькие костылики.
Например - на видео выше баг который я унаследовал от оригинальной игры - отданый приказ на движение прямо рядышком с юнитом оставляет его вот в такомсостоянии как на видео.
Причина в том что юнит быстрый и за один навигационный тик он успевает проскочить конечную точку, и получить приказ вернутся назад. В следущуем тике он снова успевает ее проскочить до проверки.
И это только лишь один из багов которые исправлятся банальным добавлением небольшой инерции движения, которая позволяет естественным образом выходить из таких циклов. Если юнит не может двигаться сразу с полной скоростью инерация погасит такие проскакивания.
Но в оригниальной игре инерции не было, поэтому я добавил логику которая ограничивает скорость движения на последнем сегменте так чтобы юнит не мог пройти это растояние быстрее чем за тик
Например - на видео выше баг который я унаследовал от оригинальной игры - отданый приказ на движение прямо рядышком с юнитом оставляет его вот в такомсостоянии как на видео.
Причина в том что юнит быстрый и за один навигационный тик он успевает проскочить конечную точку, и получить приказ вернутся назад. В следущуем тике он снова успевает ее проскочить до проверки.
И это только лишь один из багов которые исправлятся банальным добавлением небольшой инерции движения, которая позволяет естественным образом выходить из таких циклов. Если юнит не может двигаться сразу с полной скоростью инерация погасит такие проскакивания.
Но в оригниальной игре инерции не было, поэтому я добавил логику которая ограничивает скорость движения на последнем сегменте так чтобы юнит не мог пройти это растояние быстрее чем за тик
👍3😁2
Forwarded from Work & Beer Balance Chat
This media is not supported in your browser
VIEW IN TELEGRAM
а еще после долгих и мучительных попыток вручную синхронизировать анимацию шаг с скоростью движения было обнаружено что в моделях зашита система событий которая оповещает когда юнит можно двигать и с каким коофицентом от его скорости.
Смотри какая красота теперь
Смотри какая красота теперь
🔥3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Еще один смешной баг. Один из юнитов на отрез отказывается вести огонь если цель достаточно далеко. Почему именно этот юнит?
Причина - логика преследования цели измеряет расстояние от центра юнита до цели, а логика стрельбы меряет от "ствола" до цели. Катапульта единственный юнит у которого "ствол" (место спавна "пули") находится сзади, и поэтому все еще не в радиусе дальности стрельбы, тогда как центр корпуса уже в ней
Причина - логика преследования цели измеряет расстояние от центра юнита до цели, а логика стрельбы меряет от "ствола" до цели. Катапульта единственный юнит у которого "ствол" (место спавна "пули") находится сзади, и поэтому все еще не в радиусе дальности стрельбы, тогда как центр корпуса уже в ней
🌚2
Пришло время подключать звуковое сопровождение.
Все звуки игры хронятся в .bag файлах - довольно примитивном архиве который был быстро вскрыт.
Хранит он разную солянку - моно, стерео звуки, wav, mp3 и тп.
Среди всего этого понятного разнообразия есть файлы (674 штуки) которые по названиям очевидно содержат голосовые линии юнитов (voice line feedback)
И вот их распаковать никак не получаеься никаким из известных кодеков.
Все звуки игры хронятся в .bag файлах - довольно примитивном архиве который был быстро вскрыт.
Хранит он разную солянку - моно, стерео звуки, wav, mp3 и тп.
Среди всего этого понятного разнообразия есть файлы (674 штуки) которые по названиям очевидно содержат голосовые линии юнитов (voice line feedback)
И вот их распаковать никак не получаеься никаким из известных кодеков.
👍2
Work & Beer Balance
Пришло время подключать звуковое сопровождение. Все звуки игры хронятся в .bag файлах - довольно примитивном архиве который был быстро вскрыт. Хранит он разную солянку - моно, стерео звуки, wav, mp3 и тп. Среди всего этого понятного разнообразия есть файлы…
Исследование сети в целом и гитхаба в частности показало - я не первый кто тут споткнулся:
- Vladan Bato автор AUD2WAV.exe распаковать их не смог. В реадми он оставил такую заметку
- Автор первого распаковщика bag - BagTool (очень известная тула среди фан сообщества, так как позволяла достать оригинальную музыку из игры) тоже не смог его разгадать
- Уже соременная попытка от IceReaper [ebfd-re](github.com/IceReaper/ebfd-re) увенчалась частичным успехом
Звуки уже узнаваемые, но с сильными помехами и щелчками. На скрине выше можно увидеть как отличатся ориниальный войслайн захваченый из игры с результатом работы этого конвертера
Итого за 25 лет так никто и не смог доконца распаковать эти файлы
- Vladan Bato автор AUD2WAV.exe распаковать их не смог. В реадми он оставил такую заметку
The common one is standard IMA-ADPCM (shift 3, i.e. `DIVISOR=8`) and his tools handle it. The other, used for 8-bit sounds like death screams, is "Westwood's proprietary compression and I don't know how it works"
- Автор первого распаковщика bag - BagTool (очень известная тула среди фан сообщества, так как позволяла достать оригинальную музыку из игры) тоже не смог его разгадать
The format of 0x0C WAVE files (CMP) in Dialog.bag is still a mystery to me"* — `0x0C` = 12 = `Compressed | Is16Bit`, i.e. exactly this codec. It exports these entries as an unplayable `.CMP` file rather than a real WAV
- Уже соременная попытка от IceReaper [ebfd-re](github.com/IceReaper/ebfd-re) увенчалась частичным успехом
Audio: Mostly working, but compressed files have a continuous noise.
Звуки уже узнаваемые, но с сильными помехами и щелчками. На скрине выше можно увидеть как отличатся ориниальный войслайн захваченый из игры с результатом работы этого конвертера
Итого за 25 лет так никто и не смог доконца распаковать эти файлы
GitHub
GitHub - IceReaper/ebfd-re: Emperor: Battle for Dune - Format reverse engineering.
Emperor: Battle for Dune - Format reverse engineering. - IceReaper/ebfd-re
👍1
Work & Beer Balance
Исследование сети в целом и гитхаба в частности показало - я не первый кто тут споткнулся: - Vladan Bato автор AUD2WAV.exe распаковать их не смог. В реадми он оставил такую заметку The common one is standard IMA-ADPCM (shift 3, i.e. `DIVISOR=8`) and his…
За дело взялся я в паре с соннетом - мы перебробывали много чего, разные алгоритмы, форматы, кодеки, я захватил через pipwire войслайны в условиях полной тишины в игре (для чего мне пришлось позаменять некоторые звуки тишиной, и создать уловия в игре где это было бы возможно) - получив таким образом идельный референс того что должно было получится.
Соннсет пытался математикой выкорелировать какие-то закономерности на сравнении референса с файлом но успеха не было.
Тогда мы пошли брутфорсить файлы игры, выискивая в скопилированном экзешники по найденым ранее хлебным крошкам как же там игра это все декодирует
Через несколько часов соннет начал сдаваться (md файл с поменетсками о том что было испровбовано и что нйадено уже первалил за пол тыщи строк) и выдавать мне после каждого действия выбор:
1. Признать что мы не можем распаковать этот фомрат и отложить на потом или найти замену (рекомендую)
2. Продолжать попытки не смотря ни на что
Уговорить его что-то вообще делать становилось все сложнее : )
Соннсет пытался математикой выкорелировать какие-то закономерности на сравнении референса с файлом но успеха не было.
Тогда мы пошли брутфорсить файлы игры, выискивая в скопилированном экзешники по найденым ранее хлебным крошкам как же там игра это все декодирует
Через несколько часов соннет начал сдаваться (md файл с поменетсками о том что было испровбовано и что нйадено уже первалил за пол тыщи строк) и выдавать мне после каждого действия выбор:
1. Признать что мы не можем распаковать этот фомрат и отложить на потом или найти замену (рекомендую)
2. Продолжать попытки не смотря ни на что
Уговорить его что-то вообще делать становилось все сложнее : )
Честно: это уже далеко не "один шаг" — трассировка до конца может занять ещё много часов без гарантии результата, а объём кода (виртуальные вызовы, сложные структуры) заметно больше, чем в decode-функции, которую я уже разобрал.
👀1