[>]
Попасть в официальный репозиторий игр
std.game
Wol4ik(syscall,22) — All
2017-06-18 17:27:31
Обращаюсь к автору Instead, Петру. Или к тем, от кого это зависит. Пишу в соавторстве игру на Instead, каким требованиям она должна отвечать, чтобы попасть в официальный репозиторий игр?
[>]
Re: Попасть в официальный репозиторий игр
std.game
Wol4ik(syscall,22) — Peter
2017-06-18 21:46:26
Пётр, на сколько я понял, любая игра попавшая в репозиторий (любой из...), автоматически становится доступна для скачивания и установки в Android версии Instead с PlayMarket. Если так, то этого нам будет достаточно. Важно, чтобы игра была, пусть и потенциально, но доступна широкой публике и не варилась бы только в узком кругу разработчиков (всех нас).
[>]
Re: Попасть в официальный репозиторий игр
std.game
Wol4ik(syscall,22) — Andrew Lobanov
2017-06-18 22:38:18
То есть в любом случае первым делом кидаю готовую и отлаженную игру в песочницу. Классическая игра, если я правильно понял, должна не быть только лишь визуальной новеллой, иметь игровые задачи, требовать усилий от игрока, но и не быть бессюжетной, не быть скучной. Хорошо, если так, то это как раз то, что мы делаем.
[>]
Версия 1.8 под Linux
std.game
Wol4ik(syscall,22) — Peter
2017-06-20 09:50:13
Пишу на версии Instead 1.8, не знаю, "к сожалению" это или нет. Пытался ставить версию 3.x под Linux, но маленький опыт работы с этой операционкой не дал поставить все как надо. Полностью перешел на Linux, и знал на что иду))) Однако, мой Linux Mint в экране приветствия предложил перейти в их репозиторий программ. Там нашелся Instead 1.8 и благополучно встал и работает. Хочу снять свое беспокойство по поводу... ---- все примеры синтаксиса и примеры кода в документации на Wiki и на форуме iFiction, на сколько я понимаю, актуальны для версии 1.8? В игре я пока не делаю ничего, что было бы возможно исключительно в версии 3.x. Или есть какие-то подводные камни?
[>]
Re: Версия 1.8 под Linux
std.game
Wol4ik(syscall,22) — Kerbal
2017-06-20 20:49:18
Сделал всё через консоль. Линукс отчитался там же, что всё обновилось и проч. Но пока при попытке узнать версию, выводит 1.9.
Наверное это просто строковое значение для вывода, и не есть реальная версия программы.
[>]
Re: Версия 1.8 под Linux
std.game
Wol4ik(syscall,22) — Peter
2017-06-20 21:09:40
Сделал всё предыдущее и добавил эту строку, пишет о невозможности "$sudo apt-get upgrade
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock - open (13: Отказано в доступе)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); у вас есть права суперпользователя?"
Пароль при этом не запрашивается. Понятия не имею, почему так. Этот пароль у меня всегда запрашивается для важных изменений или при установке программ. Я ввожу, и он принимается. Я так понимаю это что-то вроде root-доступа.
[>]
Re: Версия 1.8 под Linux
std.game
Wol4ik(syscall,22) — Peter
2017-06-20 21:53:27
Понял. Буду ковырять дальше. То есть частично что-то загрузилось, там был длинный лог с успехом в конце. Но вот игра "Проводник" не пошла))) Ок. спасибо за рекомендации.
[>]
Re: Версия 1.8 под Linux
std.game
Wol4ik(syscall,22) — Peter
2017-06-20 22:49:45
Спасибо, поковырялся немного и всё установилось. Снес 1.9 - зашел в Установку программ, а там как раз появились репозитории Instead для установки. Поставилась 3.0.0 - предпоследняя. "Проводник" запустился, это добрый знак))) в меню отличие, теперь нельзя выбирать игру из произвольной папки на диске, как в 1.9. Нужно ее перекидывать в рабочую папку Инстэда с играми. Это мелочи, просто теперь с флешки невозможно работать напрямую. Возможно, это просто я что-то делаю не так.
[>]
Re: Версия 1.8 под Linux
std.game
Wol4ik(syscall,22) — Wol4ik
2017-06-20 22:57:23
p.s. то есть фишка в чём - в версии под Windows Insted 3х можно выбирать откуда запускать игру, а в Linux'овой именно 3.х нельзя (у меня). При том что в 1.9 можно. Я просто отчитываюсь для обратной связи.
[>]
Аналог xwalk в Instead-3
std.game
Wol4ik(syscall,22) — All
2017-07-03 00:34:57
Друзья, пытаюсь освоить документацию к 3й версии Инстэд. Не смог найти аналог xwalk в этом новом движке. Конструкция для Инстэд версий более ранних, чем третья была такой и она работала:
dsc = [[ Описание игры.^^ {xwalk(room1)| Начать игру.}]];
(взято из учебника на iFction)
В Instead-3 она уже не работает. Эта команда устранена или заменена? Если заменена, то на что?
[>]
Re: Аналог xwalk в Instead-3
std.game
Wol4ik(syscall,22) — Kerbal
2017-07-03 09:32:28
Благодарю. Разобрался с учебником в папке doc. А то я всё пытался читать документацию stead3 прям с сайта. Да, у меня всё заработало так, как мне нужно. Продолжаю разработку игры)))
[>]
Re: Аналог xwalk в Instead-3
std.game
Wol4ik(syscall,22) — Andrew Lobanov
2017-07-03 10:13:36
Да. Прошу прощения, не первый раз путаюсь, просто назначение разделов не всегда очевидно. На форумах обычно дается краткая аннотация к разделам обсуждений прямо в шапке. Надеюсь привыкну и не буду оффтопить.
[>]
Игра Дровосек
std.game
Wol4ik(syscall,22) — All
2017-07-30 14:39:48
Не имею возможности обсудить в самой карточке игры, сервис помнит мой адрес и не дает зарегиться (наверное раньше писал что-то) и восстановить не могу. Пишу здесь.
Очень понравилась музыка, особенно вступительная. Проблема с следующем. Не могу пройти 4-й этаж, ставлю на плиту крысу и секретная дверка открывается, но крыса не хочет оставаться, боится. И дверка опять захлопывается. Прошу хотя бы намекнуть, может "сахар" ей нужен какой или я еще что упустил?
[>]
Побег из подвала
std.game
Wol4ik(syscall,22) — All
2017-08-13 01:47:10
Прошел игру, очень понравилась. Спасибо Polarshine. Загадки и способы их решения сбалансированы, требовалось усилие, чтобы пройти, но я ни разу не попадал в ситуации отчаянного непонимания. Автор на языке игровой механики слегка подталкивает к правильным методам решений. Слегка, значит в моем понимании - в меру.
[>]
игра "Долина кукол"
std.game
Wol4ik(syscall,22) — All
2017-11-14 21:05:55
Всем привет, Peter и кто занимается модерацией песочницы. Залил игру, поглятье кто-нибудь, проходит она по политике ресурса или нет. Только после этого смогу дать на нее сслыку, это игра на Паровозик, сейчас моя неделя.
[>]
Проводник
std.game
Wol4ik(syscall,22) — Peter
2018-03-21 16:45:23
Петр, прошу дать солюшн к проводнику, для проверки его проходимости. Так как проходимость самой Последней версии лежащей в репе не доказана. Есть подозрение, что игра либо сломана, либо использует в обновленной версии высшую степень защиты от прохождения.
[>]
Работа с глобальными переменными
std.prog
Wol4ik(syscall,22) — All
2017-07-05 01:37:17
Прочитал всю документацию про переменные типа global, и все места, где упоминаются переменные. Возможно я недопонимаю, так как раньше работал только с процедурными языками, а не с ООП. Вопрос в следующем. Я в самом начале задаю некие глобальные переменные
global {
hot = 100; -- тепло, главный показатель ГГ
power = 100; -- бодрость, главный показатель ГГ
reason = 99; -- рассудок, способность принимать решения, вниманимательность, адекватность
}
Эти переменные используются для свёрнутого описания статуса ГГ, чтобы они появлялись на экране только при двойном клике на объект инвентаря "статус", таки образом
obj { -- описание объекта "статуc ГГ"
nam = 'статус';
dsc = 'Это {статус}, просмотр статуса возможен при двойном клике на надписи "статус"';
tak = 'Просмотр статуса возможен при двойном клике на надписи "статус"';
inv = function(s)
p (hot, '% - тепло^');
p (power, '% - бодрость, способность действовать^');
p (reason, '% - рассудок^');
end
} -- конец описания объекта "статуc ГГ"
И это работает. Однако, часто возникает необходимость, при попадании в какую-либо локацию (room), изменить значения этих переменных. По условию, или принудительно без всяких условий. Я не понял как это делается. Простая запись, типа
hot = 83; -- тепло изменилось со 100 на 83
power = 79; -- бодрость изменилась со 100 на 79
reason = 51; -- рассудок изменился с 99 на 51
Instead3 не выдает ошибки, но и не меняет значения переменных при попадании в эту комнату. Двойной клик на объект инвентаря "статус" выдает на экран первичное значение переменных. Друзья, подскажите, что я делаю не так.
[>]
Re: Работа с глобальными переменными
std.prog
Wol4ik(syscall,22) — Wol4ik
2017-07-05 08:34:59
>>Instead3 не выдает ошибки, но и не меняет значения переменных при попадании в эту комнату. Двойной клик на объект инвентаря "статус" выдает на экран первичное значение переменных.>>
Бился пол ночи, смотрел коды игр из репозитория. Решил проблему созданием фиктивного описания сцены
dsc = function(s)
hot=72;
power=89;
reason=51;
end;
[>]
Динамическое описание сцены
std.prog
Wol4ik(syscall,22) — All
2017-07-13 12:40:58
Вопрос. Но пока пояснение. Как правило, в играх на Instead динамическая часть сцены расположена на экране выше, чем основное описание сцены (dsc, decor). То есть при появлении вообщений в динамической части - текст decor смещается вниз, чтобы освободить место для появившейся надписи курсивом.
Как поменять их местами и возможно ли это? Можно ли при помощи кода игры, модулей или настройки темы (голубая сталь, стандартная и т.п.) сделать, чтобы динамическая часть сцены, точнее сообщения в ней, выводились всегда ниже, чем статичный блок описания сцены decor (и, разумеется, ниже блока описания об'ектов)?
[>]
Re: Динамическое описание сцены
std.prog
Wol4ik(syscall,22) — Wol4ik
2017-07-13 15:33:59
p.s. если быть точнее, то вопрос связан именно с выводом реакций игры (движка) в виде текста курсивом. Прочёсывая документацию, увидел, что динамическая часть сцены неоднозначное понятие. Я знаю что есть статическая часть (декорации, некоторые даже активные) и динамическая (объекты , которые пока лежат, стоят и т.д, но они могут быть взяты в инвентарь, убраны вообще или видоизменены). Но помимо этих двух частей есть область вывода реакций игры - "вы взяли карандаш", "карандаш, как карандаш" и т.п. Вот эти надписи я хочу попытаться переместить, чтобы они появлялись внизу экрана, а не вверху. Но пока не понял как.
[>]
Re: Динамическое описание сцены
std.prog
Wol4ik(syscall,22) — Wol4ik
2017-07-13 15:51:56
p.s. повлияет ли на то, что я описал ранее, изменение вот этой функции в плане последовательности расположения этих областей игрового экрана (глава 21 документации по Inst3 "ФОРМАТИРОВАНИЕ И ОФОРМЛЕНИЕ ВЫВОДА") ?
game.display = function(s, state)
local r, l, av, pv
local reaction = s:reaction() or nil -- реакция
r = std.here()
if state then -- такт игры?
reaction = iface:em(reaction) -- курсив
av, pv = s:events()
av = iface:em(av) -- вывод ”важных” life
pv = iface:em(pv) -- вывод фоновых life
l = s.player:look() -- objects [and scene] -- объекты и сцена
end
l = std.par(std.scene_delim,
reaction or false, av or false, l or false,
pv or false) or ’’
return l
end;
[>]
Re: Динамическое описание сцены
std.prog
Wol4ik(syscall,22) — Peter
2017-07-13 16:30:22
Большое спасибо. Да, я неоднократно встречал этот посыл о ненужности вмешательства в дела вывода, он проходит белой нитью. И полностью согласен, за тем я с большим трудом и пришел к Instead, чтобы облегчить себе написание содержательной части игр. В оправдание могу лишь сказать, что в данном случае этого требует игра, другого об'яснения у меня нет))) Все остальные твои замечания в документации по поводу нестандартных требований к платформе, типа разные размеры текста в одном экране и т.п. разделяю.
[>]
Re: Динамическое описание сцены
std.prog
Wol4ik(syscall,22) — Peter
2017-07-14 00:51:29
Пётр, я сделал, как того хотел. Твои доводы убедительны, но, как часто бывает, убедить может только свой опыт))) Посмотрел, как это выглядит - хуже, чем я представлял. Тут еще играет роль устройство внимания человека. Когда шапка не меняется, а внизу под неизменным текстом что-то появляется/меняется, взгляд очень неохотно переходит вниз экрана. Мы, как правило, держим внимание вверху экрана, так как там самая важная информация. Да, хорошо, что текст decor отскакивает вниз/прыгает, есть есть некая живость "картинки", хотя добавляется всего 1-2 строчки реакции вверху. В общем, остаюсь на базовых настройках))) Большое спасибо за примеры и пояснения. Продолжаю медленно, но верно работать над игрой.
[>]
Работа с об'ектами в сценах, в которые возможно многократное возвращение игрока
std.prog
Wol4ik(syscall,22) — All
2017-07-14 16:26:31
Чем больше делаешь, тем больше вопросов. Я уже читал о порядке работы интерпетатора, и могу работать с предметами и активными декорациями в пределах одной сцены. Тем более есть хорошая тестовая игра/учебник, которая прилагается к Inst3. Однако, пришлось залезать и в новую и в старую документацию, чтобы прочитать о теоретических вопросах. Это было вступление)))
Вопрос в следующем. Могу ли я НЕ внутри описания некой конкретной сцены room {.....} принудительно добавлять и убирать об'екты на эту или иную сцену (room) при помощи или без помощи инвентаря, а одними лишь функциями обработчиков самих об'ектов и декораций?
На сколько я знаю, если я пришел на сцену "лес", в которую при описании room {....} внутри фигурных скобок добавлены ранее сформированные obj "лежит {топор}" и obj "валяется {чурбак}", то я сейчас могу для каждого об'екта иметь возможность изменить динамическую часть сцены. Взять топор в инвентарь, он исчезнет со сцены. И порубать этим топором чурбак, он заменится на "поленья" и "щепки". Это штатно и понятно, и на других похожих случаях мной отработано.
Но если я уйду с этой сцены по way или @ walk, а потом вернусь обратно в нее же с уже другими сюжетными задачами, то снова обнаружу не только лежащий топор, но и неразрубленный чурбак. По этому я и спросил про принудительное управление об'ектами инвентаря и любой другой сцены (не только текущей), возможно ли оно. То есть я хочу не только изменить сцену своими действиями, но и вернувшись в нее, застать прошлые изменения и дополнить их новыми, к примеру я притащил еще и спички, которые где-то выменял на топор, которого не должно уже быть ни в этой сцене, ни в инвентаре, ни вообще в игровом мире.
Это я не к тому, что я хочу многого, просто проще заранее знать, если это невозможно штатными методами, я тогда изловчусь и попытаюсь написать игровую механику, чтобы она обеспечивала всю эту странную песочницу. Пока я могу ходить только в одномерном мире и строить сюжет без возможности вернуться на локации, ранее уже посещенные. Есть игра Шизофрения, где описанное мной реализовано (сохранение изменений в сцене при возвращении) , но я пока не смог разобраться как.
[>]
Чтобы избежать ошибок
std.prog
Wol4ik(syscall,22) — All
2017-07-19 15:00:21
В процессе понял, что уверенных знаний в инстэд пока не хватает. Читаю сообщения об ошибках в сюжетах уже опубликованных инстэд-игр и просьбы к авторам поправить нестыковки. Хочу изначально, большую часть ключевых dsc и вообще текстовок связанных с room и obj вводить в виде переменных. А не в виде устойчивых (константных) dsc и decor. Просто, чтобы они были управляемы. Ну, к примеру, decor - "Вы пришли на заснеженную поляну и видите {домик}", потом он сгорает, чтобы не делать перетасовок, я лишь в определенный момент заменю значение строковой переменной и будет уже "....и видите {сгоревший домик}". А все движимые об'екты, да, придется тоже задавать заранее и вводить их при помощи кода (place и остальных конструкций). Пока я мыслю себе так.
[>]
Re: Чтобы избежать ошибок
std.prog
Wol4ik(syscall,22) — Peter
2017-07-19 18:45:44
Спасибо. Пойду перечитывать про переменные, так как догадываюсь, что s.borned это хоть и переменная, но и одновременно некое "служебное слово" по отношению к borned. То есть понятно, что дело не в названии, а в том, как добавляется и интерпритируется инстэдом это s.****
[>]
Re: Чтобы избежать ошибок
std.prog
Wol4ik(syscall,22) — Peter
2017-07-19 18:50:21
То есть, да, я понял, что в dsc конкретного об'екта мы заносим все возможные формы существования этого об'екта, и уютный и сгоревший, и еще можем добавить другие состояния. Не понял пока куда и зачем вернет нас return.
[>]
Re: Чтобы избежать ошибок
std.prog
Wol4ik(syscall,22) — Wol4ik
2017-07-19 19:17:41
Аааа. Прошу прощеня, забыл очевидную вещь)))) если убрать return, но отобразятся сразу оба состояния. А return вернет нас просто в room, где об'ект фигурирует. К сожалению не знал, что Инстэд может реализовывать return без парного отсылающего оператора (типа gosub и подобных). Теперь я еще продвинулся с твоей помощью, спасибо.
[>]
Возврат из комнаты в ту, из которой мы попадаем при помощи way
std.prog
Wol4ik(syscall,22) — All
2017-07-23 00:09:58
Ну, собственно в этом и вопрос. У меня есть несколько служебных комнат, в которые нужен доступ из совершенно разных сцен. Как то - Статус (да, я знаю и научился делать статус в инвентаре), текущие задания для ГГ, меню разведения огня, меню сна и т.п. Я это делаю так (лирика сокращена для краткости)
room {-- место ночёвки
nam = 'loc1.episode1';
title = 'Блок радиоуправления';
way = { 'статус', 'задания' }; -- кнопки статус и задания
decor = [[Комната, где доступны статус и задания]];
}
И оно работает, пока я не пытаюсь вернуться обратно....
Вот, одна из служебных комнат выглядит так
room {
nam = 'задания';
title = 'задания';
decor = [[Текущие задания...{@ walkout()|назад}]];
}
Но оно не работает. Я пытался применять функцию from(), но так и не понял, как ее синтаксически прилепить к "@ walk". Помогите найти дорогу обратно из служебной комнаты в любую произвольную, из которой я пришел в эту служебную при помощи way.
[>]
Важный вопрос
std.prog
Wol4ik(syscall,22) — All
2017-07-25 17:40:35
Пётр, к тебе вопрос. Он может показаться банальным и даже странным. Мне это важно для продумывания дизайна игры и игровой механики. Пытаюсь не выходить из границ целей создания движка Instead (я читал манифест), с другой стороны мне важно как это будет выглядеть для игрока, ну и себе границы задать. Вопрос вот в чем. Какую игру (игры) на Instead (игры не твоего пера) ты считаешь, что они (она) больше всего и полнее реализуют заложенные тобой в движок идеи? Независимо от того, нравится ли тебе сама игра и сюжет или нет. Ну, есть такие, чтобы ты сказал не просто "качественная игра", а типа того, что "да, вот для таких игр я и создавал Instead, и хотелось бы таких игр видеть больше"?
[>]
Re: Важный вопрос
std.prog
Wol4ik(syscall,22) — Peter
2017-07-25 23:33:51
Спасибо за пояснения. Посмотрев примеры игр из твоего списка (с комментариями) и уловив суть советов, решил делать так:
*выбрать только то (те способы), что уже знаю, и что спрашивал здесь на ветке.
*постараться сделать игру, пользуясь только знакомыми и отработанными способами, не пытаясь непомерно развивать технологии параллельно развитию сюжету. Делать ровно.
*сосредоточиться на самой игре, варьируя уже известными и отработанными ходами (в кодинге Instead).
В принципе, ты рассказал мне (здесь и в документации) некий минимум, чтобы я мог уже свободно ходить между локациями, менять декорации, брать и выкладывать предметы, заменять их в инвентаре на другие (замена яблока на огрызок при использовании и т.д.), работать с некоторыми функциями. Собственно, да... пора уже переходить к фазе разработки несложной, но законченой игры. Первой игры на Instead.
[>]
Выложить объект из инвентаря в произвольную сцену room
std.prog
Wol4ik(syscall,22) — All
2017-08-02 15:08:36
Добрый день. Вопрос в следующем, как работать с функциями place, put или иными, если я не готов конкретно назвать имя комнаты куда хочу положить объект (переместить из инвентаря)? Что я имею - служебный объект инвентаря, который выполняет роль одного из действий (починить, сломать, говорить и т.п.) конкретно "выложить".
obj {-- служебный объект выложить, действие
nam = '-выложить';
pri = -99;
inv = [[Хелен может выкладывать предметы, которые пока ей не нужны.
Следует один раз кликнуть на действии "выложить",
и второй раз кликнуть на нужный предмет в инвентаре.]];
}
В него я специально не вписываю use/used, так как это все впишу в объекты-цели. Однако, вот есть условно 'кувалда', и нужно, чтобы ее used при соединении и 'выложить', помещал эту кувалду в ту комнату, где находится ГГ, независимо из какой комнаты эта конструкция вызывается.
obj {-- кувалда, физический объект
nam = 'кувалда';
used = function(s)
if s^'выложить' then
place (s, ???????????);
remove(s);
end;
}
То есть вопрос, как вписать в функцию отсылку к ТЕКУЩЕЙ комнате, название которое тоже есть функция?
[>]
Очистка всего и вся, полный рестарт игры
std.prog
Wol4ik(syscall,22) — All
2017-08-10 09:14:42
Добрый день. При создании фатальных концовок возникла необходимость приведения игры к "нулевому состоянию", то есть перегенерации всего игрового мира, возвращения об'ектов на свои места, инициализации всех переменных и т.д. Прошу подсказать, как это сделать в теле описания сцены или иным образом. Может быть есть функция или команда, которая имитирует пункт с меню Stead3 "начать заново"?
[>]
Re: Очистка всего и вся, полный рестарт игры
std.prog
Wol4ik(syscall,22) — Peter
2017-08-10 11:40:04
Спасибо, получилось. Создал спец.об'ект и поместил его в комнату одной из концовок:
--
obj { -- об'ект фатальной концовки, при активации перезапускает игру.
nam = 'bad1obj';
dsc = '{Начать заново...}';
act = function()
instead.restart(true);
end;
}
--
[>]
Re: Очистка всего и вся, полный рестарт игры
std.prog
Wol4ik(syscall,22) — Andrew Lobanov
2017-08-10 19:03:28
Peter> А так, смотри сам. При вставке кода используй 4 символа =, примерно так:
Да, спасибо, теперь понял. Пётр говорил, но я тогда не так понял (что это именно про вставку в сообщение). Буду знать. Может шпаргалку повесить? И про спойлеры в game. например тоже, а то сообщения рано или поздно утопятся новыми и кто не в курсе опять будет спрашивать одно и тоже. Вообще, я рад здесь находиться, и поучаствую материально по силам.