Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

  • Список
  •  » INSTEAD
  •  » Как я пытался игры Инстедоза-6 запустить (INSTEAD 3.3.0 + Метапарсер 1.3 + игра main3.lua)

0    0    #1
03.04.2019 17:04

Olegus t.Gl.
Участник (+1073, -250)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2905
Вебсайт

Как я пытался игры Инстедоза-6 запустить (INSTEAD 3.3.0 + Метапарсер 1.3 + игра main3.lua)

Я далёк от технологических тем INSTEAD, поэтому когда мне захотелось поиграть в игры Инстедоза-6, то я скачал последний Инстед под Windows (3.3.0, версия, не требующая установки), скачал модуль Метапарсер 1.3, скачал игры… и начал искать, как это всё заставить работать вместе.

Да, gloomy мне как-то давал несколько советов, как заставить всё работать: http://instead-games.ru/forum/index.php … ment_12114 Но мне почему-то хотелось, чтобы Инстед с Метапарсером у меня лежали отдельно, а игры отдельно, чтобы не приходилось каждую игру дополнять модулями Метапарсера, либо Метапарсер набивать файлами игр (которые даже называются одинаково).

Далее будет Адъ и рубрика "Зачем просто, когда можно сложно", возможно есть и более умные способы, а то и описание, как это сделать изящно и правильно, но я сходу ничего не нашёл.

После нескольких фальстартов я запустил утилиту отслеживания обращения программ к диску, запустил Инстед с -debug и начал сопоставлять обращения к модулям Метапарсера и получаемым ошибкам.
----------
1
Запускаю: Голый Инстед, Метапарсера нет, голая игра
Результат: Инстед, не найдя файл "mp-ru.lua" в каталоге игры, ищет его в каталоге "\stead\stead3\"
Действие: Копирую файл "mp-ru.lua" из архива Метапарсера в каталог "\stead\stead3\"
----------
2
Запускаю: Инстед + "\stead\stead3\mp-ru.lua", голая игра
Результат: Инстед, не найдя файл "morph\lang-ru.lua" в каталоге игры, ищет его в каталоге "\stead\stead3\"
Действие: Копирую каталог "morph" из архива Метапарсера в каталог "\stead\stead3\"
----------
3
Запускаю: Инстед + "\stead\stead3\mp-ru.lua" + "\stead\stead3\morph", голая игра
Результат: Инстед, не найдя файл "mp.lua" в каталоге игры, НЕ ИЩЕТ его в каталоге "\stead\stead3\", а сразу сообщает об ошибке
Действие: Копирую файл "mp.lua" из архива Метапарсера в каталог игры
----------
4
Запускаю: Инстед + "\stead\stead3\mp-ru.lua" + "\stead\stead3\morph", игра + "mp.lua"
Результат: Инстед, не найдя файл "mplib.lua" в каталоге игры, НЕ ИЩЕТ его в каталоге "\stead\stead3\", а сразу сообщает об ошибке
Действие: Копирую файл "mplib.lua" из архива Метапарсера в каталог игры
----------
5
Запускаю: Инстед + "\stead\stead3\mp-ru.lua" + "\stead\stead3\morph", игра + "mp.lua" + "mplib.lua"
Результат: Игра запустилась
----------

И казалось бы всё хорошо, но я заметил, что Инстед ищет ещё пару файлов в каталоге игры, но не найдя их, не ищет их в каталоге Инстеда: "morph\rgramtab.tab" и "dict.mrd". Насколько я помню, "dict.mrd" в каталоге игры это урезанный словарь, так что тут всё нормально. И в игре "heidi" из архива Метапарсера это используется.

Пробуем игру "heidi":

Все старые ошибки повторились, в каталог игры добавлены файлы "mp.lua" и "mplib.lua".

Запускаю: Инстед + "\stead\stead3\mp-ru.lua" + "\stead\stead3\morph", игра + "mp.lua" + "mplib.lua"
Результат: Ошибка с кучей отладочной информации
Действие: Просто по прошлому опыту создаю в каталоге игры подкаталог "morph" и копирую в него файл "rgramtab.tab" из архива Метапарсера
----------
Запускаю: Инстед + "\stead\stead3\mp-ru.lua" + "\stead\stead3\morph", игра + "mp.lua" + "mplib.lua" + "morph\rgramtab.tab"
Результат: Игра запустилась
----------

Что-то тут явно не так с обращением платформы к файлам "mp.lua", "mplib.lua" и "morph\rgramtab.tab" (это как минимум). Хотя возможно, что всё так и должно работать, просто я перемудрил.

Неактивен

1    0    #2
03.04.2019 17:49

Oreolek
Модератор (+469, -176)
Откуда: Кемерово
Зарегистрирован: 02.11.2009
Сообщений: 704
Вебсайт

Re: Как я пытался игры Инстедоза-6 запустить (INSTEAD 3.3.0 + Метапарсер 1.3 + игра main3.lua)

У каждой игры должны быть свой словарь и своя версия Метапарсера. Например, потому что глаголы из одной игры не заработают в другой. Общие модули - это только те, которые идут вместе с инстедом, метапарсер - это вообще не модуль в понимании игрока, его нельзя класть отдельно от игры.

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

Отредактировано Oreolek (03.04.2019 17:53)

Неактивен

1    0    #3
03.04.2019 18:19

Oreolek
Модератор (+469, -176)
Откуда: Кемерово
Зарегистрирован: 02.11.2009
Сообщений: 704
Вебсайт

Re: Как я пытался игры Инстедоза-6 запустить (INSTEAD 3.3.0 + Метапарсер 1.3 + игра main3.lua)

Общий модуль на все игры работает, когда ты играешь только в старенькое и стабильное, а не в самый свежак с форума, который ещё даже не оформили в общую подборку. Потому что в git лежит одна самая-самая-окончательная версия МП, в игре автор поставил на 1 коммит раньше, а игрок скачал МП давным-давно и внезапно надо обновлять не только игру.

Мой совет - жди релиза.

Неактивен

  • Список
  •  » INSTEAD
  •  » Как я пытался игры Инстедоза-6 запустить (INSTEAD 3.3.0 + Метапарсер 1.3 + игра main3.lua)

Powered by PunBB
© copyright 2001–2026 iFiction.Ru