Paw Noir C64 devlog
Open in Telegram
205
Subscribers
No data24 hours
+97 days
+3830 days
Posts Archive
Repost from N/a
В эти выходные с Кириллом делали игру на омском Людум Даре.
Поиграть можно тут https://catinthedark.itch.io/tldr
Писали игру на С++ и библиотеке raylib.
Получилась вторая игра из нашей вселенной “Треугольники vs Круги” ахах. (предыдущая игра)
Концепция такая: игрок-треугольник попал в круглый мир. Мир, в котором у всех объектов бесконечно много вершин. И там всё крайне враждебно.
Игрок столкнется с кругами-стенами, его могу засосать черные дыры, и за ним будут охотиться круглые охотники.
Но самое стращное, что в этом мире совсем нет графики полигонов света: всё происходит в полной тьме!
Мне уже лучше, слегка допилил вечерком экран контролов. Пока это статическая картинка, ничего выбрать нельзя, ничего не происходит
Думаю, сделать так
* выбор управления - лево/право, либо F1/F3/F5
* при выборе управления меняется выделение нужного пункта серым цветом, а так же меняется текст, поясняющий что какая кнопка делает
* При этом хочу чтоб кнопки F1/F3/F5 работали глобально. Ну или как минимум не только в настройках. Чтобы игрок, единожды залезши в настройки, мог запомнить, на какую кнопку включается его любимое управление (сохранения настроек же нет!) и нажатием одной кнопки мог выбрать управление
Есть ли в этом смысл? Насколько понятно пояснение внизу экрана? Стоит ли ещё где-то писать, какой сейчас выбран режим и как его можно выбрать?
Давайте что ли завтра стрим по кодингу.
В 13:00 МСК
https://www.twitch.tv/bootak
Спасибо Богдану за феерический багрепорт! Как вы помните, мы выравниваем тело по сетке тайлов, когда кладём его. И всегда выравниваем его в сторону ОТ котика, чтобы тулово не наползло на игрока. Но это происходит только если игрок на экране. И баг в том, что состояние "игрок напоролся на шипы и воспроизводит анимацию смерти" уже считается как "не на экране". Хотя вообще-то вполне себе да. В общем, поправил. Во второй половине видоса видно, как это работает
Меня разрывают в клочья разные игроки, потому что каждому надо разные контролы. Одни такие "фантомные нажатия, переделай прыжок на fire, а захват на вниз". Другие такие "нет, лучше на вверх, чтоб на NES64 заремапить верх на B". Первые такие "слыш ты чё, чё вдруг не как в Принце Персии или Чип и Дейле, неинтуитивно!". А потом кто-нибудь такой "А раньше было лучше, вот старые контролы огонь"
КАРОЧИ
В игре сто лет уже была возможность менять контролы на лету (пароли
grabfire и grabdown), но теперь, видимо, настало время вынести настройку управления в отдельное меню
Поэтому представляю вашему вниманию: Меню с подменю! Раньше в коде была одна таблица меню, а сейчас их может быть сколько угодно. При выборе пункта меню есть возможность сделать одно из двух: перейти на другой игровой экран, либо отобразить другое меню
А, ну и кроме контролов добавлю наверное ещё один экранчик с Tips and tricks
... А ещё чёт подумал, и наверное можно добавить пункт "About", чтоб сразу видеть, кто всё это наколбасил+2
И ещё один баг репорт от Алексея Земцова
0 в десятках не пишется, потому что... Потому что он равен нулю. Там после преобразования числа в десятичные цифры был примерно такой (тупой) код:
* сотни == 0? Тогда сотни не пишем
* десятки == 0? Тогда десятки не пишем
* пишем единицы
По этой логике, если сотни были != 0, а десятки == 0, то вместо десятков мы писали пробел
Теперь я это исправил и сделал ещё одно улучшение: Раньше, если десятки и сотни были == 0, то перед единицами было два лишних пробела. А сейчас между двоеточием и первой цифрой числа всегда ровно один пробел. Хотя код по-прежнему туповат
Многие плейтестеры играли-играли, и даже не подозревали что после прохождения уровня выводится статистика. Потому что этот экран можно легко пропустить нажав Enter
Теперь я сделал так: первое нажатие Enter выводит всю статистику (звёздочки и прочее) моментально. Второе нажатие - уже переключает экран
Пока что, как видите, есть небольшие баги, если нажать Enter в неподходящий момент.
Но зато теперь статистику не пропустишь :) Надеюсь, так играть будет интереснее
... Уже 400 коммитов...
+127 коммитов и +3500 строк кода с июльского ZZAP!64 релиза
Но это ещё не финальный релиз, не знаю когда наконец-то доделаю. Три бага пофиксил, два нашёл
добавил ещё один экран. Теперь в конце игры показывают, куда можно сохранить пароль
Не думал, что до этого дойдёт, но..... Юнит тесты!!!
Спасибо Алексею Земцову за найдённый баг: игра не принимала некоторые пароли, которые сама же сгенерировала
Чтобы разобраться, написал кусок кода, который генерирует пароли для всех возможных валидных значений игровых переменных. И потом эти же пароли декодирует. Проверяет, что декодирование прошло успешно. И сравнивает декодированные игровые значения с теми, что были поданы на вход.
Баг в результате был в проверке чексуммы. Я совсем забыл, что на CRC в пароле отдаётся всего 4 бита. А сама CRC может быть больше 15. И надо после вычисления контрольной суммы обрезать её до 4 бит и только тогда сверять с той, что хранится в пароле
Но в итоге код довольно медленно работает. Чтобы перебрать все комбинации паролей для первых трёх уровней, в реальном времени понадобилось бы 30 минут. Хорошо что у VICE есть режим WARP, который разгоняет процессор в N раз и в итоге код вертится быстрее
