Специально для неслишком умных чуваков из каментов: Я воссоздаю движок уже готовой игры, а не пилю игру с нуля. Где вы тут смогли увидеть противоречие в принципе? Игра называется Scratches / Шорох.
1. Игра Abandonware; в правовом аду, она не может продаваться
2. Оригинальный движок игры максимально хреново сохранился:
2.1 SCream это скриптовый хост, который работает, как стейт машина, т.е. обрабатывает команды подающиеся в него последовательно, в зависимости от текущего стека состояний.
2.2 Вся игра написана на Lua, байткод легко декомпилируется — но он содержит в себе только игровую логику, а не стек состояний / рендеринг / звук / интеракцию с предметами / etc
Пример создания кубмапа на Lua в игре, который обрабатывает движок:
И вот подобной хуйни там на 23к строк кода. Как воссоздать движок по таким наскальным рисункам? Загадка Жака Фреско. Очевидно по названию функции и передаваемым аргументам. Вот в инициализации кубамапа все очевидно. Но есть места и неочевидные, вроде
2.3 Игра захардкожена в разрешении 1024х768, из-за оригинальной реализации движка она не может рендерить картинку в большем разрешении, т.к. все hotspot'ы (интерактивные области) имеют абсолютные координаты. В моей реализации я конвертирую все входные координаты в относительные, под любое разрешение.
1 скриншот — оригинальное разрешение
2 скриншот — оригинальная игра, растянутая на полный экран
3 скриншот — моя реализация двигла, с относительными хотспотами
Скриншоты мартовские, сейчас я уже далеко вперед продвинулся.
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 скриншот — моя реализация двигла, с относительными хотспотами
Скриншоты мартовские, сейчас я уже далеко вперед продвинулся.
group-telegram.com/extremecode/1310
Create:
Last Update:
Last Update:
Специально для неслишком умных чуваков из каментов: Я воссоздаю движок уже готовой игры, а не пилю игру с нуля. Где вы тут смогли увидеть противоречие в принципе? Игра называется Scratches / Шорох.
1. Игра Abandonware; в правовом аду, она не может продаваться
2. Оригинальный движок игры максимально хреново сохранился:
2.1 SCream это скриптовый хост, который работает, как стейт машина, т.е. обрабатывает команды подающиеся в него последовательно, в зависимости от текущего стека состояний.
2.2 Вся игра написана на Lua, байткод легко декомпилируется — но он содержит в себе только игровую логику, а не стек состояний / рендеринг / звук / интеракцию с предметами / etc
Пример создания кубмапа на Lua в игре, который обрабатывает движок:
И вот подобной хуйни там на 23к строк кода. Как воссоздать движок по таким наскальным рисункам? Загадка Жака Фреско. Очевидно по названию функции и передаваемым аргументам. Вот в инициализации кубамапа все очевидно. Но есть места и неочевидные, вроде
2.3 Игра захардкожена в разрешении 1024х768, из-за оригинальной реализации движка она не может рендерить картинку в большем разрешении, т.к. все hotspot'ы (интерактивные области) имеют абсолютные координаты. В моей реализации я конвертирую все входные координаты в относительные, под любое разрешение.
1 скриншот — оригинальное разрешение
2 скриншот — оригинальная игра, растянутая на полный экран
3 скриншот — моя реализация двигла, с относительными хотспотами
Скриншоты мартовские, сейчас я уже далеко вперед продвинулся.
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 скриншот — моя реализация двигла, с относительными хотспотами
Скриншоты мартовские, сейчас я уже далеко вперед продвинулся.
BY The ExtremeCode Times



Share with your friend now:
group-telegram.com/extremecode/1310