Движок: Свой софтварный рендерер на чистом C
Начало работы: Где-то в марте
Жанр: Технодемка для Coffe Break Rogue Like игры на открытой местности (не данжн кроулер)
Предыстория:
Летом прошлого года на нашем форуме проходил конкурс на красивые уровни, для него был нарисован
тайлсет из данного проекта. После конкурса тайлсет так и остался валяться без дела, и так бы и покрылся
пылью, если бы я не решил побаловаться с софтварным рендерингом во время изучения языка C. А тут ещё
и конкурс. В общем, долго размышлять не стал, а взял и написал плохонький генератор карт. На скриншоте
буквально первый результат работы.
Ни на какое конкурсное место не претендую.
Вряд ли я успею запилить вменяемый геймплей.
Но и цели такой я для себя не ставил.
Для тех, кто переживает за мой порт аллодов — будьте спокойны, моя любовь к этой игре слишком
сильна, чтобы забрасывать дело. Работы по данному софтварному рендеру в том числе призваны для
экспериментов над выводом арта из "ярости магов". Я пока не могу решить, на чём лучше остановиться.
Честная упаковка всех анимаций зданий в атласы будет занимать огромное количество памяти, поэтому
я ищу способ организовать быстрый "стриминг" в текстуру только той части кадров, которая будет
необходима в ближайший момент. Эту нишу и должен занять софтач.
Хватит томить вас ожиданиями, вот скриншот:
И сказал творец "да будут деревья"
Это именно весь свой тайлсет?
Он мне сильно LPC напомнил.
FordPerfect
Я подглядывал на LPC как на референс, но все тайлы нарисованы мной лично с нуля.\
Вообще, я хотел добиться атмосферы как у Боброва, но как-то не вышло, вышло сильно по-своему
Немного фиксов по генерации плюс намётки UI
Madware
> Я подглядывал на LPC как на референс, но все тайлы нарисованы мной лично с нуля.
Ага, начинаю замечать.
Особенно вода и каменистость дорог похожи, но разница есть.
Палитра совсем тамошняя?
> Немного фиксов по генерации плюс намётки UI
Каёмка для миникарты вот прямо сильно помогает.
> Я пока не могу решить, на чём лучше остановиться. Честная упаковка всех анимаций зданий в атласы будет занимать огромное количество памяти, поэтому я ищу способ организовать быстрый "стриминг" в текстуру только той части кадров, которая будет необходима в ближайший момент. Эту нишу и должен занять софтач.
ИМХО графику уровня Аллодов (вторых) можно и целиком софтом.
И заливка тайлов в текстуры - это же почти голый memcpy, там и софтрендера-то особо нет. Или у тебя что-то хитрее?
FordPerfect
> И заливка тайлов в текстуры - это же почти голый memcpy, там и софтрендера-то
> особо нет. Или у тебя что-то хитрее?
Там свой сжатый формат с пропусками для прозрачности. Вариация на тему RLE, но более хитрая(можно пропускать чанки пикселей в ряду, а можно чанки сразу нескольких рядов). Плюс в аллодах это не просто 32битные пиксели, а палитровое двухбайтовое изображение(8 бит на цветность и 8 бит на прозрачность).
Можно это единожды разжать куда-нибудь на жёсткий диск и потом оттуда подгружать. Либо держать в памяти в сжатом формате и стримить из него "налету"
>Палитра совсем тамошняя?
Вроде свою пытался сделать :)
Madware
На воде сильно тайловость заметно. Ни одного блика поперёк шва текстуры.
Прикольно, напоминает warcraft 2 чем-то :) Щас же модно делать всякие ремейки старых игр, круто было бы сделать RTS по мотивам warcraft 2, в таком-же стиле
Продолжаем.
1. Сделал для карты расчёт проходимости.
2. Запилил UI для инвентаря.
3. Реализовал навигацию по клику на миникарте
Mikle
> Ни одного блика поперёк шва текстуры.
К сожалению, мне слишком накладно править это в текущем тайлсете. Исходники, из которых он сгенерирован, обладают совсем иной цветностью, а мне очень нравится именно та, что я имею сейчас, полученная путем неоднократной цветокоррекции. Учту этот момент в других наборах тайлов.
Я у мамы архитектор
Сегодня всё утро убил на борьбу с cmake чтобы всё линковалось статически. Но таки поборол сие безобразие.
Заодно научился делать иконочки для окон.
Этим утром я заселил созданный мир главным героем. Пока что ему очень скучно, так как
совершенно не с кем вступить в сражение, а так же по той причине, что ещё не реализована
возможность передвигаться. Но скоро всё изменится. Думаю, с текущими темпами я реализую
хотя бы 80% задуманного к финалу конкурса.
Интересный факт — изначально я решил написать враппер для sr2d на си. И вот написал я этот враппер, потихоньку понаблюдал как с ним работать... и переписал всё что было мне необходимо так как мне удобнее на своих собственных функциях. В итоге от интеракции с sr2d не осталось ни единого байта. Вот такая забавная история
Тема в архиве.