TGViewer
The ExtremeCode Times The ExtremeCode Times @extremecode · 35.6K subscribers
Post #1308 38.1K
Специально для неслишком умных чуваков из каментов: Я воссоздаю движок уже готовой игры, а не пилю игру с нуля. Где вы тут смогли увидеть противоречие в принципе? Игра называется Scratches / Шорох.

1. Игра Abandonware; в правовом аду, она не может продаваться
2. Оригинальный движок игры максимально хреново сохранился:
2.1 SCream это скриптовый хост, который работает, как стейт машина, т.е. обрабатывает команды подающиеся в него последовательно, в зависимости от текущего стека состояний.
2.2 Вся игра написана на Lua, байткод легко декомпилируется — но он содержит в себе только игровую логику, а не стек состояний / рендеринг / звук / интеракцию с предметами / etc

Пример создания кубмапа на Lua в игре, который обрабатывает движок:
  scCreate(SC_ROOM, "house-guest")
scBegin(SC_ROOM)
scCreate(SC_NODE, "n1")
scBegin(SC_NODE)
scTexture(SC_FRONT, "hs-guest_n1f.jpg")
scTexture(SC_BACK, "hs-guest_n1b.jpg")
scTexture(SC_LEFT, "hs-guest_n1l.jpg")
scTexture(SC_RIGHT, "hs-guest_n1r.jpg")
scTexture(SC_UP, "hs-guest_n1u.jpg")
scTexture(SC_DOWN, "hs-guest_n1d.jpg")
scFootstep("fx-foot_hollow1.ogg")


И вот подобной хуйни там на 23к строк кода. Как воссоздать движок по таким наскальным рисункам? Загадка Жака Фреско. Очевидно по названию функции и передаваемым аргументам. Вот в инициализации кубамапа все очевидно. Но есть места и неочевидные, вроде
  scFXPlayEx(SC_3DD, "fx-hammer_hall.ogg", 0, 1)


2.3 Игра захардкожена в разрешении 1024х768, из-за оригинальной реализации движка она не может рендерить картинку в большем разрешении, т.к. все hotspot'ы (интерактивные области) имеют абсолютные координаты. В моей реализации я конвертирую все входные координаты в относительные, под любое разрешение.

1 скриншот — оригинальное разрешение
2 скриншот — оригинальная игра, растянутая на полный экран
3 скриншот — моя реализация двигла, с относительными хотспотами

Скриншоты мартовские, сейчас я уже далеко вперед продвинулся.
  • 👏 232
  • ❤ 49
  • 👍 32
  • 🔥 23
  • 🌚 9
  • 🤓 3
  • ❤‍🔥 2
  • 🤣 1
More from @extremecode
  1. Sep 21, 2026Вспоминаю как я батрачил в месте где компиляцию легаси на плюсах ставили на ночь.
  2. Sep 18, 2026ИИ-платформа Рег.облака: один API вместо десяти провайдеров Проверить, какая LLM работает…
  3. Sep 18, 2026А за кого бы проголосовала муха-дрозофила? 🤨
  4. Sep 18, 2026Че как на счет контента про устройство работы мухи? Разобрать по бырому как она там функци…
  5. Sep 17, 2026Хакатон на космических данных. Санкт-Петербург, Красноярск или онлайн из любой точки стран…
  6. Sep 16, 2026Главный нейропогонщик из нашего чата научил муху играть в подкидного дурака 😄 Она сыграла…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →