Void Loop
небольшая игра для проверки идеи
Ученому перед сном пришла идея как перемещаться между пространством и временем.
Ночью он отправляется в лабораторию чтобы попробовать.
Наконец, настроив пространственно-временную камеру, он открывает двери, входит внутрь и…
платформер-пазл-метроидвания, без слов
3 слота сохранений, но игра всегда сохраняется сама в определенных местах, всего 3 концовки.
На всякий случай оставил возможность сохраняться/загружаться самому кнопками F5/F8, затирая автосейв.
pageup / pagedown — сделать окошко больше / меньше, специально для обладателей огромных мониторов.
Рисовать не люблю, поэтому сначала делал игру на конкурс lowrezjam, не успел, решил доделать. Поэтому картинка 64×64 пикселя.
Не умею делать нормальную музыку — взял из фильма «Пыль», поскольку при прослушивании этого саундтрека и возникла идея игры. На самом деле это просто нарезка звуковой дорожки с фильма, так не удивляйтесь посторонним звукам.
Звук тикающих часов взял отсюда.
страница с windows и web-сборкой
В веб-версии после надписи «Running…» браузер может подвиснуть на 5−10 секунд, потому что долго грузится музыка. Если браузер скажет что JavaScript завис, жмем кнопку «продолжить сценарий».
Тут хотел написать что «сохранения в веб-версии, разумеется, работать не будут», однако почему-то работают (во всяком случае у меня, на старом Firefox).
Идея игры появилась где-то полгода назад, но браться не решался.
Прежде чем начать делать — сначала просто описывал уровни и головоломки.
В середине июля увидел инфу о конкурсе lowrez jam.
Решил — а почему не попробовать хотя бы демку сделать, это отличный шанс почти не рисовать, то что я не люблю делать.
Планировал закончить демку к концу августа, но не рассчитал сил, появились новые идеи и поскольку еще не устал от разработки — решил не делать демку, а допилить игру до конца.
На этот раз сперва сделал весь геймплей, а потом приступил к уровням.
И все равно допустил несколько ошибок.
В Tri0 у меня все локации хранились в 3-х двумерных массивах (задний план, передний, объекты). Но объекты при загрузке переносились в обычный список и брались уже оттуда. Связано это было с тем, что была необходимость ходить по трупам, чтобы в одной клетке могло находиться больше одного объекта.
В этот раз я решил оставить объекты в массиве и стокнулся с проблемами:
1) Перемещение объектов пришлось делать созданием второго массива со ссылками на объекты и их копированием обратно после перемещения
2) Возникли проблемы с коллизиями (нельзя было чтобы в одной клетке было 2 объекта, иначе один из них удалялся).
3) В связи с первым пунктом чтобы удалить объект — его надо удалять в обоих массивах.
Еще одна ошибка — разделение на экраны.
Из-за этого пришлось:
1) следить чтобы на за границами экрана не было никаких сюрпризов.
2) делать индикатор, обозначающий что за границей экрана ничего нет (при свободной камере это легко понять по остановке камеры).
3) обновлять объекты только на текущем экране, а противников ставить в середину (чтобы мы не столкнулись с врагами при переходе границы экрана)
Перемещение в реальном времени сделано криво. Поэтому скорость перемещения маленькая, чтобы персонаж не застревал в геометрии. По-хорошему этот код нужно полностью переделать.
Понял что в свою игру нельзя играть. Только тестировать то, что только что сделал, на предмет работоспособности. Ну и пройти пару раз, опять же — для поиска ошибок.
А когда именно играешь в свою игру, то уже на 3−4 раз игра перестает нравиться потому что ты в нее уже наигрался и поэтому можно решить что «получилась фигня, надо бросить».
- 21 октября 2022, 15:13
- 06
Заманчиво, но ничего не понятно.
Сначала застрял на моменте с машинками. Когда выхожу, показывается стрелочка и ничего сделать нельзя, рандомно нашёл, что есть рестарт по R:
Если много раз нажать на R, то почему-то начинается диалог и за тобой теперь охотятся человечки.
Во второй раз застрял с сокобаном людьми (в автобусе?). И наконец понял, что можно переключаться между снимками пробелом (почему не E?), дальше вроде пошло, круто. Напомнило Corrypt (когда начинаешь менять тайлы стрелочками).
Хм, поперезапускал ещё немного и получил плохую концовку. Не знаю отчего зависит, видимо игра на время и надо с самого начала как-то идеально проходить, не уверен что все экспериментальные механики как-то хорошо сочетаются с таким ограничением. Но может я опять не разобрался.
Добавил времени и выбор снимка кнопкой E.
Времени старался делать не слишком много (хотя 3 раза уже увеличивал его), чтобы игрок при первом прохождении добрался только до плохой концовки.
Только сегодня понял что в автобусе нет сидений.
Half Life какой-то.
Ничего не понятно, но мистично.
Хотя управление не совсем приятное, как будто в воде находишься, всё такое тягучее и медленное в движении,
гравитация медленная.
А идея интересная.
Тут застрял и никаких активностей не могу делать, даже выйти.
Надо найти логин и пароль.
Чтобы выйти, надо нажать Esc. Или крестик в правом верхнем углу кнопкой Пробел или Enter.
Наверное сюда надо добавить управление мышью, а не клавиатурой.
Механика перемещения в реальном времени сделана плохо, поскольку не является основной.
Персонаж перемещается так медленно чтобы не затревать в геометрии.
Ещё по Esc выходит. Но почему-то E опять не работает. Хотя это кнопка действия.
И я что-то застрял, не могу найти четвертую часть записки (верхняя-правая часть). В локации с лодкой странно пустовато, стрелочки понажимал, что-то вроде произошло, но не понял что. Так вроде всё облазил, нет 6-ой картинки совсем и от девятой только один уголок.
На планете в пещеры спускался (если идти налево до упора)?
Фрагменты 9-го снимка - один фрагмент в компьютере, один в пещере планеты, еще в космосе 2 кусочка (последний, возможно, будет непонятно как достать).
Что-то со звуком какие-то проблемы в новой версии. В консоли много ошибок, на кнопку M пишет:
(также её нельзя написать в логин-пароль форме)
Исправил. Забыл включить звук перед сборкой (я его выключаю чтобы игра запускалась быстрее).
Похоже придется отключать его как-то по-другому, чтобы в сборке он всегда был включен.
Иногда только не понятно, где переход на следующий экран. Как раз этот момент с планетой:
Неочевидно, что нужно забраться на ящики, чтобы пройти дальше. Я их сдвигал способностью и персонаж не шёл снизу, потому что там за экраном ещё ящики. Можно показать какой-нибудь полоской, что нельзя снизу пройти. Или звук какой сделать, что в стену (не радужную) упираешься. Возможно сами радужные полоски позаметнее сделать.
И у меня опять закончилось время до того как нашёл концовки. Но я перезагрузил до завершения диалога и часы исчезли. Или это ещё с чем связано и так и нужно (может с черной дырой?):
Границы уровня рисуются цветной полоской у края окна, той которая у тебя наверху скриншота.
Если ее нет, значит в эту сторону можно пройти.
Часы пропали потому что время вышло.
Да, я и говорю, что её может позаметнее надо сделать.
Странно, что играть при этом можно дальше. Я думал, только новый сейв начинать.
Сейчас у тебя время равно нулю.
В игре время уменьшается на 1 каждый шаг, если оно больше нуля.
А всякие там ограничения по времени проверяются только когда время меняется.
Получилось что теперь у тебя бесконечное время.
Добавил перемещение курсора и клики в компьютере мышью, можно кликать кнопкой E.
Добавил в конец поста немного инфы о разработке.