This media is not supported in your browser
VIEW IN TELEGRAM
Пришло время выходить из прокрастинации.
Спасибо Кириллу Лейферу. Он подсказал мне замечательную идею - ограничить количество врагов на уровне.
И я это сделал. Игроку эта информация недоступна, а вот мне, как разработчику станет гораздо легче проектировать уровни и балансить врагов.
Когда игрок убивает врага, количество уменьшается. Когда оно достигает нуля, выводится сообщение, что мол "кажется, врагов вокруг не осталось", а игра перестает высчитывать вероятность их появления.
Забавно, как от идеи полуоткрытого мира, как в Hexen (да, такие планы тоже были), я добрался до откровенно линейной игры=)
Спасибо Кириллу Лейферу. Он подсказал мне замечательную идею - ограничить количество врагов на уровне.
И я это сделал. Игроку эта информация недоступна, а вот мне, как разработчику станет гораздо легче проектировать уровни и балансить врагов.
Когда игрок убивает врага, количество уменьшается. Когда оно достигает нуля, выводится сообщение, что мол "кажется, врагов вокруг не осталось", а игра перестает высчитывать вероятность их появления.
Забавно, как от идеи полуоткрытого мира, как в Hexen (да, такие планы тоже были), я добрался до откровенно линейной игры=)
❤3🤩1
Час чинил сейвы вместо того, чтобы готовить игру к публикации в журнале... При определенной последовательности действий игра загружала второй уровень с текстурами и врагами из первого=)
Сохраняемся на втором уровне — Умираем — Игра загружает первый уровень — Загружаем сейв — Игра загружает второй уровень — Сохраняемся заново — Умираем второй раз — Игра загружает первый уровень — Загружаем сейв. Поздравляю, вы сломали сейвы.
Дело в том, что при переходе с уровня на уровень и при их загрузке в памяти сохраняется указатель на название этого уровня, но не при загрузке сейвов.
Когда сейв загружается с дискеты, он проверяет указатель с сейв-файла на соответствие указателю в памяти.
Если указатели разные, то игра сперва загружает нужный уровень полностью. Если одинаковые, то загружаются только измененные данные.
Так вот, если умереть в первый раз на втором уровне в память кладется указатель на первый уровень. Если при этом загрузить сейв со вторым уровнем, то в память указатель на него не отправится.
А после очередного сохранения возникает несоответствие: в сейв-файле оказываются данные второго уровня с указателем на первый.
В общем, все решилось банально. Теперь я просто при каждой загрузке сейва принудительно кладу в память указатель на него из сейв-файла.
И вроде это заработало... надеюсь.
Сохраняемся на втором уровне — Умираем — Игра загружает первый уровень — Загружаем сейв — Игра загружает второй уровень — Сохраняемся заново — Умираем второй раз — Игра загружает первый уровень — Загружаем сейв. Поздравляю, вы сломали сейвы.
Дело в том, что при переходе с уровня на уровень и при их загрузке в памяти сохраняется указатель на название этого уровня, но не при загрузке сейвов.
Когда сейв загружается с дискеты, он проверяет указатель с сейв-файла на соответствие указателю в памяти.
Если указатели разные, то игра сперва загружает нужный уровень полностью. Если одинаковые, то загружаются только измененные данные.
Так вот, если умереть в первый раз на втором уровне в память кладется указатель на первый уровень. Если при этом загрузить сейв со вторым уровнем, то в память указатель на него не отправится.
А после очередного сохранения возникает несоответствие: в сейв-файле оказываются данные второго уровня с указателем на первый.
В общем, все решилось банально. Теперь я просто при каждой загрузке сейва принудительно кладу в память указатель на него из сейв-файла.
И вроде это заработало... надеюсь.
Начал проходить два несчастных уровня, что есть в игре, на живом компьютере и понял, что игра получается довольно сложной в самом начале, когда у тебя нет никакого оружия.
И это не проблема, так и задумано, потому что проблема заключается совсем в другом.
Слишком блин долгие загрузки!
Сейчас как все устроено. Ты умираешь, и игра переключается в состояние инициализации. Запускает заставку, потом начинает заново грузить первый уровень. А потом ты загружаешь сейв, и если ты умер на другом уровне, то она еще и новый уровень подгружает. В общем, сплошное ожидание, и это начинает бесить даже меня.
Поэтому я подумал, а не сделать ли мне так, что при смерти игра просто загружает уже имеющийся сейв без всяких лишних действий.
Скорее всего умрешь ты на том же уровне, на котором сохранялся, поэтому ждать придется секунд 10, не больше.
Что касается новых игроков, то на дискете уже будет лежать сейв в самом начале игры. И загружаться будет именно он. Да, при таком подходе есть и минусы. Если ты захочешь начать новую игру, и сейв у тебя лежит старый, то загружаться будет именно он. Но время, как мне кажется, дороже.
P.S. А еще я нарисовал вот такой милый дорожный конус)
И это не проблема, так и задумано, потому что проблема заключается совсем в другом.
Слишком блин долгие загрузки!
Сейчас как все устроено. Ты умираешь, и игра переключается в состояние инициализации. Запускает заставку, потом начинает заново грузить первый уровень. А потом ты загружаешь сейв, и если ты умер на другом уровне, то она еще и новый уровень подгружает. В общем, сплошное ожидание, и это начинает бесить даже меня.
Поэтому я подумал, а не сделать ли мне так, что при смерти игра просто загружает уже имеющийся сейв без всяких лишних действий.
Скорее всего умрешь ты на том же уровне, на котором сохранялся, поэтому ждать придется секунд 10, не больше.
Что касается новых игроков, то на дискете уже будет лежать сейв в самом начале игры. И загружаться будет именно он. Да, при таком подходе есть и минусы. Если ты захочешь начать новую игру, и сейв у тебя лежит старый, то загружаться будет именно он. Но время, как мне кажется, дороже.
P.S. А еще я нарисовал вот такой милый дорожный конус)
🔥6
Что ж, это работает просто отлично!
Правда пришлось немного повозиться, потому что сперва у меня пропала половина цветов, как на скриншотах=)
Дело в том, что угасание экрана происходит простым заполнением нулями Color и Screen RAM (области памяти, отвечающие за цвета в Bitmap Multicolor Mode). И при загрузке сейва эти цвета не восстанавливаются.
Пришлось в очередной раз костылить и добавить в death state код загрузки изначальных значений с дискеты (да простят меня любители ООП).
Зато теперь игра после смерти грузит предыдущее сохранение за 15 секунд, что гораздо приятнее предыдущих нескольких минут!
Правда пришлось немного повозиться, потому что сперва у меня пропала половина цветов, как на скриншотах=)
Дело в том, что угасание экрана происходит простым заполнением нулями Color и Screen RAM (области памяти, отвечающие за цвета в Bitmap Multicolor Mode). И при загрузке сейва эти цвета не восстанавливаются.
Пришлось в очередной раз костылить и добавить в death state код загрузки изначальных значений с дискеты (да простят меня любители ООП).
Зато теперь игра после смерти грузит предыдущее сохранение за 15 секунд, что гораздо приятнее предыдущих нескольких минут!
🔥2
https://dtf.ru/retro/2996041-proshel-eshe-mesyac-razrabotki-igry-dlya-commodore-64
Написал небольшую статью в качестве подведения итогов за последний месяц.
Написал небольшую статью в качестве подведения итогов за последний месяц.
DTF
Прошел еще месяц разработки игры для Commodore 64 — Ретро на DTF
И это все больше становится похоже на настоящую игру.
🔥6
Готические кладбища, заброшенные синагоги и католические соборы. Отличный набор впечатлений из отпуска и вдохновение для следующей игры (пока есть разрозненные идеи, но нет чего-то цельного).
Как вернусь на следующей неделе, буду продолжать разработку Decade of Ruin, там работы тоже много осталось:)
Как вернусь на следующей неделе, буду продолжать разработку Decade of Ruin, там работы тоже много осталось:)
❤11
Разработка пока что в небольшом застое. Как будто бы нет вдохновения.
Но зато мне написали из ZZAP!64 и прислали последний выпуск журнала с демкой моей игры на приложенном диске!!!
Но зато мне написали из ZZAP!64 и прислали последний выпуск журнала с демкой моей игры на приложенном диске!!!
👍11🔥1
Побывал вчера на Демодуляции. К сожалению, почти никаких фоток не осталось, потому что все время проходило за общением с людьми.
Зато познакомился наконец-то лично с Кириллом Лейфером и другими классными ребятами!
Амигаааааа...
Зато познакомился наконец-то лично с Кириллом Лейфером и другими классными ребятами!
Амигаааааа...
🔥7👍5🎉1
Пришло время возвращаться в строй=)
Недавно я сделал так, чтобы при смерти игрока автоматически загружается последний сейв.
Но можно же дать больше возможностей.
Теперь же при смерти есть выбор: начать игру с самого начала (R) либо загрузить последнее сохранение (L).
Ну и нарисовал еще два спрайта: плазменный пистолет и ракеты для РПГ.
Теперь, видимо, буду продолжать собирать уровни (как минимум 5-6 штук надо сделать).
Недавно я сделал так, чтобы при смерти игрока автоматически загружается последний сейв.
Но можно же дать больше возможностей.
Теперь же при смерти есть выбор: начать игру с самого начала (R) либо загрузить последнее сохранение (L).
Ну и нарисовал еще два спрайта: плазменный пистолет и ракеты для РПГ.
Теперь, видимо, буду продолжать собирать уровни (как минимум 5-6 штук надо сделать).
👍5❤1