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.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Как я пытался игры Инстедоза-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
Модератор (+451, -169)
Откуда: Кемерово
Зарегистрирован: 02.11.2009
Сообщений: 673
Вебсайт

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

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

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

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

Неактивен

2    0    #3
03.04.2019 17:58

gloomy
Модератор (+277, -67)
Зарегистрирован: 21.02.2009
Сообщений: 427

http://instead.hugeping.ru

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

Так как Инстедоз-6 ещё не вышел, на форум выкладываются отдельные файлы. Запустить их могут только разработчики.
А так алгоритм не очень сложный: распаковал metaparser-1.3.zip и положил в этот каталог main3.lua. Запустил.

Неактивен

0    0    #4
03.04.2019 18:07

gloomy
Модератор (+277, -67)
Зарегистрирован: 21.02.2009
Сообщений: 427

http://instead.hugeping.ru

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

Я могу сделать так, чтоб все файлы с metaparser находились в подкаталоге с игрой. Это не очень сложно, так будет проще?

Неактивен

0    0    #5
03.04.2019 18:09

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

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

Oreolek написал:

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

Мне кажется, слово "должны" тут чересчур категоричное. То, как INSTEAD обращается к файлам отдельных модулей, говорит как раз о том, что Метапарсер наравне с прочими модулями вполне может быть частью INSTEAD, а игры — иметь общие данные и общий словарь. Свой словарь — это всего лишь сокращение общего словаря для уменьшения размера игры, а то, что модули разных версий Метапарсера называются одинаково говорит либо о хорошей обратной совместимости, либо не совсем правильно. Но я могу и ошибаться.

В любом случае Метапарсер позиционируется как модуль Инстеда, поэтому при обновлении модуля, мне хотелось бы обновить его в файлах Платформы, а не пихать заново в каждую из игр. Тем более, что некоторые из них а архивах.

Неактивен

2    0    #6
03.04.2019 18:15

gloomy
Модератор (+277, -67)
Зарегистрирован: 21.02.2009
Сообщений: 427

http://instead.hugeping.ru

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

В принципе, да, можно попробовать класть модуль отдельно. Но есть две проблемы:

- модуль не знает путь, по которому он находится сам. Поэтому не ясно как читать большой словарь. К тому-же, это запретит делать песочница.
- модуль должен прочитать все lua файлы с игрой, чтобы сгенерировать словарь. Но стандартная библиотека является тоже исходным кодом. В итоге, та же самая проблема.

Ну и еще одно. МП постоянно развиваетсЯ, поэтому в релизах мы кладём именно тот мп, с которым была написана игра.

Что точно можно сделать:

я могу сделать так, что в игру достаточно будет скопировать каталог parser/. Но проблема в том. что нужна еще и тема инстеда специальная. Сейчас же довольно все просто. распаковал parser.zip и в нем пишешь игру main3.lua.

Неактивен

1    0    #7
03.04.2019 18:19

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

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

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

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

Неактивен

0    0    #8
03.04.2019 18:56

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

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

Да не вопрос. Я не пытаюсь навязать своё видение МП, просто я нигде не нашёл описание, что делать дальше, имея на руках архив с INSTEAD и архив с Метапарсером. Как мне запустить ту же HEIDI, чтобы, например, посмотреть как оно работает/выглядит. Отсюда все эти танцы с бубном. Потому как объяснение, что вот я скачал архив с Метапарсером, а потом должен из этого архива часть файлов скопировать во вложенный подкаталог с Heidi, чтобы всё это заработало, звучит очень странно.

Неактивен

0    0    #9
03.04.2019 19:12

gloomy
Модератор (+277, -67)
Зарегистрирован: 21.02.2009
Сообщений: 427

http://instead.hugeping.ru

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

В доке для разработчиков это  написано :

Также, в репозитории в каталоге metaparser/demos есть несколько дополнительных демонстрационных игр. Вы можете скопировать необходимые файлы любой из игр (обычно main3.lua и dict.mrd) в каталог с МП3 и запустить её.

Но релиза ещё не было, повторюсь. Так бы оно просто работало бы само.

Неактивен

1    0    #10
03.04.2019 20:02

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

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

Тут недопонимание возникает и на уровне работы с демоиграми. Потому как, согласно логике данного объяснения (из руководства), нужно взять файлы из зелёного каталога и скопировать их в красный каталог. Если хочешь попробовать другую игру (из синего каталога), то нужно сперва удалить из красного каталога файлы от предыдущей игры и скопировать все файлы из синего каталога опять же в красный.

metaparser
    demos
        heidi
        wtell
    doc
    morph
    theme
    mp.lua
    mp-ru.lua
    mplib.lua
    theme.ini

Вот если бы вынести demos из каталога metaparser, то уже стало бы понятнее. Хотя файл общего словаря может оказаться лишним, а может и нет.

В общем, не вполне понятная иерархия минимально необходимого набора файлов: игра-метапарсер-инстед, усугубляемая перемешиванием файлов игры с файлами метапарсера. Возможно, после изучения руководства всё становится понятным, но ведь сперва хочется посмотреть, а как это всё выглядит в работе, а потом уже опускаться до технических деталей.

Неактивен

0    0    #11
03.04.2019 20:21

gloomy
Модератор (+277, -67)
Зарегистрирован: 21.02.2009
Сообщений: 427

http://instead.hugeping.ru

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

Агу, ну я подумаю к след. релизу метапарсера как лучше сделать.

Неактивен

0    0    #12
05.04.2019 19:03

gloomy
Модератор (+277, -67)
Зарегистрирован: 21.02.2009
Сообщений: 427

http://instead.hugeping.ru

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

Кажется, у меня получилось. В 1.4 скорее всего можно будет класть модуль отдельно.

Неактивен

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

Powered by PunBB
© copyright 2001–2024 iFiction.Ru