shiru8bit

shiru8bit 

Программист, музыкант, самоделкин, ретрогеймер

90subscribers

937posts

Showcase and bundles

2
A bundle is a collection, compilation, playlist, or catalog of posts that saves you from searching through the blog and lets you buy the entire content series in a single click.

Навайбкодил ещё псевдо-3D

Пару дней назад нагенерировал с помощью ИИ ещё два прототипа в области псевдо-3D, воспроизводя идеи из разных игр на Sega Genesis. Как обычно, весь код написал Deepseek, я лишь объяснял, чего именно хочу добиться, и участвовал в отладке.
Первый экземпляр — ещё один рейкастинг-движок. В отличие от показанного ранее, где использовались float’ы и попиксельный Z-буфер с полигонами для пола, этот вариант значительно проще: почти Wolfenstein 3D, «клеточный» уровень со стенами одинаковой высоты, но с «диагональными» стенками и «толстыми» дверями.
Главные отличия: математика исключительно целочисленная, 32-битная с фиксированной точкой, и это уже честный рейкастинг с обычным для него «столбцовым» Z-буфером. Это то, как мог бы работать Bloodshot, если бы его разработчики не пошли чисто векторным путём: им тут сделана только подвижная толстая дверь.
В принципе, переделать всю геометрию уровня на векторы тут мешает только проблема определения видимости. И по простому она не решается: от неё пострадал и Bloodshot, и даже Escape from the Monster Manor на 3DO. Судя по всему, они оба просто брали всё, что попадает в конус зрения камеры, а это очень много лишнего. Решать эту задачу надо секторами или BSP, но это следующий уровень сложности. Может. как-нибудь заморочусь — сам я такое писать пытался, но никогда не доводил дело до полностью рабочего варианта.
Второй экземпляр — рендер «векторного» пола, как в трёхмерном уровне Toy Story. Меня всегда занимал вопрос, как он, блин, сделан, и насколько ресурсоёмкая это задача. Я пытался анализировать происходящее в игре, с учётом слов автора, который рассказывал на YouTube про эту сцену, но обошёл вниманием самые интересные детали. Но эмуляторы не дают посмотреть, что же происходит в буфере рендера в памяти консоли, и остаётся лишь догадываться.
На основе догадок я описал вариант, как это может работать, и попросил ИИ реализовать его. Всё довольно быстро заработало, и я даже усложнил задачу: в этом варианте пол может иметь разные паттерны и их цвета, согласно специальной карте. Оказалось, что математика тут действительно не очень дорогая, и несмотря на рисование линий, это всё ещё сильно быстрее, чем честный текстурированный пол. Прикольно.
Subscription levels6

Микро 16

$0.21 per month
Просто потому что нельзя 8. Даже самая малая поддержка важна. Спасибо!

База 128

$1.62 per month
Для тех, кто просто хочет поддержать. Спасибо!

Супер 256

$3.3 per month
Для тех, кто хочет поддержать. Спасибо!

Кило 320

$4.1 per month
Для тех, кто сильно хочет поддержать. Спасибо!

Мега 640

$8.1 per month
Для тех, кто очень хочет поддержать. Спасибо!

Гига 1024

$13 per month
Для тех, кто крайне хочет поддержать. Спасибо!
Go up