В общем, я начал активно заниматься созданием уровней. И первым делом полностью перерисовал первый уровень.
Потратил 60 триггеров из 96 возможных на всякие важные штуки вроде дверей, ключей и сюжетного текста.
На уровень я хочу добавить всякие предметы, типа аптечек, оружия и патронов. Учитывая, что на один предмет мне нужно по 2 или 3 триггера, то выходит 18 или 12 предметов на уровень. Думаю, этого хватит.
Еще я подумал, что вместо ключей можно использовать любой другой предмет. Поэтому на первом уровне одну дверь можно открыть только монтировкой, которую можно найти по сюжету. Даже сюжетный текст под это дело написал. Работает она точно также как ключ, даже иконка появляется.
Еще пока что на уровне 7 спрайтов-объектов из 32 возможных, но потом их станет больше. Это и ключи, и компьютеры с сюжетной информацией и монтировка.
Еще в планах дорисовать двух врагов (и определить их параметры) и какие-нибудь новые объекты (есть еще два свободных места). Ну и уровень можно считать готовым.
P.S. А еще я сделал явную отсылку на Heretic=)
Потратил 60 триггеров из 96 возможных на всякие важные штуки вроде дверей, ключей и сюжетного текста.
На уровень я хочу добавить всякие предметы, типа аптечек, оружия и патронов. Учитывая, что на один предмет мне нужно по 2 или 3 триггера, то выходит 18 или 12 предметов на уровень. Думаю, этого хватит.
Еще я подумал, что вместо ключей можно использовать любой другой предмет. Поэтому на первом уровне одну дверь можно открыть только монтировкой, которую можно найти по сюжету. Даже сюжетный текст под это дело написал. Работает она точно также как ключ, даже иконка появляется.
Еще пока что на уровне 7 спрайтов-объектов из 32 возможных, но потом их станет больше. Это и ключи, и компьютеры с сюжетной информацией и монтировка.
Еще в планах дорисовать двух врагов (и определить их параметры) и какие-нибудь новые объекты (есть еще два свободных места). Ну и уровень можно считать готовым.
P.S. А еще я сделал явную отсылку на Heretic=)
🔥6❤🔥2
Media is too big
VIEW IN TELEGRAM
Уже довольно длинный видеотчет на реальном железе.
Даже немного порезал его, чтобы совсем не было скучно=)
Вообще, самая большая проблема в том, что я начал этот проект, не зная практически ничего про Commodore. Изучал все по ходу, и многие критичные вещи (типа рендеринга графики), можно было бы переписать. Но, если честно, уже не очень хочется этим заниматься. И так все очень затянулось, как я думаю.
Но все работает! И это, я считаю, главное.
Даже немного порезал его, чтобы совсем не было скучно=)
Вообще, самая большая проблема в том, что я начал этот проект, не зная практически ничего про Commodore. Изучал все по ходу, и многие критичные вещи (типа рендеринга графики), можно было бы переписать. Но, если честно, уже не очень хочется этим заниматься. И так все очень затянулось, как я думаю.
Но все работает! И это, я считаю, главное.
🔥4❤🔥1
Система уровней в Doom RPG конечно хорошая, но оказалось, что и подходит она только для Doom RPG.
Поэтому я решил переписать две функции.
Начну с получения опыта при победе.
В Doom RPG результат рассчитывается исходя только из характеристик врага. Таким образом, даже на высоких уровнях все зависело не от того, насколько ты сильнее или слабее врага, а только от самого врага. И это совершенно не работает в моей игре.
Поэтому я решил высчитывать полученный XP исходя из соотношения параметров врага к параметрам игрока. Получилась такая формула:
Теперь, если враг сильный, и у игрока каким-то образом получилось его победить, то игрок получает большое количество опыта. И наоборот, за слабых врагов игрок будет получать всего ничего. При этом, если грамотно подойти к расстановке врагов на уровнях (ха-ха), то игрок будет всегда получать примерно одинаковое количество опыта. Такой вот автолевелинг 80-х😂
И мы переходим ко второй проблеме.
Повышение границы необходимого опыта при повышении уровня.
В Doom RPG каждый уровень граница опыта просто увеличивается на 20. Там это работало. В моей игре не работает совсем. Поэтому я написал такую формулу:
Таким образом, каждый уровень необходимое количество опыта растет в геометрической прогрессии. Если взять предыдущую формулу, то за одного врага (если он примерно равен по силе игроку) дается +/-16 опыта. То есть на первом уровне игроку надо убить 10 врагов, а вот на 99-ом уже 40. Это не учитывая очень сильных и очень слабых противников.
Ну и наконец, я перерисовал предыдущего противника и нарисовал еще одного.
Перерисовать пришлось, потому что на первом уровне много зеленых стен и Человек-Х с ними тупо сливается🤦♂️
Поэтому я решил переписать две функции.
Начну с получения опыта при победе.
В Doom RPG результат рассчитывается исходя только из характеристик врага. Таким образом, даже на высоких уровнях все зависело не от того, насколько ты сильнее или слабее врага, а только от самого врага. И это совершенно не работает в моей игре.
Поэтому я решил высчитывать полученный XP исходя из соотношения параметров врага к параметрам игрока. Получилась такая формула:
exp = ((e_attack<<8 / p_attack) + (e_defence<<8 / p_defence) + (e_dexterity<<8 / p_dexterity) + (e_accuracy<<8 / p_accuracy))/60
Теперь, если враг сильный, и у игрока каким-то образом получилось его победить, то игрок получает большое количество опыта. И наоборот, за слабых врагов игрок будет получать всего ничего. При этом, если грамотно подойти к расстановке врагов на уровнях (ха-ха), то игрок будет всегда получать примерно одинаковое количество опыта. Такой вот автолевелинг 80-х😂
И мы переходим ко второй проблеме.
Повышение границы необходимого опыта при повышении уровня.
В Doom RPG каждый уровень граница опыта просто увеличивается на 20. Там это работало. В моей игре не работает совсем. Поэтому я написал такую формулу:
next_exp = current_exp + level * 5 + 160
Таким образом, каждый уровень необходимое количество опыта растет в геометрической прогрессии. Если взять предыдущую формулу, то за одного врага (если он примерно равен по силе игроку) дается +/-16 опыта. То есть на первом уровне игроку надо убить 10 врагов, а вот на 99-ом уже 40. Это не учитывая очень сильных и очень слабых противников.
Ну и наконец, я перерисовал предыдущего противника и нарисовал еще одного.
Перерисовать пришлось, потому что на первом уровне много зеленых стен и Человек-Х с ними тупо сливается🤦♂️
🔥4❤🔥2
https://www.youtube.com/watch?v=DZgFafrS85s&t=801s
Увидел вот такое видео про Commodore и решил проверить сам, как это работает.
И это работает. Если забить в адрес 788 значение 82, то можно рисовать курсором.
А почему это работает.
Потому что 722 в шестнадцатеричной системе это $0314.
И это адрес нижнего байта вектора прерывания.
То есть, записывая в этот адрес новое значение мы немного смещаем вектор, и компьютер не выполняет несколько значимых вещей. Например, обновление таймера и моргание курсором.
Это реально круто, потому что у меня значительная части игры строится на прерываниях. За счет этого в нижней части экрана отображается текст, который просто изменять. За счет этого моргают враги при атаке. А еще параллельно работают два таймера, которые я запускаю при необходимости сделать какую-либо задержку=)
Увидел вот такое видео про Commodore и решил проверить сам, как это работает.
И это работает. Если забить в адрес 788 значение 82, то можно рисовать курсором.
А почему это работает.
Потому что 722 в шестнадцатеричной системе это $0314.
И это адрес нижнего байта вектора прерывания.
То есть, записывая в этот адрес новое значение мы немного смещаем вектор, и компьютер не выполняет несколько значимых вещей. Например, обновление таймера и моргание курсором.
Это реально круто, потому что у меня значительная части игры строится на прерываниях. За счет этого в нижней части экрана отображается текст, который просто изменять. За счет этого моргают враги при атаке. А еще параллельно работают два таймера, которые я запускаю при необходимости сделать какую-либо задержку=)
❤🔥4👍2
Нарисовал пару новых спрайтов для окружения уровня, и на этом доступные спрайты закончились.
Ну и вот, как выглядят новые враги первого уровня в самой игре. Доступные враги тоже кстати закончились.
Осталось прописать им адекватные параметры и поведение.
А еще починил скрипт повышения уровня. Оказалось, что неправильно проводилось сравнение 16-ти битных чисел (текущий опыт и необходимый опыт), поэтому уровни повышались после каждого убитого врага=)
Ну и вот, как выглядят новые враги первого уровня в самой игре. Доступные враги тоже кстати закончились.
Осталось прописать им адекватные параметры и поведение.
А еще починил скрипт повышения уровня. Оказалось, что неправильно проводилось сравнение 16-ти битных чисел (текущий опыт и необходимый опыт), поэтому уровни повышались после каждого убитого врага=)
🔥5❤🔥4👍3
Я тут ненадолго пропал.
А все дело в том, что неделю назад я женился, и потом мы отправились в свадебное путешествие :)
Но работа не спит, и хоть редко, но я пытаюсь возвращаться к игре.
Сейчас прописываю функцию для случая смерти игрока. Оказалось, что просто так я не отделаюсь. Нужно написать еще функцию для сброса параметров игрока до стартовых, иначе при смерти у игрока остаются все собранное оружие и все полученные статы.
И я все еще не знаю, как сделать сохранение и загрузку прогресса. Вроде звучит не очень сложно, но все значимые параметры лежат в разных местах. То есть придется делать несколько файлов на дискете и несколько загрузок... Но я еще подумаю
А все дело в том, что неделю назад я женился, и потом мы отправились в свадебное путешествие :)
Но работа не спит, и хоть редко, но я пытаюсь возвращаться к игре.
Сейчас прописываю функцию для случая смерти игрока. Оказалось, что просто так я не отделаюсь. Нужно написать еще функцию для сброса параметров игрока до стартовых, иначе при смерти у игрока остаются все собранное оружие и все полученные статы.
И я все еще не знаю, как сделать сохранение и загрузку прогресса. Вроде звучит не очень сложно, но все значимые параметры лежат в разных местах. То есть придется делать несколько файлов на дискете и несколько загрузок... Но я еще подумаю
💘10🔥4❤🔥3
UPD.
У меня осталось чуть больше 16 Кб памяти. В это, мне кажется, еще можно кучу всего запихнуть. Но я решил остановиться на том, что есть. То есть, если новые механики и будут появляться, то редко и в меньших количествах. Точно будут дорабатываться триггеры по ходу рисования уровней. Как минимум недавно пришлось добавить два новых триггера: добавление аптечки и добавление арморкита.
Исходя из этого скорее всего придется перерабатывать карту памяти игры. Сейчас все важные функции лежат с адреса $0810 по $1fff (основной цикл, основные функции, прерывания, рендер, триггеры и управление). Там у меня осталось меньше килобайта свободной памяти.
Потом экранная память аж 6 Кб
Потом лежат таблицы для рейкастинга и текстур, буферы и данные уровня.
А уже потом прочие игровые данные и функции.
А еще же куда-то надо музыку со звуками засунуть...
У меня осталось чуть больше 16 Кб памяти. В это, мне кажется, еще можно кучу всего запихнуть. Но я решил остановиться на том, что есть. То есть, если новые механики и будут появляться, то редко и в меньших количествах. Точно будут дорабатываться триггеры по ходу рисования уровней. Как минимум недавно пришлось добавить два новых триггера: добавление аптечки и добавление арморкита.
Исходя из этого скорее всего придется перерабатывать карту памяти игры. Сейчас все важные функции лежат с адреса $0810 по $1fff (основной цикл, основные функции, прерывания, рендер, триггеры и управление). Там у меня осталось меньше килобайта свободной памяти.
Потом экранная память аж 6 Кб
Потом лежат таблицы для рейкастинга и текстур, буферы и данные уровня.
А уже потом прочие игровые данные и функции.
А еще же куда-то надо музыку со звуками засунуть...
❤🔥1
Надо бы делать игру, но я тут наткнулся на охренную RPG. Второй день не могу оторваться.
Называется Dread Delusion.
https://store.steampowered.com/app/1574240?snr=5000_5100___primarylinks
Я даже не буду говорить о том, как она выглядит. Графика огонь, привет PS1. На мой взгляд по атмосфере напоминает что-то среднее между Morrowind и старыми Thief. Но даже не в этом дело.
Я такого интересного лора не видел давно. Это насколько надо было упороться, чтобы такое придумать. При этом все выглядит логично и не вызывает вопросов, как в какой-нибудь Dark Souls. Тут куча хорошо прописанных диалогов, есть и книги, да и сам мир многое может о себе рассказать. А почти все квесты несут в себе какую-либо мораль, при этом она не всегда правильная, какой бы вариант ты не выбрал.
А еще мне очень понравилось, что здесь никто не ведет тебя за ручку. В начале у тебя даже карты и компаса нет, а открытие карты - один из квестов. В конце-концов ты приобретаешь компас, и с ним ориентироваться становится проще. Благо, что отдельные зоны не такие большие. Сложность вызывает только то, что все действие происходит на куче островов, висящих в воздухе.
Из минусов разве что слабая боевая система и не очень интересная прокачка. Я создал мужицкого-мужика воина, а спустя 8 часов он уже умеет взламывать замки и даже кастовать заклинания. Из-за этого игра вообще не сложная. Но на фоне такой крутой атмосферы и лора это вообще можно не замечать.
Называется Dread Delusion.
https://store.steampowered.com/app/1574240?snr=5000_5100___primarylinks
Я даже не буду говорить о том, как она выглядит. Графика огонь, привет PS1. На мой взгляд по атмосфере напоминает что-то среднее между Morrowind и старыми Thief. Но даже не в этом дело.
Я такого интересного лора не видел давно. Это насколько надо было упороться, чтобы такое придумать. При этом все выглядит логично и не вызывает вопросов, как в какой-нибудь Dark Souls. Тут куча хорошо прописанных диалогов, есть и книги, да и сам мир многое может о себе рассказать. А почти все квесты несут в себе какую-либо мораль, при этом она не всегда правильная, какой бы вариант ты не выбрал.
А еще мне очень понравилось, что здесь никто не ведет тебя за ручку. В начале у тебя даже карты и компаса нет, а открытие карты - один из квестов. В конце-концов ты приобретаешь компас, и с ним ориентироваться становится проще. Благо, что отдельные зоны не такие большие. Сложность вызывает только то, что все действие происходит на куче островов, висящих в воздухе.
Из минусов разве что слабая боевая система и не очень интересная прокачка. Я создал мужицкого-мужика воина, а спустя 8 часов он уже умеет взламывать замки и даже кастовать заклинания. Из-за этого игра вообще не сложная. Но на фоне такой крутой атмосферы и лора это вообще можно не замечать.
❤4❤🔥1
Наконец-то настало время заняться игрой=)
Ну и я сделал две очень важные вещи.
Во-первых, прописал код для death state в случае смерти игрока.
Пришлось немного помучиться, потому что код изначально не предполагал сброс всех характеристик до изначального уровня. Теперь все мигает красно-красным и уходит в реинициализацию игры.
Во-вторых, наконец-то дорисовал все оружие и переделал гвоздомёт (хотя и это не окончательный вариант). И решил, что неплохо было бы добавить больше деталей на окантовку игрового экрана. Ничего лучше трещин, потертостей и сколов я не придумал. Но выглядит, вроде, неплохо
Теперь всю эту графику надо перенести в игру, а потом уже заняться созданием уровней.
Ну и код для побега из битвы все еще не написан...
Ну и я сделал две очень важные вещи.
Во-первых, прописал код для death state в случае смерти игрока.
Пришлось немного помучиться, потому что код изначально не предполагал сброс всех характеристик до изначального уровня. Теперь все мигает красно-красным и уходит в реинициализацию игры.
Во-вторых, наконец-то дорисовал все оружие и переделал гвоздомёт (хотя и это не окончательный вариант). И решил, что неплохо было бы добавить больше деталей на окантовку игрового экрана. Ничего лучше трещин, потертостей и сколов я не придумал. Но выглядит, вроде, неплохо
Теперь всю эту графику надо перенести в игру, а потом уже заняться созданием уровней.
Ну и код для побега из битвы все еще не написан...
🔥5❤3💘2
И только что понял, что, во-первых, надо менять цвет рамки после мерцания экрана при смерти.
А во-вторых, у меня не обновляется показатель здоровья игрока, если он уходит в минус. На видео, например, здоровье игрока при смерти равно двум, хотя оно скорее всего ушло в меньше, чем 255.
Ну первое прописать не сложно. А со вторым я наверное тоже не буду мучиться, и просто напишу код, который выводит на экран нулевое здоровье, даже если оно ушло в минус
А во-вторых, у меня не обновляется показатель здоровья игрока, если он уходит в минус. На видео, например, здоровье игрока при смерти равно двум, хотя оно скорее всего ушло в меньше, чем 255.
Ну первое прописать не сложно. А со вторым я наверное тоже не буду мучиться, и просто напишу код, который выводит на экран нулевое здоровье, даже если оно ушло в минус
🔥4❤2❤🔥1
Прошел я Dread Delusion и у меня есть что сказать.
Разобью все на плюсы и минусы.
И, к сожалению, минусов будет больше.
Плюсы:
1. Очень атмосферная и глубокая в плане сюжета игра с необычным лором и окружением. Чего только стоят фентези-деревушки, феодальный город и стимпанк-СССР.
2. Олдскульная графика. Обожаю такое еще со времен PS1.
3. Интересные квесты с неоднозначными выборами. На многих квестах я реально много думал: "А как бы поступил я?"
4. Апгрейд оружия и брони. У каждого из этих предметов несколько уровней апгрейда, и для каждого уровня надо искать по всему миру нужные материалы. Это интересный подход.
5. Интересное строение мира, где каждый остров это отдельный архипелаг со своей архитектурой.
Минусы:
1. Скучная боевая система. Ударить и Ударить сильно — это все. Враги тоже не отличаются разнообразием: либо это просто melee враги, либо они из чего-либо стреляют, либо имеют при себе щит, который очень легко обойти.
2. Скучная ролевая система. Всего 4 параметра, которые отвечают за 8 навыков. Опыт повышается либо после прохождения квестов, либо при нахождении специальных черепов. И, как я уже говорил, при выборе любого класса в начале игры можно сделать универсального солдата под конец. Одежда с абилками в помощь.
3. Бесполезная магия, зелья и метательное оружие. Под конец игры у меня скопилось 150 флаконов здоровья, 300 метательных ножей и чуть меньше остальных видов зелий и предметов. Ими просто не надо пользоваться. На моей памяти это первая RPG, в которой похер на это все, какой бы класс ты ни выбрал.
4. Мало оружия. За всю игру я нашел всего 4 оружия: кинжал, меч, двуручный меч и лук. И это все! Да, их можно улучшать, но дайте чуть больше выбора, пожалуйста.
5. Бесполезная собственность. В игре есть возможность купить несколько домов и целое поместье. Но зачем? Это не дает ничего, кроме траты ресурсов (за каждое улучшение надо отдавать деньги, руду и разные растения).
6. В определенный момент игроку дают целый летающий корабль... Который портит все. Изучать эти острова было очень интересно. Я никогда не мог понять, что ждет меня за следующим углом. А на этом катере можно облететь всю карту за несколько секунд.
Разобью все на плюсы и минусы.
И, к сожалению, минусов будет больше.
Плюсы:
1. Очень атмосферная и глубокая в плане сюжета игра с необычным лором и окружением. Чего только стоят фентези-деревушки, феодальный город и стимпанк-СССР.
2. Олдскульная графика. Обожаю такое еще со времен PS1.
3. Интересные квесты с неоднозначными выборами. На многих квестах я реально много думал: "А как бы поступил я?"
4. Апгрейд оружия и брони. У каждого из этих предметов несколько уровней апгрейда, и для каждого уровня надо искать по всему миру нужные материалы. Это интересный подход.
5. Интересное строение мира, где каждый остров это отдельный архипелаг со своей архитектурой.
Минусы:
1. Скучная боевая система. Ударить и Ударить сильно — это все. Враги тоже не отличаются разнообразием: либо это просто melee враги, либо они из чего-либо стреляют, либо имеют при себе щит, который очень легко обойти.
2. Скучная ролевая система. Всего 4 параметра, которые отвечают за 8 навыков. Опыт повышается либо после прохождения квестов, либо при нахождении специальных черепов. И, как я уже говорил, при выборе любого класса в начале игры можно сделать универсального солдата под конец. Одежда с абилками в помощь.
3. Бесполезная магия, зелья и метательное оружие. Под конец игры у меня скопилось 150 флаконов здоровья, 300 метательных ножей и чуть меньше остальных видов зелий и предметов. Ими просто не надо пользоваться. На моей памяти это первая RPG, в которой похер на это все, какой бы класс ты ни выбрал.
4. Мало оружия. За всю игру я нашел всего 4 оружия: кинжал, меч, двуручный меч и лук. И это все! Да, их можно улучшать, но дайте чуть больше выбора, пожалуйста.
5. Бесполезная собственность. В игре есть возможность купить несколько домов и целое поместье. Но зачем? Это не дает ничего, кроме траты ресурсов (за каждое улучшение надо отдавать деньги, руду и разные растения).
6. В определенный момент игроку дают целый летающий корабль... Который портит все. Изучать эти острова было очень интересно. Я никогда не мог понять, что ждет меня за следующим углом. А на этом катере можно облететь всю карту за несколько секунд.
🔥2❤🔥1