Карта: дневник разработки
В комментариях к этому посту собираюсь писать короткие заметки по ходу разработки игры!
- 07 апреля 2025, 20:23
- 010
Карта: дневник разработки
В комментариях к этому посту собираюсь писать короткие заметки по ходу разработки игры!
В выходные отдыхал, а сегодня сделал эскиз, каким должно быть прохождение игры от начала до конца. Всё ещё нет ни большинства текстов, ни кода. А уже возникло желание отложить продолжение работы на завтра! xD
Сегодня планировать начать код, чтобы сразу побыстрее узнать трудные моменты с движком, если они будут (почти наверняка). Но заковырялся в домашних делах и в чтении интернета, уже нет настроя что-то либо кодить, но такой режим головы подойдёт для написания текстов для игры, этим сейчас и занимаюсь. Видите, даже комментарий сюда получается художественным. Вошёл в режим! :)
Добавлено: Набросал описания от первого лица локаций в начале, в конце и ещё несколько ключевых для прохождения. Будет игра от первого лица! :o)
Днём немного позанимался Масками и Монстрами, но это оффтопик.
Преодолел психологическую блокировку по поводу нового движка (Twine) проверенным способом - начал с простого. "Закодил" обычные переходы в одной из частей игры и вроде проверил все их комбинации, таким образом, заработали уже около четверти локаций всей игры, хотя эти новые всё ещё почти без какого-то нормального текста. Ну и внёс кое-какие правки в тексты там и сям.
Как только дело дошло до кодинга, я тут же столкнулся с неприятным ограничением по поводу переменных в системе скриптинга Chapbook: переменные можно декларировать только в "локациях" (passage), но сразу с присвоением значения. Поэтому при быстром тестировании, начиная не с первой, а с произвольной локации с формулами, вместо неё наблюдаю пустую страницу. А переход на такую локацию не работает. Можно установить переменную в какое-то значение прямо в этой локации для поверхностного тестирования, но конечный вариант из этого не выйдет, поскольку это значение перезапишет все предыдущие, и получится константа вместо переменной. Почитать про это неудобство можно, например, тут и тут.
Думаю, в дальнейшем не буду пользоваться этой системой скриптинга. В Twine встроены ещё другие три %), скорее всего, мне из них больше подойдёт Harlowe, так как я практически не занимался JavaScript и не собираюсь. В Harlowe даже обещают макросы для создания своего функционала (привет alexsilent, любителю создавать свои диалоговые системы), хотя возможны какие-то свои нюансы (кажется, там нет родной вставки картинок и звука). Но сейчас, вероятно, доделаю на Chapbook, так как именно переменных в этой игре требуется довольно мало. Кажется, на данный момент остаётся закодить ещё только одну загадку (надеюсь, другие ограничения не обнаружатся), остальные - либо готовы по программной части, либо (будут) сделаны обычными "гиперпереходами".
Добавлено: нашёл обход проблемы - не пользоваться кнопкой тестирования на произвольной локации, а временно добавить на первую локацию тестовую ссылку и просто менять у неё пункт назначения. До конца джема должно спасти. :)
Мне Axma больше зашла, чем Твайн, но в итоге и Axma не понравилась, ибо там демоверсия, куча ограничений,
не то пальто, лучше свою Axma делать на Unity/Godot/GMS
Насколько я знаю, можно импортировать всякие диалоги из Twine и других ИЛ движков в классические движки через сторонние плагины. А из Ink в Unity, наверное, через официальный, так как Ink именно для этого и создавался. Но в Ink мне не понравилось, что веб-экспорт не является частью движка (вроде у самого движка вообще нет поддержки платформ, он сферический в вакууме), а это отдельный проект ("это не у нас баг, это баг в проекте ink-веб"). :'D
Бонусный скриншот без спойлеров. :) Напугаю программистов: все локации игры я связываю вручную, копипастой. Поскольку это маленькая игра без продолжения за пределами джема, то такой подход прекрасно работает. Муторно, но изобретение "более программистских" систем для всего, чтобы не делать это вручную, на практике заняло бы больше времени.
Забавно. А я пока над взаимодействием думаю. У меня не очень с ООП, а оно там нужно для масштабирования (не хочу потом зависнуть в макаронном коде).
Это на скриншоте не макароны, а возможные переходы между одним частым экраном и несколькими другими. Кор-механика заложена уже в движок Twine, тут можно не заморачиваться. Если туго идёт ООП, делай обычными функциями и enum'ами и разбей на несколько отдельных файлов. :)
Ах ты... макаронник.
Фух, кажется, самый сложный код только что заработал! :O От радости я проделал и нудную работу - вставил все остальные необходимые пустые заглушки локаций и прописал переходы между ними. Но всё ещё нужно дозагадать те части загадок, что не требуют кода. И написать много текста! И поработать над оформлением - пока что повсюду пестрит отладочный текст, и всё везде или по умолчанию, или наспех сделанное. :'D
Хак дня:
В выходные ничего не делаю (насчёт выходных перед дедлайном не уверен). Уже много лет практикую такой подход, что выходные - для отдыха, а не для геймдева. А геймдев - это по вечерам.