shiru8bit

shiru8bit 

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

86subscribers

863posts

Продолжаю пилить редактор

Дело движется, как машина в московской пробке с утра на работу: движется, но медленно. Занимаюсь этим вопросом уже больше недели, уделяю ему каждый день по половине дня. На данный момент состояние «почти готово», но оно длящееся: всё ещё нужно доделать то и это.
Перевёл весь код со статических массивов на векторы. Теперь поддерживается произвольное число слоёв следующих типов в любых их комбинациях:
• Изображение
• Тайловая карта с тайлами любого размера
• Карта 16-битных флагов с клетками любого размера
• Список объектов, любое количество
Ранее тайловые карты не поддерживались, так как вся графика в NPNGG уникальная, нарисована не по сетке — это пиксельные изображения огромного размера. Поначалу, с плоскими картами в стиле SoR1, этот подход работал нормально.
Но потом наши карты приобрели сложные формы, с изгибами, и это тратит кучу памяти впустую: вместо 4096 на 270 карта может быть 4096 на 2000, что в восемь раз больше, и при этом основную часть занимает пустое пространство. Поддержка тайловых карт решает эту проблему: карту можно разбить на куски, хоть на мелкие типа 32 на 32, хоть на большие, 256 на 256, и хранить только области, фактически содержащие графику.
Поддержка нескольких слоёв также позволяет хранить в памяти большую локацию целиком, видеть её в редакторе полностью, но составлять её из подгружаемых по ходу дела фрагментов. Возможны и иные полезные трюки.
Перечисленное выше отлажено и работает, включая сохранение и загрузку. Осталось доделать ещё два типа слоёв:
• Карта освещения с клетками любого размера
• Путь перемещения камеры и события в заданных точках
Последний элемент особенно сложный и важный: это не только рельсы для следования камеры по локации, позволяющие не показывать лишнего, но и по сути скрипт уровня: в нём описываются события, происходящие по достижении нужного места в уровне. Спаун групп врагов, их количество, волны, паузы, и так далее.
Ну и потом нужно ещё переделать под переделанную систему сам движок. Работы непочатый край. Как обычно.
Subscription levels6

Микро 16

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

База 128

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

Супер 256

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

Кило 320

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

Мега 640

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

Гига 1024

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