Разработка и ромхакинг > Разработка игр
[SMD] Warcraft prototype
(1/1)
sshadwork:
Всем привет! Хотелось оценить лимиты мегадрайва по VDP если использовать только SGDK. Под рукой были старые сконверченные ресурсы варкрафта в котором как раз очень много тайлов. Как результат появился вот такой прототип со стримингом тайлов и спрайтов. Если не брать флики и озвучку то близзард вполне могла выпустить Варкрафт на мегадрайве - 4 мегабайта было вполне достаточно. Юниты ходят, рубят и стреляют. Карты можно менять зажав С. А - выбор, Б - отмена. XYZ и XYZ+MODE шорткат на иконки.
В палитре сеги без оптимизации выглядит так


Ром лежит по ссылке https://drive.google.com/file/d/1KgcuCL1CciuqqnL_FK3f_lgKqkS0KsxF/view?usp=drive_link
и в аттаче  rts_0_2_1.bin.zip (372.27 КБ - загружено 16 раз.)

Шортс с превью
Slava1989:
бесперспективно кончено...  Но ! очень познавательно...
бедная сега, дюну то тянет еле еле( если брать оригинальный ром и без разгона) а тут все таки нагрузка будет еще выше...
а если все вырезать то получится что-то ти по коммандос для сеги.( когда то был такой картридж) жутко не играбельная вещ ...( сделанное с упором на "лишь бы запустилось")
SeregaZ:
ну графоний варкрафтовский я как раз хотел заюзать для ромхака Дюны по Игре Престолов. сеттинг подходит. правда вот два вида ресурсов... планировался один, ибо в Дюне один. а юнитов всего пяток, чтоб памяти графония хватило. но, как это всегда у меня бывает - лежит без движения уже который год :)
sshadwork:
Производительность упирается в количество тактов которое надо потратить на обработку одного юнита. Для этого надо закончить базовые системы, пока не готов сбор ресурсов, наличие деревьев сильно усложняет код. Производительность Сеги в сети оценивают как 1.861363 MIPS, 386 процессор на 20 мегагерцах оценивается в 5 MIPS. Варкрафт работал на 386 процессоре не очень быстро но тратил очень много тактов на рендер картинки. Итого минимум двукратные тормоза если не переписывать на ассемблере.
Вернусь в тему когда станет понятно сколько юнитов Сега может обработать за кадр.
Werton:
sshadwork, ты в ооп стиле пишешь? Не пробовал экспериментировать с ecs, или подобном стиле, т.е. оперировать не массивами/списками структур (aos), а структурой массивов (soa). Несмотря на то, что на m68k нет кэша, это в теории, всё равно должно дать какой-никакой прирост производительности, за счёт уменьшения обращения к ram и лучшей последовательности доступа.
Sharpnull:

--- Цитата: Werton от 03 Июнь 2026, 09:04:57 ---структурой массивов (soa)
--- Конец цитаты ---
Об этом https://gameprogrammingpatterns.com/data-locality.html.
Для оптимизации можно сделать вставки ASM. Для начала можно свою систему спрайтов сделать, своя должна быть лучше, чем встроенная. Dune на NES работает, значит и Warcraft можно на NES, вопрос в первую очередь в упрощении для оптимизации.

Кстати, может пригодится исходный код [PSX] Warcraft II: The Dark Saga: https://archive.thedatadungeon.com/warcraft_ii_the_dark_saga_1997.html. С archive.org его удалили.
Навигация
Главная страница сообщений

Перейти к полной версии