subject: Вопросы artomberus
16.02.2019 13:20
RSS-bot (tavern,2)
peter: Тогда уж: "Дневники @artomberus " :D
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12816/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
16.02.2019 17:40
RSS-bot (tavern,2)
artomberus: @peter, точно : ))) Ну, инстеда таки касается, вроде не офтопик. Просто пишу лирически и развернуто. Вот вопросы форулирую иначе, насколько это возможно - кратко и по сути. Пытаюсь, по крайней мере.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12818/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
16.02.2019 18:50
RSS-bot (tavern,2)
peter: Да я только за, форум и так еле шевелится, а так -- есть что почитать. :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12820/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
17.02.2019 09:40
RSS-bot (tavern,2)
spline: > @peter написал: > Да я только за, форум и так еле шевелится, а так -- есть что почитать. :) Надо просто прикрыть чатики и форум оживёт. И клуб тоже =)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12821/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 02:30
RSS-bot (tavern,2)
artomberus: Когда игра разрастается до большого количества действий - уже не получается каждый раз прокликивать всё для тестирования логики работы. Поэтому временно делаю переход к нужному моменту из первой сцены. Получается такой универсальный объект-ссылка, который буду постоянно модифицировать в процессе разработки. Сейчас медленно, но верно работаю над первым диалогом в игре. Технически - разобрался. Есть примеры, достаточно подробное описание того, как они работают. В содержательном плане труднее. Надо найти общий стиль речи, который должен соблюдаться, быть однородным, независимо от того, в какой день я пишу тексты, оно не должно влиять. Сильно косить под старину не получается пока, мышление-то современное. Но и доводить совсем до абсурда и присваивать древней сказочной рыбе современную речь тоже нельзя... Поэтому будем считать, что наши герои не такие картонные, какими их показывали, и у них тоже есть эмоции и отношение ко всему ) Это позволяет посмотреть на те же вещи под новым углом, добавляет интереса. Причем законы остаются старыми, а проблемы - современные. Для примера покажу отрывок, самый первый макет диалога, который буду улучшать. Я понял, что мне лучше сначала расписать все варианты, как часть рассказа - а потом уже вставить их в игру. В ней они смотрятся иначе - более органично и атмосферно, благодаря оформлению - но первоначально писать мне проще не в редакторе кода. "Ты в третий раз закинул удочку. Волны озера разошлись в стороны, пропуская рыбу, которую ты так бесцеремонно вытащил на берег. Только когда она попала тебе в руки, ты понял, что рыбка-то не обычная, а золотая! И говорящая! Ты аккуратно снял крюк... ^ -- Кто же так с рыбками-то обращается? - золотая рыбка нервно и обижено смотрела на тебя своими мудрыми глазами, из-за ран, которые ты ей нанес. -- Так-так, так. И где же твой невод? 1 ветка. —- Невод? Какой невод? -- Ты сказки в детстве читал? Старик был один, добрый, но старуху слушался... Пошел он однажды в море, закинул невод... один раз закинул, второй... А на третий словил меня. А я чудеса творить умею. Силы морские, да и всей Земли, подвластны мне. Не потому, что я царица морская, а потому, что у природы всё едино... Та история закончилась не очень хорошо. Хотя старик и не виноват ни в чем. Но вот сейчас я снова на берегу - поэтому и спрашиваю - где твой невод? Что за варварские методы нынче пошли? Рыба тоже чело... рыба. Рыба тоже живое существо. —- Ну... я... ээ... Заблудился я, в общем. Уснул дома, правда, спал плохо... Но когда открыл глаза - оказался здесь, в лесу. Не знаю, почему и каким образом перенесся сюда. Но выживать-то как-то надо. Нашел удочку и вот... -- Эх, парень. Не с того ты начал свое путешествие... —- Какое путешествие? - Земля умирает. Вы, люди, уничтожаете ее. —- Но... -- Не перебивай, когда с тобой говорит рыба, которой несколько сотен лет. Планета гибнет, потому, что люди используют свой дар во вред себе же. Вы умеете делать удивительные вещи! А вместо этого воюете, загрязнаете воздух, воду, да саму землю... " Вот как-то так. Пока сыро, понимаю. Собственно, дальше в диалоге пойдет раскрытие части истории, но только той, которая сподвигнет главного героя пойти вперед - отчасти потому, что другого выбора ему не оставили, отчасти потому, что мир в опасности. Так и вспоминается говорящее дерево из первой Кирандии: *очень пафосным голосом*: "Земля умирает, Брендон". Наверное, в чем-то мы всегда копируем предшественников, на чём научены - те образы и приходят в голову. Для меня в игровом плане первые две Кирандии - это альма матер, да и эталон игры в принципе - реализация, атмосфера, история. То, к чему надо стремиться. Странно: в 5 классе мне одновременно и равноценно нравилось как сидеть над квестами Кирандии, так и рубиться в Quake. Изначально предстоял выбор, в каком лице говорить о главном герое. Здесь мне вспомнился опыт другой игры - Space Quest, в русских переводах было всюду ты - "Ты нахально спер банку". Из действий самым забавным было - обнюхать - такой концентрации юмора я не видел после этого ни в одной игре, как вот в этой серии. Уже есть общая, секретная идея в игре - которую раскрывать не буду: именно та тайна, узнав которую в конце пути игрок получает свои эмоции, впечатления, философские мысли и так далее. Технически оно реализуется в еще одном счетчике, который будет кое-что подсчитывать, и в зависимости от этого менять концовку. Т.е. предварительно можно сказать, что концовки будет 2. Их достаточно для замысла, да и вообще я согласен, начитавшись разных умных статей :smiley: , что иллюзия выбора важнее самого выбора. Но возможно, потом я придумаю что-то иное. А пока 2 концовки. После реализации диалога и открытия еще одной локации мы наконец-то начинаем большое путешествие, и весь первый квест будет, по сути, уже сделан ) Дальше - другой эпизод, другие предметы и так далее - все придется создавать с ноля. Но в среднем это примерно 1/10 игры, а может меньше. В плане оформления - куда же без него - реализовал (правда, не до конца) одну мелочь, но очень уж хотелось, чтобы так было: В первой, вводной сцене с кнопкой "дальше" - инвентарь, конечно, скрыт, да и прогрессбар тоже. Но подложка под них в фоне нарисована, а она в этой сцене не нужна. Я добавил код для смены фона в этой сцене, чтобы в следующей тут же его сбросить обратно на стандарт. Первая сцена: room { forcedsc = true; nam = 'main'; noinv = true; title = 'Вступление'; pic = 'gfx/0.png'; enter = function() snd.music 'mus/Beginning.ogg' theme.gfx.bg "gfx/bg_good.png" end; Вторая сцена (развилка): room { nam = "start"; title = 'Развилка'; pic = 'gfx/1.png'; enter = function() snd.music 'mus/Atlantis.ogg' theme.reset 'scr.gfx.bg' end; И все бы хорошо! При старте новой игры - Первая сцена с фоном без подложки для инвентаря, только прямоугольник слева. Вторая уже - плавно появляющийся инвентарь - мы включаем всё, нужное для игры, она оживает на глазах =) И дальше все работает правильно. Но. Есть сценарий запуска игры, который рисует подложку в инвентарь на первой сцене. Если запустить новую игру, и тут же ее закрыть. Тогда при повторном заходе - состояние theme.gfx.bg "gfx/bg_good.png" не сохраняется, как и указано в документации к инстеду - предлагается восстанавливать его самому. А вот как это сделать - я нигде не нашел и не смог догадаться... Я делал вот так: function init () take 'статус' take 'fonarik' if here()=='main' then theme.gfx.bg 'gfx/bg_good.png' else theme.reset 'scr.gfx.bg' return end end Писал это же условие в других сценах. Не работает...( И не понимаю, почему, ведь такая логика вернее - проверяем, в первой ли мы сцене, и если да - меняем фон, иначе - рисуем стандартный, с подложкой. Но чего-то я не вижу... Это же делаю в диалогах - и видимо будет то же самое - пока играешь - все правильно, но когда закроешь игру на этом месте - оно не сохранит состояние. Подскажите, пожалуйста, если из этого можно понять, как помочь. Удочка теперь отображает индикатор сборки, если кто-то не поймет, почему игрок ею не ловит, а пытается ее мыть - потому, что нельзя ловить удочкой, на которой нет снастей или червя) Для других предметов, которые надо как-то модифицировать перед применением - сделаю примерно такой же индикатор. Это наглядно. Взял это не на пустом месте, а после тестирования одним человеком, которому сие было непонятно. Еще на скриншоте виден шрифт меню. По сюжету, наверное, не буду рассказывать больше так подробно - должна быть интрига, спойлер ) Но учитывая, что игра будет довольно большой, это только начало, и то пока не доработанное. Спасибо за внимание :smile:
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12822/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 07:20
RSS-bot (tavern,2)
spline: Самая увлекательная тема на форуме за последний год, пожалуй. Хотя, там ещё @Irremann писал наброски по Созвездию. Тоже было интересно. Не помню только когда именно =) По поводу объекта-ссылки. У инстеда есть отличный модуль дебаггер. Можно или сделать require "dbg" или запускать инстед с ключом -debug. Тогда по Ctrl+D откроется экран дебага. Там есть много полезных команд. Например, команда walk решает проблему, которую ты решаешь посредством дополнительного объекта.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12823/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 09:20
RSS-bot (tavern,2)
peter: > И все бы хорошо! При старте новой игры - П .... Для восстановления состояния спрайтов или тем - используется start(), В ней делаешь то, что соответствует текущему состоянию. Просто init запускается ДО загрузки из save. А start() уже после (если он состоялся). У start есть параметр load, по которому можно (если надо) определить - загрузка это или нет. ``` function start(load) if load then dprint "loaded" else dprint "early start end end ``` Еще есть модуль decor который умеет сохранять изменения тем сам, но это потом....
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12824/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 09:30
RSS-bot (tavern,2)
peter: Но start вызовется 1 раз. Просто он будет или после лоада или до (если сейва еще нет). То есть это место для восстановления игровой ситуации...
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12825/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 13:10
RSS-bot (tavern,2)
artomberus: @spline, рад, что мои наброски интересно читать) Дебаггером я пользовался, но не увидел всех его возможностей: я по рассеянности не увидел (хотя там написано!) про ctrl+d. И думал, что дебаг - это консольный вывод в нужных местах, для чего используется dprint, и все )) Ну и быстрое сохранение - загрузка, и ctrl+r. Зашел на ctrl+d - а здесь все команды есть, что возможны) написал walk goldfishdlg - и перешел прямо в диалог. Отлично. Это упрощает жизнь)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12827/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 13:10
RSS-bot (tavern,2)
artomberus: @peter, я, наверное, не до конца понимаю порядок выполнения кода. Да, теперь я понял, что init не сработал бы, потому, что вызывается до загрузки из save. И вот есть функция start(load) в начале игры. Я ее опробовал и оно работает: Если загрузились - выполняем одни команды, иначе - выполняем другие команды. Я пускал проигрывание звуков и все корректно играло - после загрузки один звук, а после старта игры с начала - другой. Это практически ключ к решению задачи, но в моей голове бардак, и когда пишу код для смены фона, он не работает. bg.png - изображение с подложкой для инвентаря bg_good.png - изображение без подложки global { firstlaunch = true; - переменная, которая отвечает за первый запуск. После первой же смены фона она должна смениться на false, и так и оставаться. } function start(load) if ( (load) and (here() == 'main') ) or ( (firstlaunch) and (here() == 'main') ) then theme.gfx.bg 'gfx/bg_good.png' firstlaunch = false else theme.gfx.bg 'gfx/bg.png' return end end -- Если мы загрузились, и мы на главной (или это первый запуск и мы на главной) - рисуем фон без подложки, - иначе - рисуем фон с подложкой. Сейчас у меня три места, где я указываю, что надо менять фон, и всюду одинаковая логика: функция start, Первоначальная комната (в ней подложка не должна показываться): room { forcedsc = true; nam = 'main'; noinv = true; title = 'Вступление'; pic = 'gfx/0.png'; enter = function() snd.music 'mus/Beginning.ogg' if ( (load) and (here() == 'main') ) or ( (firstlaunch) and (here() == 'main') ) then theme.gfx.bg 'gfx/bg_good.png' firstlaunch = false else theme.gfx.bg 'gfx/bg.png' return end end; Следующая комната - в ней подложка должна показываться: room { nam = "start"; title = 'Развилка'; pic = 'gfx/1.png'; enter = function() snd.music 'mus/Atlantis.ogg' if ( (load) and (here() == 'main') ) or ( (firstlaunch) and (here() == 'main') ) then theme.gfx.bg 'gfx/bg_good.png' firstlaunch = false else theme.gfx.bg 'gfx/bg.png' return end end; И даже такой избыточный код не работает... Когда пишу код, который не касается загрузки-сохранения - то все стройно и понятно - объекты и их свойства, комнаты и их свойства, переходы между ними. Там мне не приходится ничего сохранять самостоятельно. А здесь уже что-то, чего я просто не вижу или не замечаю... Если всюду одинаковая логика, но она не срабатывает, значит или записываю неправильно, или логику построил неверно.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12826/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 13:30
RSS-bot (tavern,2)
peter: А зачем сложно? Проще наверное сделать global переменную с именем фона bg_namr и менять ее, а в старте: ``` global 'bg_name' ('gfx/default.png') function set_bg(name) bg_name = name theme.gfx.bg (name) end function start(load) theme.gfx.bg (bg_name) end ```
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12830/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 13:30
RSS-bot (tavern,2)
artomberus: @spline, как телепорт - переместился куда надо, включил что надо) Как в играх godmode, только для разработки :) Да, теперь заживем)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12829/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 13:30
RSS-bot (tavern,2)
spline: @artomberus он сильно выручает при разработке. Например, у тебя есть задизейбленная комната (которая disabled). Ты в неё попадаешь с помощью команды дебаггера walk, но в ней ничего не работает, так как она отключена. Делаешь eval enable "" и всё начинает работать =) Отличный в версиях 3.x дебаггер вышел. Раньше был далеко не такой удобный, хотя и облегчал жизнь, конечно.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12828/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 14:10
RSS-bot (tavern,2)
artomberus: @peter, сложно, потому, что новичок и не вижу очевидных вещей...) Спасибо, попробую так.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12831/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
18.02.2019 14:20
RSS-bot (tavern,2)
artomberus: @peter, Получилось! ) Все работает! Ура) А я тут горожу целые логические построения... Отлично :) А я вчера весь вечер сидел и думал, что к чему. А оно-то так просто все оказалось. Спасибо, Петр!
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12832/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 03:50
RSS-bot (tavern,2)
artomberus: Игра усложняется, и, надеюсь, становится интереснее. Добавил еще один предмет - возможность открыть дверь без ключа. Но лучше так не делать =) Мы же цивилизованные люди. Но если кто-то не желает слышать скрип двери..:) Теперь отрисовывается еще несколько изменений в сценах, очень наглядно, мне нравится. Понемногу улучшаю диалог, возможно, придется его сократить. И думаю над вторым. Много текста в диалогах или описаниях вряд ли пойдет на пользу игре. Хочу сделать одну очень смешную пасхалку, но приоритет у нее низкий, надо работать над основной линией. Составил roadmap - и пишу туда все идеи, которые собираюсь реализовать. Что интересно, когда пишу игру - бывает 2 состояния: в одном легко генерирую идеи, но ленюсь их реализовывать. В другом - я вообще ничего не могу придумать, но все, что записано - легко кодирую. Почти стратегия тик-так в интел) Теперь в игре есть говорящие деревья :) Осталось придумать для них квест. С музыкой удачно нашел сайт. Все от одного автора, а поэтому хорошо сочетается. Да - решил все формальности с лицензией - на код, звуки, музыку. Звуки нашел без ограничений. Код и картинки мои - будут под MIT (я согласен с тем, что все закрытое и несвободное рано или поздно исчезает, а я не хочу этого для своей игры), на остальное оставил ссылки и описания в каталоге с игрой. Хотя бы один раз в жизни надо все сделать правильно. А там, может, войдет в привычку. Самая большая трудность для меня сейчас - то, что по идее вообще мелочь. Отслеживать начало и закрытие функций, фраз, объектов. Отступы делаю, и это помогает. Но вот диалог писать было - жуткая заморочка. Что за чем идет, что чему отвечает. Когда пробовал ставить на музыку MP3 - инстед завершается с ошибкой, перед этим издав короткий скрип. Но у меня одна маргинальная легаси винда, под 7-й и выше все может быть нормально, надо будет проверить. Но это решил просто - следуя советам документации, перевел музыку в OGG, а звуки скачиваю в WAV. С музыкой все получается атмосферно, и не занимает много времени - скачать файлы и добавить несколько строк в код. А эффект ощущается =) Под каждую сцену - своя тема, свое настроение. Сначала мы попадаем в лес и играет тревожная музыка. В доме она своя - меланхоличная, от созрецания места, в котором давно никто не жил.. В диалоге своя - и словами-то не передать, но очень подходящая. А когда попадаешь к деревьям - идет шутливая тема, повеселее. Значит, и сцена будет такая - нестандартная. Действительно, труднее всего придумывать квесты, которые бы вписывались в сюжет игры. Но у меня есть центральная идея - игрок делает выбор из 2 вариантов - и проходит к следущему этапу. Оба выбора продвигают его вперед, но вот куда..) В конце игры эти выборы взвешиваются, подсчитываются - и происходит переход к соответствующей концовке. Пока в раздумиях - надо ли делать в игре проигрыши, показывать тупиковые ветви. Я не очень это люблю в играх. Это нарушает восприятие игры - то же происходит, когда открываешь сохраненую игру, в которую давно не играл - не знаешь, какие события в игровом мире уже произошли, а до каких не добрался, какие предметы открыл и какие манипуляции делал - все приходится заново прощупывать и вспоминать. Но после проигрыша обычно загружается точка перед неудачным решением, и этот эффект прерывания игрового опыта не должен ощущаться. Я научился писать сложную логику взаимодействия с предметами, и, хотя в основном я прячу предмет, если он больше не нужен (хотя это и не логично - если предмет у меня был - с чего бы ему пропадать?) - но это необходимо, а иначе скопится много предметов, и для всех их придется прописывать основные реакции между собой. По себе знаю - если в этом месте можно в принципе копать, и у тебя есть лопата - то игрок это попытается сделать, даже если ты приготовил ему другое место для копания. Но игнорировать это нельзя! Поэтому прописываем краткое обьяснение, почему здесь ничего не получится, а не ограничиваемся стандартным набором фраз. Еще лучше, если это описание дает игроку намек - что логика-то твоя, товарищ, правильна, только делаешь ты это не в том месте. Тогда игра ощущается правильно. А так - предмет задачу выполнил - спрячем его. Но это мне не совсем нравится. В тех играх, что я играл - предметы остаются до конца - чтобы создать ощущение множества возможных действий. Но для моего случая это было бы слишком сложно в реализации, хотя что-то я придумаю позднее. Весело было в начале, когда я писал комнаты и диалоги и ничего считать не приходилось, и я уже настолько привык, что здесь нет цифр и математики, что когда понадобилось что-то посчитать, я в панике подумал - здесь есть математические функции?! В инстеде есть математические функции? А потом до меня дошло и я рассмеялся - в любом полноценном языке они есть, это тебе не язык разметки, хотя такое ощущение и создалось изначально)) И вот сейчас мне весь мой паскалевский опыт начинает помогать. В способности мыслить алгоритмами, логично. Все эти and, not, if then else - это же знакомо и родное. Мозг быстро адаптировался. Очень нравится такая штука, как if переменная then..и так далее. Всего лишь надо запомнить, что подразмевается, что эта переменная равняется true, и тогда условие выполняется. На практике это позволяет называть эти логические переменные человекопонятными словами - и получается практически чистый английский язык :) if firststart then... Это упрощает восприятие кода. Я решил делать как делается, и сколько времени это займет - столько пусть занимает. Даже 50 строчек в день - уже хорошо. Сейчас их 695:) И в принципе, хоть сейчас могу показать свои наработки, даже - хочу показать. Мол, вот, как умею ) Но это меняет восприятие игры у поигравшего в прототип. Лучше все-таки, когда игра в основе готова, тогда уже делиться ею. А я-то, понятно, восторгаюсь сейчас от любой сделанной мелочи. И понимаю, что для игрока не так важно, как игра создавалась и что в нее вкладывали, важно, чем она является и какой опыт вызывает. Поэтому надо работать именно на этот общий эффект, подчинять ему каждую мелочь. Сейчас в игре всего 7 сцен, в перспективе - 10, но все это воспринимается как ничтожно малое количество, и даже когда квесты в них полностью реализую - сюжетно это все равно очень мало. Мне для задумки - надо этих сцен до сотни.. И вписать хотя бы 10-15 сказок. Тогда я бы ощущал, что игра полноценная по длительности и наполнению. А иначе это демка. Такие мои личные мерки. Еще есть странная тяга немного издеваться над игроком, иронизировать над ним в реакциях на действия. В жизни это не характерно мне, а здесь проявляется.. =) Надеюсь, это будет в меру и уместно. Прием ломания четвертой стены - я использую бесцеремонно. А это плохо для атмосферы. Напоминать игроку, что он играет. Классически персонажи произведения удручающе серьезны и как бы не знают, что они вымышленные. Здесь надо чувствовать грань, где это уместно, а что превращает игру в фарс. Еще задумываюсь - как лучше будет организовать перевод - на инглиш уж точно надо будет делать. Если выносить строки в отдельные файлы - то надо было делать это с самого начала. Так было бы логичнее и лучше - можно было бы править игру и перевод независимо. Но уже столько строк - что поздно. Поэтому в самом конце, когда игра будет вылизана и основные баги устранены - сделаю копию lua файла, переименую его, и в main3.lua сделаю менюшку с выбором. Один файл будет на русском, а другой на инглише. Это проще изначально, но труднее потом - все баги придется исправлять в 2 файлах, синхронизировать код. Поэтому если уж так делать - то когда игра будет стабильной. Но - забегаю наперед, конечно. А деревья все-таки покажу. Тоже в каком-то плане спойлер. Ну да ладно.. Не могу сдержаться :) Да и по традиции уже надо скриншот. Одно дерево оптимистично и шутит, другое сетует на всё. Такая пара всегда заставляет улыбнуться) Надо прописать только диалоги. Думаю, я буду реже такие заметки писать - только когда будет, о чем рассказать. Но буду. Да и лучше молча делать, чем много говорить, а делать мало. Спасибо за внимание :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12834/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 08:40
RSS-bot (tavern,2)
peter: Заметил нюанс. На скрине у тебя, похоже, подложка подогнана под шрифт. Это поедет, если игрок увеличит шрифт в настройках. Как быть? Или отключить масштаб шрифтов в теме, или свиток целиком поместить в инвентарь, а прогресс выводить спрайтом.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12835/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 10:40
RSS-bot (tavern,2)
artomberus: @peter, вот это я упустил из виду... Да, это важно. Отключить масштаб - решение легкое, но, наверное, не очень правильное. Люди играют с разных устройств, у них разное зрение, и обрубать им возможность играть, потому, что мелкий шрифт - не хочется. А вот поместить свиток в инвентарь - я пытался, но то ли координаты не те вводил, то ли что-то еще делал не так - что бы не писал - у меня просто ничего не отображалось на экране. Со спрайтами я не очень сумел пока подружиться - и в начале они мне нужны были только для изменения подложки. Она же тоже нарисована прямо на фоне. Потом я нашел параметр для изменения темы, потом ты мне подсказал, как проще изменять фон через переменную с именем фона. Чувствую, если все это переделывать - придется потратить много сил мне. Возможно, позднее, когда наберусь опыта. А я уж только обрадовался, что с оформлением все закончено, и можно просто экстенсивно наполнять игру. А сейчас - или отключу масштаб, или - если у тебя есть время и желание - помоги? Я пришлю тебе исходники как они есть, а ты на месте глянь, как там лучше быть? Я отдельно подготовил и вырезал свиток в файл svitok.png . Его можно поместить поверх фона без свитка - bg_good.png. А уже свечение на месте индикатора прогресса я дорисую потом - лишь бы числ отображалось корректно - в одной точке при любом масштабе. Скажи только, если можно и ты не против - я пришлю тебе исходники. Посмотри, что я вообще натворил... =) Оно проходится даже сейчас до самых деревьев.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12839/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 10:50
RSS-bot (tavern,2)
peter: Не, ты не понял. Я имел в виду следующее: 1)Поменять координаты в теме для инвентаря так, что бы они совпали со свитком на фоне. 2) выводить информацию о прогрессе декоратором или спрайтом
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12840/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 11:00
RSS-bot (tavern,2)
artomberus: @peter, ну вот смотри - у меня уже сейчас заданы в theme.ini - inv.x = 632 inv.y = 19 inv.w = 130 inv.h = 440 И инвентарь в принципе в пределах этих и есть на картинке. При масштабе шрифта 100% - все, конечно, ок. Установил 150% - и получается вот так, как на скриншоте... А насчет 2 пункта - я не знаю, как это делается( Я добавлял статус как объект инвентаря, который нельзя взять - по твоему примеру из документации.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12841/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 11:10
RSS-bot (tavern,2)
peter: А так, есть спрайты и есть модуль декораторов. Они позволяют рисовать где угодно и что угодно, но ты будешь прибит гвоздями к теме.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12844/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 11:10
RSS-bot (tavern,2)
spline: Есть такая тема, которую я для себя не сразу просёк - не надо экономить на ширине инвентаря. А на тему свитка, мне кажется, что лучше его удлинить и подложить повыше, чтобы надпись "прогресс" была поверх свитка.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12843/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 11:10
RSS-bot (tavern,2)
peter: Инвентрь это свиток. Верх свитка это точно не 19. 19 это самый верх. Ты просто подогнал все так, чтобы в свиток попал текст, но на самом деле координаты инвентаря не совпадают со свитком. Решений несколько, но все они означают, что ты будешь жестко привязан к теме. Я бы на данном этапе не стал бы так делать.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12842/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 11:20
RSS-bot (tavern,2)
artomberus: @peter, да, именно так я сделал - подогнал рисунок свитка под место, на котором находится первый после статуса объект инвентаря, и дальше уже они располагаются вниз - правильно. Потом я форматированием в коде выставил позицию индикатора - и нарисовал под него фон. Я пока оставлю как есть и зафиксирую масштаб и тему. @spline, таки да, надо было изначально сделать инвентарь шире. Без рассчета на большой шрифт - оно как раз, но если увеличивать - то или картинки убирать, или перерисовывать все. "А на тему свитка, мне кажется, что лучше его удлинить и подложить повыше, чтобы надпись "прогресс" была поверх свитка." - попробую и так.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12845/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 15:00
RSS-bot (tavern,2)
spline: На тему ширины инвентаря можно попробовать сделать более иначе. Сделать основную область в виде свитка, а инвентарь просто белым пустым оставить. Тогда и извращаться не придётся с отображением свитка и инвентарь широкий будет.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12847/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 15:30
RSS-bot (tavern,2)
artomberus: @spline, что ты имеешь в виду? Внутри так можно и белым - оно и так белое почти ) Меня, в принципе, текущий вид устроил, да и градиенты задают глубину - свиток становится визуально частью оформления, а не чем-то инородным. Вопрос был только со шрифтами, из-за которых все это не срабатывает теперь. Прямоугольник, в который вписана игра - по своим размерам как раз хорош - небольшие поля слева и справа, и едва заметные градиенты по бокам - чтобы не так контрастно было. Очень похоже на страницу из книги. Его ужимать никак не хочется. Сам свиток справа - тоже как бы на месте и его никак по ширине не подвинуть, иначе будет смотреться криво... В высоту - это да, можно вытянуть к началу - это решит, наверное, проблему с индикатором. Или ты предлагаешь заменить прямоугольник свитком, а справа белый фон?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12848/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 15:40
RSS-bot (tavern,2)
artomberus: @spline, например, так?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12849/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
20.02.2019 16:00
RSS-bot (tavern,2)
artomberus: Как-то нет. Ничего не ужать - все на месте. Можно, конечно, свиток сверху и снизу минимизировать в размерах. Пока, все-таки, оставлю как есть. Вернусь к этому в самом конце. С другим опытом и так дальше =)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12850/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
21.02.2019 06:50
RSS-bot (tavern,2)
spline: > @artomberus написал: > Как-то нет. Ничего не ужать - все на месте. Можно, конечно, свиток сверху и снизу минимизировать в размерах. Ну так инвентарь опускаешь немного сверху, двигаешь влево и расширяешь. Получается широкий инвентарь. Но это просто идея в рамках мозгового штурма.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12852/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
21.02.2019 11:00
RSS-bot (tavern,2)
spline: Моё предложение больше нацелено чтобы ты как новичок не тратил время на достаточно сложное программирование, а сконцентрировался непосредственно на игре =) Лично я оформлением занимаюсь или в середине процесса написания игры или в конце. Те игры, оформлением которых я занимался в начале, как правило не дописаны =(
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12853/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
21.02.2019 15:40
RSS-bot (tavern,2)
artomberus: @spline, ты прав и я согласен с этим :) Только оформление оформлению рознь: вот эти заморочки с инвентарем - надо было мне предусмотреть сразу, касаемо масштаба шрифтов, а я полез рисовать, потому, что люблю видеть финальную или почти картинку, но не учел, что все может поехать. Можно было вообще сделать пока фон белый и остановиться на этом, а подложку рисовать в конце, собственно, это было первое, что я сделал - просто белый фон, чтобы он сливался с белыми иллюстрациями. А потом пошло-поехало - квадрат, градиент, свиток, свечение под индикатор и понесло меня... =) Но собственно если говорить не о оформлении интерфейса - а о содержимом игры - то я звуки, музыку и иллюстрации добавляю параллельно написанию кода. Это, наверное, считается второстепенным и тоже оформлением - но для меня это важно делать одновременно с кодом - потому, что я вижу перед глазами результат, и тогда у меня появляются идеи для игры. Я пишу игру комнатами - делаю одну - прорабатываю - что в ней будет и какие взаимодействия. Потом другую, и связываю перекрестно ее с первой - предметы, переходы. Получается так: код более-менее сгруппирован. У меня ж там все иллюстрируется с изменением картинки - это моя изначальная задумка, я так хотел сделать :) Если делать чисто текстовую игру от начала и до конца, а потом дописывать в ней код оформления - то я просто запутаюсь в этой простыне, даже если буду комментировать. Да и мне правда легче сначала нарисовать - а потом это, что вижу на картинке - описать. Т.е. я художник плохой - и если я напишу - передо мной на ветке сидит ворона - то мне потом придется рисовать ворону - а я вообще не умею рисовать и что получается - то получается. Может, у меня орел получится?) Т.е. я потом сам не смогу иллюстрировать свою же игру, потому, что словами наплету такое, что не смогу показать. По этой причине я сначала рисую :) Но это для меня часть содержимого игры, и в плане кода это делается очень просто, я уже знаю всё, что надо для этого, иду в плане кода по накатанной дорожке, нет никаких затруднений. Звуки, музыку - я добавляю по мере их нахождения, и тут уже да - можно пока их вообще игнорить, но когда мозг расслаблен и нет никаких идей по сюжету - то сижу и вставляю звуки...)) Хотя да, можно написать игру полностью без них и без музыки, а добавить все это в конце. Но иллюстрации идут сразу, это связано с особенностью того, как я все это творю) И сейчас я это и делаю - пишу саму игру :) Вчера весь вечер создавал локацию с мостом - там для игрока квест небольшой, но у него есть вклад в сюжет, а это здорово. Ну и вообще уже получается то, что я хотел - как в классическом квесте - сначала работаешь с предметами, потом находишь персонажа и говоришь с ним, потом тебя куда-то не пускают и ты должен выполнить задание - принеси то, не знаю что, и так далее... И у меня складывается уже сама механика игры :) И первый, по сути, эпизод - связанный с хижиной и окрестностями - у меня полностью реализован и прописан, останется потом только доработать диалоги, хотя они уже написаны и сейчас. И уже начинаю делать второй эпизод - серия комнат, по которым игрок будет идти поочередно, здесь все будет более линейно, поэтому упор на диалоги, загадки. А потом снова идет перекресток в 3 направления - и там уже будет что-то более грандиозное и сложное - но туда еще надо добраться. Но пока работаю над вторым кусочком игры :) В общем.... многословно получается у меня, сорри) Я именно такой вывод и сделал - пишу саму игру, в центре внимания - текст - картинка - сюжет. Остальное побочное и может быть добавлено потом - включая звуки, музыку, и перспективу переделать интерфейс. Но пока оно мне всё нравится вот так. Возможно, пусть эта, первая игра - будет с такой особенностью, как жестко прописанная тема и фиксированный размер шрифта. На андроиде я проверял ранние версии игры - все запускалось и отображалось корректно. В документации нашел настройку темы - scr.gfx.scalable = 5 - масштабируемая тема с не масштабируемыми шрифтами. Она же по умолчанию, если ничего не прописывать - такое же поведение. При этой настройке в полноэкранном режиме увеличивается лишь графика, а шрифты остаются как есть, не сглаживаются, не съезжают. И выглядит это приемлемо. Если кому-то плохо читать в маленьком окне - у него останется возможность играть на полный экран - там все крупнее. А игру я допишу, много личных причин, мотивов сделать это. В плане преодоления ощущения собственной ограниченности, хочется поверить в свои силы, что раз мог и умел когда-то - то должен уметь и сейчас, а иначе я резко сдал... А как можно так себя ощущать в 26 лет...( Мозг надо тренировать. С момента, как начал - еще не было дня, когда не написал ни строчки. Перерывы, конечно, будут, когда занят другими вещами, но каждый вечер сажусь и пишу, а когда устаю - то рисую и сканирую :) Вот скорость этого дела - предсказать не могу. По моим меркам все достаточно быстро идет, но все равно несколько месяцев понадобится точно. Иногда вижу отличную идею и бегу ее сразу реализовывать. А иногда в тупике и не знаю, как повернуть игру дальше, что добавить. Центральная идея же - обыграть мифы, сказки, народные поговорки даже - все это есть, но не факт, что получится именно в таком виде, как хочется. Но в любом случае это история о добре и зле, и о том, что каждое наше действие влияет на конечный результат - игра все тщательно фиксирует и считает. Игрок сможет как спасти мир, так и потерпеть поражение. Все будет зависеть от микровыборов. И это все - минимально, что мне нужно от игры, упростить никак нельзя, иначе будет просто рассказ с кнопкой дальше...) Самое свежее, что добавил в игру - сцену с перекрестком и камнем на пути. Надпись на камне гласит: Направо пойдёшь – коня потеряешь, себя спасёшь. Налево пойдёшь – себя потеряешь, коня спасёшь. прямо пойдёшь – и себя и коня потеряешь. Собственно, это такой крутой момент для игры, что "прям ваще" =) Теперь мне надо нашему герою найти коня. И пусть стоит и решает, куда же повернуть. Главное, чтобы это соответствовало реальным мифам по этому поводу - чтобы была внутренняя логика, и игрок, знакомый с мифом - сориентировался. Но вот над этим надо думать... :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12854/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
22.02.2019 07:50
RSS-bot (tavern,2)
spline: На тему того, что получится не ворона, а орёл, хочу дать ещё один совет. Не конкретно к этой игре и не к твоему подходу -- он вполне себе клёвый, а просто про текстовые игры и картинки. Картинки могут служить лишь быстрым идентификатором сцены для игрока. То есть он ходит по локациям и ему психологически проще запомнить картинку. В практиканте и новогодней сказке я именно такой подход и практиковал. Не то, чтобы я даже советовал. Просто обратил внимание на такой подход =)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12856/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
22.02.2019 13:50
RSS-bot (tavern,2)
artomberus: @spline, да - просто картинки может быть вполне достаточно, и я это наблюдал во многих играх :) Я и правда об этом не задумывался ) Картинка привязывает к локации, и когда совершаешь переход - видишь картинку - и тут же понимаешь, где ты. Для того, чтобы сориентироваться по тексту - приходится тратить чуть больше времени. Ты его и так читаешь - в любом случае. Но для беглого перехода по локациям к нужному месту - особенно, если это большой мир - картинки хороши. Некоторая избыточность у меня, конечно, присутствует. Но - сам себе буратино :) Да, на будущее - можно будет и попроще сделать. Я все еще не оставляю идею сделать игру, основанную на своих фотографиях природы. Но не в этот раз :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12857/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
24.02.2019 13:10
RSS-bot (tavern,2)
artomberus: А я снова туплю, и на элементарном. Как сделать, чтобы игрок мог съесть яблоко не сразу, кликнув в инвентаре, а после того, как кликнет по ссылке, которая появляется после вызова inv? Сначала - двойной клик по яблокам в инвентаре. Пишет - Вкусные, сочные яблоки. Съесть? Слово съесть - активное. При клике мы удаляем яблоки и берем другой объект, в котором всего одно яблоко. Таким образом мы оставили одно яблоко, на будущий сюжет (но это я еще не добавил). Что я пытаюсь делать: obj { nam = 'apples'; disp = fmt.img('gfx/inv/apples.png')..'Яблоки'; inv = function() p [[Вкусные, сочные яблоки. {eatplease|Съесть}?]]; end; }:with { obj { nam = 'eatplease'; act = function() p [[Ты с аппетитом съел яблоки, пока, наконец, чувство голода не прошло. У тебя осталось только одно яблоко.]] remove 'apples'; end } } Если объект не соединять через with, то клик просто игнорируется - точно так же, если в комнатах объект не указать среди obj. Но мне и не надо его показывать, мне надо, чтобы он выполнил свой код, когда к нему обратятся, а в инвентаре мне eatplease не нужен... Я пытаюсь использовать инстед неправильно? Ткните носом, где я туплю, плииз... :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12858/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
24.02.2019 14:00
RSS-bot (tavern,2)
Irremann: obj { nam = 'apples'; disp = fmt.img('gfx/inv/apples.png')..'Яблоки'; inv = function() place 'съесть'; end; } obj { nam = 'съесть'; dsc = 'Вкусные, сочные яблоки. {Съесть}?'; act = function(s) p [[Ты с аппетитом съел яблоки, пока, наконец, чувство голода не прошло. У тебя осталось только одно яблоко.]] remove s; replace ('apples', 'one_apple'); end } }
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12859/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
24.02.2019 14:10
RSS-bot (tavern,2)
artomberus: @Irremann, благодарю! Это то, что нужно. Теперь я буду знать, как это делать :) Ввел только проверку, чтобы строка не оставалась, когда яблоко съедено.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12860/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
26.02.2019 04:30
RSS-bot (tavern,2)
artomberus: Тысяча строк! Моя первая тысяча...) История продолжается. Исправил много ошибок, полностью доработал 2 локации после первого эпизода. Добавил несколько предметов и прописал их. Добавил одну пасхалку) Но она прямо связана со сказками, так что по сюжету полное попадание. Список идей для игры достиг числа 21, и это много. Нарисовал новые предметы, которым уже нашлось место в сюжете. Проясняется именно сюжетная канва игры, и с каждой новой доработкой хочется прыгать от восторга =) Игра всё больше становится похожей на игру, а не на куцый набор локаций, в которых ничего нельзя сделать. Мне самому здесь начинает интересно находиться) Во вселенной игры. Хотя понимаю (и это озарение для меня) - что никогда не смогу прочувствовать, как же воспринимается игра другими людьми - потому, что когда провожу столько времени над ней - теряется чувство новизны. В каком-то смысле, приходится действовать наугад... А еще есть зашореность сознания. Вот я думаю, что игрок поступит так - а он возьмет, и все сделает иначе. А я так не тестировал... Но пока я скрупулезно проверяю самые беумные сочетания предметов и порядок их применения. И всё прописываю. Нарисовал значок игры. Исправил изображение ведра. Вся игра будет в серых тонах. Просто для стиля, для общей атмосферы. Надо бы счетчики добавить, чтобы прогресс считался правильно. Но это сделаю уже завтра. И самое крутое, что именно в процессе написания игры и рождаются идеи. Что у нас за предмет? Для чего я его создавал? Удалить его, или оставить на будущие эпизоды? Сделал изменение отображения в ways после первого перехода. Так лучше, понятнее. Ну и освоил новый прием, а это здорово. Пришло еще осознание, что я многое делаю неэффективно. Наверное, можно упрощать логику, но я всё пишу так, как умею, оно работает - но код большой. Логических переменных уже под 50... К счастью, я их все снадбил комментариями. Это упрощает жизнь, когда захочу вернуться и что-то подкорректировать в коде. Хотя сейчас, когда пишу - то и так все понятно. Для одной из локаций нужно будет уже освоить составные картинки. Зато как будет здорово, когда все получится ) Еще одним волшебством в игре больше. Мечтаю запустить инстед на ридере. На e-ink ридере. Мне кажется, он идеально подходит туда. Неспешная история, книга, но в то же время игра, а ведь есть музыка и звуки еще. В этом смысле то, что изображения монохромные - даже плюс. Но увы, на моей Азбуке n618 ничего сделать не получилось. Изначальная прошивка на WinCE - запускается с собственной оболочкой разработчика, выйти из которой у меня не получилось, хотя может если найти какой-то баг... Прошивка на Linux, которая у меня сейчас - во всех смыслах лучше, но как ее распаковать тоже не разобрался, хотя в теории это возможно, но я пока не настолько крут, да и жаль напортачить будет. Поэтому не рискую. Все-таки на этом ридере я уже столько прочел... В штатной оболочке ничего лишнего тоже не предусмотрено, никаких лазеек для выхода в консоль или подобного. Увы. Запускал свою игру на андроиде. В восторге =) Все работает. Вот так, как написал, как нарисовал - точно всё так же выполняется. На планшете играть удобно. Процесс идет, и мне нравится результат. Не думал, что способен на такое. А... да. Активно использую дебаг. Как вторые руки для меня он теперь. Здорово, что есть такая штука, без нее было намного сложнее все делать. Так, картинка... Покажу, как я запускал игру на ЭЛТ-мониторе =) Спасибо за внимание :smile:
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12876/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 01:01
RSS-bot (tavern,2)
artomberus: 1500 строк. 87 КБ. Таки да. Что я строю... Оно, конечно, здорово. Загадки, шутки, все расписано и нарисовано, звуки, музыка. Но... Когда я закончу эту игру (а я сделаю это, вопрос лишь в сроках), это будет самое большое, что вообще было на инстеде... Определенно. Странно то, что получается одно, а стремлюсь к другому. Стремлюсь к драме, получается юмор, но это ок, ладно. Стремлюсь к классике и максимальному следованию мифу - получается лютый постмодернизм, и не факт, что туда будет заложена какая-то глубина. Ну и ладно. Игра и не должна быть серьезной, хотя именно такие произведения сильнее всего потом западают в душу. Музыка офигенна. Когда закончу всё, и переведу игру - обязательно отправлю ссылку автору - как его музыка может органично вплетаться в другое произведение, оживляя его. С другой стороны - когда долго тестирую одну и ту же сцену - то отключаю ее, чтобы себе не испортить впечатление. То, что прослушано 150 раз - становится неприятным, даже самая хорошая и подходящая музыка. Просто свойство восприятия. Идея "любое важное действие можно совершить 2 способами - правильным и неправильным" - добавляет свободы игроку - но и писать это всё труднее, но это не желание моей левой пятки, а концепция, без которой игры нет. Пытаюсь вот кроме самого нужного - не распыляться и не плодить варианты возможных действий - потому, что потом это всё долго просчитывать - что за чем можно сделать. В локации с деревьями я провернул такую вариативность, вынужденую, и этот код понять можно не сразу... Все работает, но на это ушло три вечера... Три разных диалога, к тому же. В одной локации. Теперь надеюсь, что не всплывет что-то глобально неправильное, как в случае с оформлением интерфейса игры. Из-за того, что статус делал в инвентаре, теперь не могу использовать replace - только убираю предмет и беру новый. Иначе были случаи, когда предмет меняется местами с индикатором. Но в принципе - написать потом нормальный код для индикатора можно будет, примерно даже представляю, как. Вот со свитком сложнее, мне не хочется что-то менять вообще, прикипел к этому внешнему виду и всё. Почему-то забыл, что есть tak, и начал машинально создавать велосипед, реализуя его функциональность в act. Но у меня настолько много всяких условий прописано, что лишние пара строчек не делают уже погоды. Поэтому то, что уже написал избыточным кодом - переписывать не стал. Но да, я в курсе, что это плохие практики... Понемногу прописываю инкременты прогресса. Там, где уверен, что действие точно неизбежно и оно продвигает вперед игру. В случае с альтернативными действиями - надо делать исключения - посчитал одно - не считаем другое. Чтобы не было 120% потом. Есть еще одна ошибка стиля, которую совершил и уже не поправить. Называю переменные и комнаты на смеси английского и транслита. Там, где слово очевидно - пишу его - как, например, яблоко - apple. А там, где забываю - могу мост назвать как most, так и bridge. Это плохо, так, как затрудняет потом понимание игры другим человеком. Должно быть однообразие в этом плане, чтобы эти названия были говорящими за себя, очевидными и понятными для всех. Это отметка мне на будущее, чтобы исправился. Наловчился создавать графику для игры. 1-2 рисунка за вечер. А дальше начинаются манипуляции в фотошопе. Отразить, перебросить часть картинки, осветлить, затемнить, нарисовал один раз яблоко - использую его на всех деревьях, только отражаю иногда слева направо. И прочие хитрости. Чтобы приблизиться к предмету - достаточно показать его увеличенную картинку, из той же основной сцены. Простой прием, а экономит силы, время. С сюжетом - прогресс есть, но чего-то не хватает... В основном он получается там, где есть загадки - и я их подробно расписываю в описаниях, диалогах. Все около-сюжетные, второстепенные вещи - получаются легче и проще. Поэтому игра и растет вширь быстрее, чем вдаль (вглубь). В плане сложности загадок - чаще всего они очевидны. Поэтому игру, скорее всего, можно будет пройти легко и быстро... А может, это просто мне так кажется. Но вариативность будет делать свое дело, и каждый игрок получает все же свою историю, и финал - подходящий к действиям игрока. Поэтому игра не совсем линейна. Думаю, это как раз хороший компромисс между полной нелинейностью и игрой, где все предрешено. Просто я тяготею к свободе внутри игры, а реализовать это силенок, конечно, не хватает. И все же я уже многому научился... И уж точно всем базовым для игры вещам. С диалогами заморочка. Иногда трудно раздвоить себя на хорошего и плохого, чтобы смоделировать диалоги в разной манере. Весь текст игры - это один человек, и здесь нужно писательское мастерство, чтобы показать разные реакции на одно и то же. Мне это удается пока очень коряво. Диалоги обычно не блещут выбором для игрока, это просто удобная форма рассказа истории, получается. Чтобы использовать их на полную силу, надо набраться опыта. А пока хотя бы так. Пока пишу игру - перечитал уже с десяток сказок. Интересные. Потому, что в детстве вообще часто не видишь второй план, а тут прям отражение народных особенностей тех лет. Да и вообще чудеса, которые происходят в сказках - они про то, в чем люди нуждались всегда - про справедливость, про доброе и злое, про то, как жадность губит, а умеренность приводит к процветанию, в этих историях видна разница в восприятии мира бедными и богатыми, их извечное противостояние, в сказках тот, кто сделал ошибку из-за лени или глупости и потом покаялся - получает урок, но в то же время ему всё прощается, если же человек делает плохое сознательно - то в сказке он всегда получает по заслугам, и жалости нет. В общем, сказки - это идеализированное "как надо", но в которых отражается и то, как было. Тем они притягательны - но реализовать всё это богатство в игре пока получается очень средненько, если не плохо... Внешний антураж, предметы - это да. Но должен быть еще и глубинный смысл, правильно расставлены акценты. Вот это всё пока под вопросом. Хотя ради этого игру и затеял. В частностях - всё получается, но целостной картины пока нет. В общем - продолжаю. Статистика. Если посчитать количество уникальных экранов (локации, диалоги, которые с новым персонажем), то получается 20. Уже многовато для прототипа, но мало для пре-альфа версии ) Так... Картинка. Теперь любая картинка - спойлер. Хм... Коня покажу. Это ничего не говорит про сюжет или загадки, а конь у меня получился. Спасибо за внимание :smile:
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12923/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 07:31
RSS-bot (tavern,2)
spline: > @artomberus написал: Когда я закончу эту игру (а я сделаю это, вопрос лишь в сроках), это будет самое большое, что вообще было на инстеде... Определенно. Неужели больше Перехода? О_О
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12925/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 07:31
RSS-bot (tavern,2)
peter: > Из-за того, что статус делал в инвентаре, теперь не могу использовать replace - только убираю предмет и беру новый. Иначе были случаи, когда предмет меняется местами с индикатором. Можно приоритет задать просто у статуса. pri кажется. Он сортирует их с учётом этого значения. Кажется если -1 поставишь, всегда будет вверху.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12924/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 07:50
RSS-bot (tavern,2)
BWR_N6: А сколько в переходе строк? Я просто вроде помню, но в одной из трёх частей квантового кота ~3000строк
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12926/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 09:30
RSS-bot (tavern,2)
artomberus: @peter, точно! и это есть в документации :) и снова я прохлопал такой важный момент. Спасибо :) Одной заботой меньше.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12928/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 09:30
RSS-bot (tavern,2)
Irremann: Если сложить все файлы Созвездия 3, то там где-то к 5 тыс. строк и 300кб. Но смысла меряться объёмом нет никакого =).
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12927/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 09:50
RSS-bot (tavern,2)
artomberus: @Irremann, согласен :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12930/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 09:50
RSS-bot (tavern,2)
artomberus: @spline, заглянул в его код. Гы. Теперь не уверен... ) Я думал, что игра большая, потому, что графики много, а самое большое творение - это Особняк. Надо мне быть осторожнее с громкими фразами. Но суть была к чему - я посмотрел на то, что получается - и экстраполировал это на момент финала. И если продолжать в таком вот духе - то получается очень большая игра... Я скорее с ужасанием сказал это... Нет задачи ставить рекорд, конечно. Задача другая - всеми силами закончить игру. Но вот сейчас у меня идет разработка путешествия по одному пути. Там будет свой набор сцен и героев, все это обусловлено выбором поворота. Путь налево - его противоположность. А вот центр - тут надо совместить оба. Получается, всё, что сейчас написал до сцены с перекрестком - это разминка, вступление, и как вступление оно уже свою задачу выполняет - рассказывает игроку, почему он здесь и что от него хотят. Но само "тело" игры - сцены после поворота на развилке. И реализовать вот эти три пути - это много кода... Даже если делать переходы на некоторые сцены перекрестно. Сильно разбежался я, в общем. :smile:
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12929/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 10:10
RSS-bot (tavern,2)
artomberus: @BWR_N6 , много :) 17162 строк, если все .lua файлы посчитать.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12931/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 10:31
RSS-bot (tavern,2)
peter: А можно пример с реплейсом и изменением порядка?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12933/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 10:31
RSS-bot (tavern,2)
peter: Но реплейс не должен менять порядок. Я это исправлю в след. версии если это баг
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12932/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 10:50
RSS-bot (tavern,2)
artomberus: @peter, когда в инвентаре оставался один предмет (один топор, например, я с ним заходил с помощью debug в нужные мне локации для тестирования кода) - и когда я использовал replace - статус смещался на 2 строку, да. Я изменил replace() на remove() затем take(), и это поведение ушло. Я сейчас попробую где-то снова написать replace и повторить то, что делал. Без приоритета у прогресса, если ситуация повторится - пришлю тебе код и порядок действий.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12934/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 11:00
RSS-bot (tavern,2)
peter: Да, хорошо бы разобраться. Так я посмотрел, вроде код верный. Но раз это произошло, значит баг есть
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12935/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 11:40
RSS-bot (tavern,2)
artomberus: @peter, ну вот, а я случайно заметил, и решил, что так и задумано :) Если правда баг - то от меня есть хоть какая-то польза...)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12936/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
04.03.2019 13:20
RSS-bot (tavern,2)
peter: Да, баг был. Пофиксил. Будет в след версии. :) Спасибо!
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12937/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
27.03.2019 14:17
RSS-bot (tavern,2)
artomberus: Затормозилось всё. Пока у нас ремонт, точнее даже стройка. Совсем не получается собраться. Написан небольшой проект, к нему человек делает в фотошопе рисунки, и когда это закончит - я покажу. Но это не совсем игра... Хотя и имеет отношение к литературе. А большую игру, о которой эта тема - продолжу, как только всё устаканится. Идея хорошая и мне нравится, план есть, всё есть. Просто продолжу с того места, где остановился. Но пока - увы.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13032/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
10.07.2019 22:31
RSS-bot (tavern,2)
artomberus: Давненько я не писал сюда. Посмотрел на последний свой пост-отчет. А ведь кое-что изменил с тех пор. main3.lua - 138 КБ, 2490 строк. longway.lua - 25 КБ, 635 строк. Суммарно - 3125 строк, 163 КБ кода. В основном - багфиксы, но также прописал много всего интересного. Даже нелинейность в 2 варианта выбора порождает необходимость развивать потом эти 2 сюжетные линии. И, кажется, это стало так сложно, что я перестал понимать, как свести это назад в один поток. Это и есть моя главная задача теперь. Потом пойду более линейно. Если раньше я усложнял и ветвил игру, то теперь попробую идти обратным путём и закончу всё то, что прописал. Добавил несколько новых локаций, диалогов. Всё это здорово и по делу, но всё равно - топтание на месте и полировка уже созданного. А большого прорыва пока нет. Есть лишь отдельные идеи, отличные, но они не связываются пока в целостную картину. А вот все мелкие задачи сделал, пофиксил, отсюда больше кода. Как-то так получилось, что в моей сказке будет небольшой элемент хоррора. Но он очень уместен, как мне кажется :) И снова-таки - моральный выбор. Лень, плохие поступки и неосторожные диалоги - приводят к соответствующим последствиям. Но если быть внимательным - то можно избежать ловушек. Очень надеюсь, что все эти вещи - не слишком очевидны. Жаль будет, если игра будет слишком легкой. Но как получится. В любом случае, небольшой шаг вперед сделан, а это уже хорошо. Если говорить о технических заморочках, то она у меня одна. Я путаюсь в скобках и запятых, когда прописываю диалоги. В примерах фразы маленькие - и оно всё симметрично выстроено красиво, всегда ясно, что где. А когда пишу свои огромные диалоги, а там же ещё логические переменные, работа с инвентарем и подобное - всё это смазывается в большую кашу... Я стараюсь делать отступы - и закрывающую скобку ставить на том же уровне, что и открывающая, 3-5 строками ниже, например. А между ними содержимое диалога. Но это всё, что можно сделать, и мало помогает. Когда вы пишете диалоги - как не путаетесь? Вы просто внимательнее, или знаете какой-то секрет? Убрать перенос строк в редакторе? Пусть лучше будут длинные фразы по горизонтали, но зато всё будет ровненько по вертикали... Как только пишу диалоги - начинается боль и страдание... ) А в остальном - просто и легко. В общем, я жив, здоров и понемногу пилю свой долгострой. Буду иногда сюда писать, но только когда будет прогресс. Или вопросы. Спасибо за внимание :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13215/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
10.07.2019 22:51
RSS-bot (tavern,2)
peter: > Жаль будет, если игра будет слишком легкой. Зато -- более доступной. ;) > Я путаюсь в скобках и запятых, когда прописываю диалоги. С практикой придёт автоматизм. Но вообще, диалоги можно "разворачивать" на 1 уровень. Вот пример: https://github.com/instead-hub/instead/blob/master/doc/examples/stead… Обрати внимание на два факта. 1) В диалоге есть и phr = и obj = 2) Переход на ветку делается nextом (см. например next="#лифт" и "#лифт" в секции obj. ) То-есть, не обязательно бесконечно делать вложенность, можно заранее заготовить фразы в obj = { и переходить на них next или как-то ещё.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13216/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
10.07.2019 23:11
RSS-bot (tavern,2)
artomberus: @peter, лучше умеренно сложная игра ) Очень доступная, казуальная игра - стремится превратиться в кликер с единственной кнопкой "далее", а эту крайность я уже реализовал один раз, и похоже это не то, чего я хочу :) Загадки должны быть. Они у меня и не будут сильно сложные, хотя сам я такое люблю ;) Вот как у тебя, в Дровосеке.) Про диалоги - спасибо за совет, попробую разобраться :) Действительно, так удобнее должно быть.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13217/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
27.09.2019 17:20
RSS-bot (tavern,2)
artomberus: Всем привет. Я жив. Много изменений, как обычно. И у меня, и в игре... main3.lua - 185 КБ, 3227 строк, longway.lua - 30 КБ, 682 строк. Суммарно - 215 КБ, 3909 строк кода. Но это просто цифры. Главное, что продолжаю разработку, периодически что-то исправляю. Живу и работаю в другом городе теперь. Пишу в основном по выходных. Смена обстановки сказывается и на творческой стороне. Меньше рефлексии, больше поверхностного, стало легче создавать квестовую часть, труднее - содержательную. Более сухие диалоги, вообще тексты. Надо бы больше юмора добавить. Так, как стало понятно, что писать игру буду долго - а техника моя компьютерная на ладан дышит - опубликовал проект на GitHub. Для этого я даже разобрался немного, как использовать git... ) Хотя там ещё много непонятных для меня вещей. https://github.com/artomberus/adventureintheforest Хотелось навести порядок в исходниках, но получилось не до конца. И всё же это лучше того, что было до. Потом, понемногу, я причешу код и вообще файловую структуру. Сейчас "творческий беспорядок", но лишь бы код писался. Если есть желающие потестить проект - пишите о найденных багах, их там, скорее всего, очень много. Если я что-то сделал явно и очевидно неправильно - тоже пишите...
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13264/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
Dwarf Vader: Удачи!
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13274/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
artomberus: > @"Dwarf Vader" написал: > Что могу сказать? Только одно: Правильным путем идете, товарищ(и)! :) Благодарю! :) Это вдохновляет продолжать. Примерно в том же духе, пока не получится целостная игра)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13273/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
Dwarf Vader: Насчет бинарности, так сказка же, только немного более современная. Мне понравилось что волк помогал в первый заход. Такие моменты вносят эти самые полутона, поэтому не только черное и белое, что хорошо.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13272/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
artomberus: @"Dwarf Vader", с жар-птицей рассчет такой, что до неё игрок в любом случае прогуляется по локациям, а значит зайдет и к лодке. Там у лодки должен быть триггер, который запустит диалог один с хозяином трактира. Это ещё в планах. Если во время игры не получил кувшин и прошел мимо - то в дупле его можно найти. Тоже условие. Я хотел больше возможностей сделать для маневра. Не вести игрока тоннелем, а как-то вот разнообразить его выборы. Поговорить с хозяином трактира, чтобы узнать, что нам нужно перо - логично) Ну и количество заходов ещё. Да, возможно, сложновато, если окажется, что это непреодолимое препятствие - упрощу условия. Спасибо за фидбек :) Возможность поставить кувшин преждевременно - да, баг) Недоработка. Это исправлю, спасибо) А так да, здесь игра пока что заканчивается. Если нести кувшин к мельнику - вызывается стандартная реакция вместо диалога с мельником, который ещё не написан :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13271/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
Dwarf Vader: Кроме как в самом конце не застревал. Все понятно, логично и интуитивно понятно. Про козла - было интересно выбираться из сложившейся ситуации. Вначале подумал что это заглушка. В плане юмора все нормально. Думаю его достаточно. Что могу сказать? Только одно: Правильным путем идете, товарищ(и)! :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13270/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
artomberus: @"Dwarf Vader", привет, и спасибо за отзыв) Ну, она в состоянии пре-альфа, по сути, но то, что реализовано - почти финальный вариант по содержанию, я так пишу. Предсказуемость игры - то, что меня тревожило, но пока вот так получается. Да, там можно ещё добавить полутона, варианты действий. И ещё сами сцены у меня довольно куцые - их в планах расширить полноценными литературными описаниями, а так там в основном тексты, которые связаны с предметами-локациями, а надо ещё проработать атмосферу... Некоторая бинарность игры в плане морали - наверное, отражает меня самого... Да и просто такое мышление получилось - разделение на зло и добро. Хотя вот я долго думал, добро или зло - съесть колобка. И таки решил, что добро, хотя с этим можно и поспорить. Действие с колобком, кстати, не учитывается в общем подсчете выборов. А так именно содержательная сторона игры - слабое звено у меня пока. Но я над этим работаю! :) Музыка вся идет от одного автора, который делится ею свободно, как раз для игр. Поэтому есть некоторая целостность звукового сопровождения, что очень ценно для меня. Мне оставалось лишь подобрать для каждой сцены свою музыку. Про Бильжо - интересное сравнение. Не слышал о нем раньше :) Перевыполнение плана - баг. Я внимательно посмотрю, какое сочетание условий даёт лишний инкремент переменной. И для него надо будет написать отдельное исключение.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13269/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
Dwarf Vader: Далее: 1). С жар-птицей сложно все очень - смотрел условие в скриптах. Я бы сто лет искал. По мимо всех прочих условий еще и рандом должен отработать. Когда знаешь вызвать не сложно. Тут игрок ИМХО может надолго застрять. 2). Первый раз условно запорол прохождение. Нашел кувшин в дупле, пошел в таверну, от нечего делать поставил на столик, а забрать-то нельзя его, пока в него пиво не нальешь. А без кувшина птичка-курочка не возникнет. Беда. С этим преждевременно поставленным кувшином есть и еще одна засада в виде реакции: ![](http://instead-games.ru/forum/uploads/editor/04/uygiqx2n99hj.png "") Но это я уже придираюсь, потому что в этом месте игра в данной версии вот вот должна закончится. Просто не доведено до блеска.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13268/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
Dwarf Vader: Встреченные шероховатости: ![](http://instead-games.ru/forum/uploads/editor/jk/t2tfji8dair6.png "") То что развилки еще не все готовы понятно, но я каким-то образом в первый заход перевыполнил план - 110%
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13267/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
Dwarf Vader: Звуковое сопровождение отлично подобрано, рисунки автора тоже доставляют - этакий Бильжо.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13266/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
28.09.2019 06:10
RSS-bot (tavern,2)
Dwarf Vader: Дамы и господа, это просто праздник какой-то. Давно ждал. Масса позитивных эмоций. Жалко не дописана, но и того что есть хватит скоротать вечерок. Тем более, что можно по разным веткам проходить. Я пробовал разные варианты - плохой и хороший. Стал вести себя как мальчиш-плохиш только ради теста, но не пожалел. Путь сто процентного света предсказуемей что ли, хотя это еще как сказать. Полутона меня удивили. Сказка-то добрая независимо от того, какой герой. Может мы дурное и не со зла делаем иной раз. Игры все-таки должны быть с точки зрения морали не палочными исправительными учреждениями, а добрыми дядями и тетями, которым не все-равно что с нами в итоге будет.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13265/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
13.10.2019 20:30
RSS-bot (tavern,2)
artomberus: @peter, я думал, что это и есть готовая функция, которую написал для примера, только не был уверен в правильности её использования, т.к. запутался в синтаксисе... Всегда могу запушить на github, благо в текущем виде просто ничего не происходит и игра всё игнорит... Но декораторы - это то, что нужно. Всё есть, отлично) И, кажется, более понятно даже. Думаю, смогу разобраться. Спасибо :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13288/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
13.10.2019 20:30
RSS-bot (tavern,2)
peter: Готового примера нет, который можно запустить, поэтому не смогу помочь. А так, вот демка: https://github.com/instead-hub/stead3-modules/tree/master/decor Это модуль decor, который использовался в "ВАХТЕ".
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13287/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
13.10.2019 20:30
RSS-bot (tavern,2)
artomberus: Меня сильно не ругать. Человек учится и знает, что полез в полные дебри. function start(load) sprite.render_callback( function() local options_menu = sprite.new 'gfx/corner.png'; sprite.scr():draw(options_menu, 15, 15) end ) end Чего хочу? Просто нарисовать картинку поверх сцены в свободном месте. Зачем? Чтобы потом сделать её кликабельной и назначить переход в отдельную комнату. В примере Петра из этого комментария - http://instead-games.ru/forum/index.php?p=/discussion/comment/11703/#… задаётся красный квадратик. И с fill оно работает, а с draw нет... Подозреваю, что я снова занимаюсь извращениями. Но мне интересно... Хнык. Читаю и не понимаю. Повторяю до просветления, которое пока не приходит. Эх. Но я также пишу и нормально игру, обычным способом.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13286/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
13.10.2019 20:30
RSS-bot (tavern,2)
artomberus: Исправил множество мелких деталей. Исправил (надеюсь!) баг с перевыполнением плана. Теперь стабильно приходим к камню на пути со 100%. А дальше буду делать счетчик прогресса только в конце разработки, когда будет ясно, что эпизоды больше не будут редактироваться в плане сюжета-квестов, чтобы потом не переделывать. Дополнил игру звуками, где их не было. Изменил поведение озвучки. Разобрался, что творится с кодом - у меня действительно проигрываемый звук определялся тем, какой вызывается первый, и если в обработчике пишу snd.play() - то пока он играется - никакого клика нет, вот он и гасится, и в принципе это мне и надо, хотя это, наверное, плохой тон, так делать. Побочный эффект подобного подхода - при клике или переходе в другую сцену - текущий звук резко прерывается. Возможно, это не так и плохо, потому, что меня смущало, что можно скатить камень с горы и потом быстро прокликать путь внутрь хижины, а звук камня будет играться. И подобные моменты. Теперь хотя бы логично - ушел с места звука - его больше не слышишь. В идеале вообще бы плавное затухание, но заморачиваться с этим пока не стал, и так слишком много внимания приделяю деталям, углубляюсь в них в ущерб основной линии разработки. Разобрался, более-менее, с живыми объектами. Спасибо Петру за подсказку и идею. С ними можно сделать нормальную реализацию звуков, но пока мне лень...) Зато теперь с игроком всюду ходит невидимый life объект в инвентаре и выполняет действия, которые невозможно привязать к локации или наличию предметов в сцене. Сцены с морем и лодкой, с дубом - дополнены. В коде реализован режим вечера, который пилил уже давно. При изменении одной переменной после каждого перехода игрока по сцене отрисовка сцены затемняется (привет, полупрозрачные png) - только в сценах "на улице". Это нужно для сюжета, связано с одним квестом и возможностью выбора. Должно получиться забавно. Проработал варианты действий-диалогов в трактире. При кажущейся простоте сцены там много всего реализовано. Тоже есть выбор, что за чем делать, и что не делать. Возможно, есть баги, если какой-то вариант не предусмотрел в коде, но я старался прописывать строго всю логику - весь спектр вариантов. Сейчас стало интереснее. Самое последнее, что можно сделать сейчас в игре - получить муку. После этого тупик и дальше надо писать продолжение, но я пока не продумал сюжетные детали. При первом за игру переходе к лодке у моря - инстед на пару секунд подвисает. Наверное, я написал неоптимальный код. Или это потому, что у меня "окна". Но скорее - потому, что использую рандом, плюс запускаю 2 дополнительных звука в разных каналах. Но зато там всё ровно так, как задумал. Прописал дополнительные реакции на предметы. Хочу сделать ещё одну штуку, но пока не разобрался, как. При клике на всех объектах, которые у меня являются глаголами - выводить свою, не стандартную реакцию. Что-то вроде того, как сейчас при клике топором ('topor') на "Ты можешь {drinkwater|попить} воды из него." - вызывается реакция - p[[Ударим топором по глаголу?]] . Хотелось бы написать одну функцию и прописать её во всех глаголах сразу. Подобрать одну нейтральную фразу... Хм. Надо подумать. Хочу добавить паутину в хижину. Не знаю, зачем и какой квест с этим, но вот идея не покидает меня. Дошло до меня, хотя и запоздало, что можно в однотипных операциях присваивать обработчику какую-то функцию, и её отдельно в коде написать, таким образом тиражировать одинаковые реакции в разных местах. Я это сделал в одном месте и сократил код на 90 строчек. Здорово, попробую всюду, где это возможно - делать так. Начал использовать функцию-обработчик cond = . Чтобы по условию показывать нужные ветки диалога. Раньше я примитивно делал копию диалога, менял его в нужном направлении и перенаправлял туда игрока по условию. Это, конечно, тоже работает, но это раздувает код. Поэтому потихоньку буду стараться расширять вариативность в одном и том же диалоге, а не делать несколько. Снова-таки - доходит это до меня поздно, но лучше хотя бы так. В самом начале, когда писал код игры - я реализовал вывод сообщения "Не пей, братец, козленочком станешь" неправильно - в описании, вместе с остальным текстом, и пришлось вручную убирать этот текст при переходе и вообще писать странные костыли, чтобы в разных локациях оно не съезжало никуда. Не знаю, что меня смутило сначала, ведь по идее всё это можно было сделать в act= и тогда бы сообщение выводилось аккуратной строчкой сверху, как и любая другая реакция. Теперь лень переделывать, но когда доберусь, то возможно сделаю правильно. А так я намудрил слишком много всяких переменных и условий... Плохой код( Но я так учусь, да, на своих граблях. Потом всегда понимаю, как надо было сделать. А ещё хочется кнопку сделать, снизу, слева от меню. Что-то вроде walkin-a в комнату-локацию с титрами, переключением языка (когда переведу на инглиш), и прочими опциями, статистикой, например. Для этого надо осваивать спрайты, а они меня пугают ) И может, к счастью, потому, что сейчас это абсолютно второстепенно. Пробовал запускать игру без встроенной темы. На мобильном и на компьютере. Как ни странно - а играть можно, всё более-менее на своих местах, и вот, где пригодилась прозрачность предметов в инвентаре. Поэтому если критичен размер шрифта - можно включить стандартную тему, отмасштабировать шрифт и так играть - всё будет работать, хотя и выглядеть не очень. Сюжетно - есть подвижки, есть общее понимание, но нет конкретики, что за чем. Думаю пока. Решение квестов в деревне приведет игрока за её пределы, но куда? Сам не знаю, есть идея, но нет её обоснования по сюжету) После тестирования нового кода и отсутствия очевидных багов - отправляю на GitHub. Удобно - потом я просто скачиваю zip архив через браузер смартфона и он устанавливается в инстед. Можно легко обновлять игру в любой момент - и тестить где угодно, когда есть свободная минута. Потихоньку перечитываю stead3-ru.pdf, и упрощаю себе жизнь. Главное - продолжать. Интересно, кто из читателей этой ветки форума - следит за изменениями или тестирует их, когда появилась такая возможность. А кто ждет финальный вариант, чтобы не размазывать впечатление и чувство новизны?...) Всем спасибо за внимание :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13285/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
13.10.2019 22:50
RSS-bot (tavern,2)
peter: Просто в твоем варианте мне нужен законченный рабочий пример, иначе я не могу ответить. А так- он тоже должен работать, так как именно этот механизм используется в decor.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13289/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: Интересно сделал. Выбор языка - автоматический на основе локали инстеда, но также есть возможность выбрать язык при старте, причем это ненавязчиво, через менюшку справа. Эта менюшка управляется как при помощи мыши, так и при помощи клавиатуры, всё нарисовано и запрограммировано...) Чтобы продолжить, теперь необязательно нажимать мышкой далее, можно просто нажать enter или space. Дальше включается обычное управление инстеда с клавиатуры, я переопределил лишь клавиши o, i, r, e, u, k. Чтобы можно было зайти в мои менюшки с клавиатуры. Игра корректно всё отрисовывает и обрабатывает остальные клавиши. В меню инфо и панели опций - нажатие ESC ведет к переходу назад к игре, а уже там ещё раз ESC - штатное меню. В общем, освоил работу с клавиатурой полноценно. Сделал возможность менять размер шрифта прямо в моей теме, таким образом я могу проследить, чтобы всё корректно отображалось. Добавил всяких свистелок... Ну интересно мне) Видимо, творческий кризис. Надо подумать, куда двигать игру сюжетно дальше, чтобы нормально заскриптовать квесты и не переделывать потом. А теперь пора работать. ![](http://instead-games.ru/forum/uploads/editor/na/wv7bjwrdeklo.png "") ![](http://instead-games.ru/forum/uploads/editor/mu/ag257xewsiwd.png "") ![](http://instead-games.ru/forum/uploads/editor/7i/y3ooy8ytdrbb.png "") ![](http://instead-games.ru/forum/uploads/editor/wf/ojwwcmzw91x1.png "")
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13306/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: @peter, ну, мы не ищем легких путей... =) Спасибо.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13305/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
peter: p( phrases[language][rnd( #phrases[language]) ]);
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13304/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: @peter, разобрался и с этим. Всё прекрасно. Игра стала ещё лучше. В руководстве, правда, о переменной LANG речи не было :) Всё, не буду отвлекать от важных дел своими вопросами.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13303/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: @peter, так можно узнавать текущую локаль инстеда из игры?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13302/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: @peter, работает, спасибо!) Немного затруднился с определением размера массива (аргумент для rnd), но погуглил и нашел нужную функцию: p( phrases[language][rnd( table.maxn(phrases[language]) )]); Сначала пытался делать так: p( phrases[language][rnd( string.len(phrases[language]) )]); Но тогда инстед мне говорит - ты, товарищ, не со строкой работаешь, а с таблицей. Ну окей :smiley:
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13301/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
peter: phrases[language][тут номер фразы]
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13300/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: Нет, не работает p(phrases[language]). Пишет в реакции - table: 0x02b1c938 . И каждый раз разный двоичный код. Что-то я намудрил. Да и мне рандом нужен. Пойду спать. Завтра буду думать :) Но в принципе мой вариант реализации тоже работает, так что не велика беда. UPD. Всё на GitHub.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13299/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: Конечно же, это такая форма записи, и даже нашел в документации. Мне нужно просто менять значение language в твоем примере, присвоив ей ru, en, ua - в моей функции, которая меняет язык по запросу пользователя. Тогда эта часть кода будет работать синхронно с остальным изменением языка. Туплю на элементарном. Но - понял. Всё хорошо.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13298/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: @peter, про declare понял, это очень здорово, я и не хотел сохранять эти строки в сейв. И в дебаггере не будут простыни висеть, когда буду global список смотреть. А вот про global 'language' ('en') не очень понял, что и куда потом присваивать и как с этим работать... Что это есть и в каком разделе руководства читать?) Глобальная переменная language, потом указываешь ('en'), который является частью массива phrases, но не присваиваешь, а просто пишешь через пробел ('en')? А как тогда сменить на ru или ua? Мне базы не хватает... И там, где я не понимаю - плаваю в самом синтаксисе. Windows-way. Знаю, как, но не знаю, почему. Поэтому использую только то, с чем могу справиться, даже если можно иногда сделать лучше. if then else - понятно, условный оператор. Также, как и while. логические переменные - тоже понятно. true и false, присваиваем через = , сравниваем через ==. p'строка' , или p [[строка]] - тоже понятно. выводим строку. функции - понятны, но не совсем. но ок. function() end; -- минимальный код функции, без аргументов. Внутри пишу условия и прочее. function(n, z) -- n это сама функция, её результат, или как... тут уже плаваю. но в условии всегда используем z или другую букву, главное, что вторая, не первая в списке. Понимаю, что писать, когда задаю условия, но не понимаю, почему. rnd() -- понимаю, рандом. Обработчики, в инстеде, act, inv и подобное - тоже понятны. Делаем их функцией и возвращаем нужное вычисление или строку. snd.play() -- функция play модуля snd. И подобное, тоже понимаю, кажется. А вот с массивами надо разобраться подробнее... И с локальными переменными. У меня уже есть логическая переменная, даже три - ru, ua, en. Только одна из них всегда true, а две другие при этом false. И к ним уже привязано много других строк, и в принципе мне так удобно... Как тогда это переделать? game.use = function () if ru then return p(phrasesRU[rnd(#phrasesRU)]); end; if en then return p(phrasesEN[rnd(#phrasesEN)]); end; if ua then return p(phrasesUA[rnd(#phrasesUA)]); end; end; Может, пусть будет как есть, раз работает...
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13297/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
peter: Например: ``` global 'language' ('en') declare { -- global не нужен, так как ты по идее не меняешь переменные, в сейв их можно не писать: phrases = { ru = { [[Это не поможет.]], [[Это ни к чему.]], [[Это ни к чему не приведет.]], [[Не получится.]] } ; en = { ... } } } p(phrases[language]) ```
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13296/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: Как мне сделать условие для такого кода? global { -- Вариации "не получится". phrases = { [[Это не поможет.]], [[Это ни к чему.]], [[Это ни к чему не приведет.]], [[Не получится.]] } } Обычно я делал обработчик со строками функцией, и писал примерно такое: global { -- Вариации "не получится". phrases = function() if ru then return { [[Это не поможет.]], [[Это ни к чему.]], [[Это ни к чему не приведет.]], [[Не получится.]] } end } Но здесь это не работает, ведь это массив или что-то такое? Где бы я не ставил end, с ; в конце или нет - всё равно ошибка, что-то не то. Мне следует отдельно написать phrasesRU, phrasesEN, phrasesUA, и уже в game.use = function () if ru then return p(phrasesRU[rnd(#phrasesRU)]); end; if en then return p(phrasesEN[rnd(#phrasesEN)]); end; if ua then return p(phrasesUA[rnd(#phrasesUA)]); end; end; Так? UPD. Так и сделал, всё работает.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13295/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: @peter, окей, буду иметь в виду. Я ещё выбор языка же сделаю перед стартом, чтобы вступление уже было на языке пользователя. А в остальном в том меню не будет критичных для прохождения опций - только настройки для удобства плюс статистика. А можно как-то узнавать, какая локаль сейчас у пользователя в самом инстеде? Чтобы при попадании в список (ru, en, ua) - выводить на этом языке строки игры, не спрашивая. А если попадания нет - спросим у игрока? С отключенной темой игры - прохождение тоже возможно, а там, значит, и шрифты можно регулировать, для тех, кому это необходимо. Таким образом, и у меня есть свобода творить оформление, какое вижу у себя в голове, и у пользователя будет возможность всё это отключить, но игру пройти.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13294/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
peter: P.S. привязка к модулю decor означает привязку к теме оформления, имей это в виду!
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13292/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
peter: Круто, ждем релиза. :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13291/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
09.11.2019 22:10
RSS-bot (tavern,2)
artomberus: @peter, понимаю. Но уже сделал через модуль декораторов :) За который благодарю ;) Не всё ещё изучил и понял, но кое-что получилось у меня. Сделал кнопочку, которая ведет в отдельную локацию с измененным фоном. Там потом всё оформлю нормально, в зависимости от наполнения. Сейчас там изменение языка игры и возможность включить недоработанный вечер. Теперь я знаю, что могу в одном исходном коде сделать три языка, и не надо будет синхронизировать три файла потом, когда буду баги чинить. Теперь всё в одном месте, как и хотел :) Правда перевод это дело медленное и второстепенное, но сам факт того, что я уже заложил основу - радует :) ![](http://instead-games.ru/forum/uploads/editor/f0/yyejlbiujaey.png "") ![](http://instead-games.ru/forum/uploads/editor/fn/dl3geuzi2glz.png "") Да, можно было вообще всё меню сделать декораторами, и это было бы даже лучше - не надо было бы переживать, что лишние такты игры как-то повлияют на игровой процесс - для инстеда заход в эту панель есть заход в обычную комнату, но всё же так - привычнее, и быстрее делать сами переключатели. Поэтому вот :) Весь код уже на GitHub.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13290/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
01.06.2021 19:50
RSS-bot (tavern,2)
Artur_Aiwasan: Атмосферная игра. Жаль, что тишина=|
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13785/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
05.06.2021 22:30
RSS-bot (tavern,2)
Artur_Aiwasan: Тогда ждём :) Игра напомнила старые инстед игры. В них что-то эдакое было, цепляющее=)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13787/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
05.06.2021 22:30
RSS-bot (tavern,2)
artomberus: @Artur_Aiwasan , привет. Увидел уведомление на почте) Увы, не всё получается так, как планируется. А меня ведь предупреждали - не гнаться за масштабностью... Начал я игру, когда сидел дома и очень не хотел выходить из зоны комфорта, и причины написания игры были очень личные, это попытка вернуть себе свои мозги и вообще ощущение, что могу творить. Потом случился переезд в Луцк, год на съёмном жилье, работа, новые впечатления, вообще много всего, что меня сильно изменило. Потом я вернулся назад в свой город, но такой глубокой интровертной погружённости в себя с тех пор нет, той степени концентрации, которая помогала мне. Технически реально всё продолжить. Есть код, есть все исходники всех изображений. Сканер только пылится без дела, но можно подключить. Да даже с тем, что есть - значительную часть можно разрабатывать просто на багаже старых наработок, сюжетную концепцию я наметил ещё тогда. Мне до сих пор нравится это всё :) Но увы, пока отошёл от активности, связанной с инстедом и с игрой. И дал себе слово, что вернусь только с новой порцией изменений и улучшений. Начинать что-то новое я в любом случае не буду, пока не допишу то, что начал. Но когда это будет... Это проект для души, и когда придёт вдохновение - тогда и будет. Да самому хочется же завершить :) Вот только в жизни есть много других дел и забот, помимо хобби. Так что вот так нехорошо получилось, да. Но ещё, наверное, есть шанс реабилитироваться в глазах сообщества. Я уже столько всего интересного пропустил... Если какое-то движение будет - я сюда первым делом напишу :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13786/#…
--------------------------------------------------------------------------------
subject: Вопросы artomberus
13.06.2021 21:10
RSS-bot (tavern,2)
spline: Приятно видеть, что хотя бы в виде букв на форуме ты с нами. Недавно как раз вспоминал тебя и твою игру. Очень хочется поиграть :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13829/#…
--------------------------------------------------------------------------------