All streams
Search
Write a publication
Pull to refresh
510
340.5
Sergei Kushnirenko @dalerank

Люблю (ш)кодить, алгоритмы и старые авто.

Send message
карта в оригинале вертелась поворотом матрицы, у меня пока это не сделано…
Вообще странно, я когда играл возле, я возле мест респавна волков ставил префектов с отростком дороги, чтобы не уходили далеко
Нет не использую, а как он тут может помочь???
Caesarea — Кесария, город в Израиле. Название получилось так, Grimhold(не знаю как по батюшке) прислал обновленную заставку. вместо двух колонн последних поставил букву А, можно и Caesaria. И еще имя в таком написании оказалось занято, наберите в гугле.
Понял.
да сделать такое действительно просто ( в качестве эксперимента добавлю в билд ), город при этом будет смотреться менее однообразно.
Это текстура, распарсенная на тайлы… через хекс редактор можно поиграться с параметрами движка( поставлена высота тайла 60 пикселей, изза этого вся картинка поплыла ), играть при этом невозможно, зато при разборке механики очень помогает. Тайлы рисуются слева направо, сверху внизу.
Название первой статьи пусть уж останется как было )))
― Я пришел извиниться.
― Так извиняйся.
― Это было извинение. К нему прилагается шампанское.

___________*______*____.___*____.
________________..__*____o
______________o___*__.____*
________________________
_______________(________)
_______________|____o___|
_______________|_o____o_|
_______________|___o____|
_______________|_o____o_|
_______________|_o__o___|
_______________|______o_|
_______________(_o______)
________________\___o__/
_________________\____/
__________________\__/
___________________||
___________________||
___________________||
___________________||
___________________||
___________________||___
_______________/___||___\
_______________\________/
А линк на исходники не подкинете, чтобы посмотреть как они это реализовали???
Да, на андроиде с клавой проблема есть, как починить пока не понял. На маках не работает мышь в оконном режиме
Спасибо, а то у меня некоторые сомнения были по поводу запуска на реальном железе, все таки эмулятор не все особенности учитывает
Теоретически один(скорее эволюция), в Pharaoh'е и последующих играх серии стал использоваться другой формат текстур(была добавлена прозрачность ) + появилась высота тайлов. На мой взгляд была еще существенно переписана экономическая часть.
Спасибо, может кто-то подхватит идею ))) Больше половины уже сделано, редактор ресурсов Pharaoh'a тоже практически дописан.
В разделе Releases выложил сборку для андроида последней ревизии, у меня, к сожаления, нет сейчас возможности протестировать на реальном железе, только на эмуляторе. Если не трудно, отпишитесь о найденных ошибках в багтрекере.
Да, идея очень неплоха, еще на багтрекер писали, что можно разные по виду дома строить. Здесь есть несколько НО:
1. для объекта доступна только одна текстура
2. здания не имеют параметра вход
Использование похожих текстур подходит не только для домов, а для большинства объектов в игре, проблема в их создании )))
Back — с использованием отладчика, декомпилятора, в общем исследование кода (будь то асмовский или приведенный с-шный)
Reverse — повторение логики игры на основе наблюдений, сажусь я играть в цезаря, строю фермы и вижу что тайлы пшеницы меняются в соответсвие с прогрессом производства и вношу это в ремейк.
В проекте в полной мере присутствуют оба направления, но конкретно в этих статьях 90% все таки back-инжиниринга, я сейчас практически не касаюсь логики, до которой не удалось добраться через IDA.
хм… попытаюсь попроще ответить, есть игровой «tick», событие, которое доставляется каждому объекту в игре, таких тиков в одной секунде реального должно быть около 30, чтобы игрок не заметил детерминированности игрового времени.
1. Большая нагрузка приходилась на алгоритм поиска пути, сначала использовал Беллмана, но он зацикливался на перекрестах и петлях, позже был введен A* для расчета перемещения по всей карте, Беллман остался для расчета путей обслуживающего персонала, так как из него можно вытащить информацию о всех проверенных машрутах. Предполагается, что позже он будет вынесен в отдельный поток — задержку в несколько мс на поиске игрок не заметит, но общая картинка будет более плавной.
2. Потом проседания начались при поиске подвижных объектов вокруг, они все были свалены в одном массиве и его перебор обходился дорого, это я обошел введением доп. карты, в которую перед каждым кадром записываются подвижные объекты по тайлам. Это требует времени при старте кадре, но практически убирает фризы при поиске.
3. Основная же нагрузка приходилась на загрузку и поиск текстур, каждый тик что-нибудь да меняется, это победили предварительной загрузкой и введением класса Picture, который реализует своеобразный shared surface, храня указатель на конкретный surface. Еще большего увеличения производительности удастся добиться введением текстурных атласов и сведением текстур анимации в одну.

Пока решено сделать упор на восстановление функционала. Вот, надеюсь я ответил на Ваш вопрос, если есть еще задавайте, постараюсь ответить.
Нет конечно, именно «отрисовка» происходит для тайлов, которые попадают в viewport камеры, а обновление данных да, происходит для всех тайлов. Думаете стоит добавить описание этого алгоритма в статью???
Да, я вроде нажал «ответить», а он почему то в корень сообщение поставил )))

Information

Rating
4-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Game Developer
Senior
From 300,000 ₽
Git
C++
Multiple thread
Applied math
OOP