Pull to refresh

Comments 55

Сделайте скорее отполированную версию на андроид, у меня слюни текут, а с управлением ужс. В настройках что только не менял.
В разделе Releases выложил сборку для андроида последней ревизии, у меня, к сожаления, нет сейчас возможности протестировать на реальном железе, только на эмуляторе. Если не трудно, отпишитесь о найденных ошибках в багтрекере.
Честно признаюсь, мне с андроидом довольно тяжело работать, нынешние планшетные игры далеко ушли от обычных пк-шных, и в плане интерфейса, и тем более в плане управления. Я добавил несколько кнопок, которые должны упростить игру на планшетах… да только, сколько не меняй спойлер на «девятке», феррари она не станет )))
Ну не скажите. Не «далеко ушли», а «заточены под другое управление», крупные контролы и прочие мультитачи.
Ну а если про сами игры говорить, то без слез это делать невозможно — все сплошь несложные платформеры, портированные с флеша казуалки, вагон тауэр дефенсов и т.д.
Спасибо вам за работу и описани. Тоже жду отпалированой версии, а пока купил оригинал на gog.com :) ностальгирую.
Скажите, а вот картинка, которая похожа на текстуру, это ведь не реальная текстура? Просто иллюстрация?
Все изображения взяты из ресурсов игры, и ворота и «покоцанные» ворота, которые накладываются поверх нормальных. Оригинальный размер текстур меньше, поэтому привел к размерам, удобным для отображения статье, иллюстрация с воротами и колесницей в игре работает, так как описано.
Отвечайте, пожалуйста, в подветках, а то тяжело определить к чему этот комментарий)
Да, я вроде нажал «ответить», а он почему то в корень сообщение поставил )))
Я вот про эту «текстуру» спросил: вижу, что кое-где прямоугольники тайлов накладываются на соседние, и даже изображения (деревья). Если это текстура, то как выбирается нужная область для тайла?
Это текстура, распарсенная на тайлы… через хекс редактор можно поиграться с параметрами движка( поставлена высота тайла 60 пикселей, изза этого вся картинка поплыла ), играть при этом невозможно, зато при разборке механики очень помогает. Тайлы рисуются слева направо, сверху внизу.
У меня такой вопрос. Вот мы имеем на экран 1000*500, на котором помещается 500 тайлов. Вы каждый кадр перерисовываете все тайлы?
Нет конечно, именно «отрисовка» происходит для тайлов, которые попадают в viewport камеры, а обновление данных да, происходит для всех тайлов. Думаете стоит добавить описание этого алгоритма в статью???
попадают в viewport камеры,

Ну это само собой, я потому и написал про «экран 1000*500». Вся карта, думаю, не 500 тайлов, а все 10000
Да, мне была интересно именно оптимизация изометрических игр.
хм… попытаюсь попроще ответить, есть игровой «tick», событие, которое доставляется каждому объекту в игре, таких тиков в одной секунде реального должно быть около 30, чтобы игрок не заметил детерминированности игрового времени.
1. Большая нагрузка приходилась на алгоритм поиска пути, сначала использовал Беллмана, но он зацикливался на перекрестах и петлях, позже был введен A* для расчета перемещения по всей карте, Беллман остался для расчета путей обслуживающего персонала, так как из него можно вытащить информацию о всех проверенных машрутах. Предполагается, что позже он будет вынесен в отдельный поток — задержку в несколько мс на поиске игрок не заметит, но общая картинка будет более плавной.
2. Потом проседания начались при поиске подвижных объектов вокруг, они все были свалены в одном массиве и его перебор обходился дорого, это я обошел введением доп. карты, в которую перед каждым кадром записываются подвижные объекты по тайлам. Это требует времени при старте кадре, но практически убирает фризы при поиске.
3. Основная же нагрузка приходилась на загрузку и поиск текстур, каждый тик что-нибудь да меняется, это победили предварительной загрузкой и введением класса Picture, который реализует своеобразный shared surface, храня указатель на конкретный surface. Еще большего увеличения производительности удастся добиться введением текстурных атласов и сведением текстур анимации в одну.

Пока решено сделать упор на восстановление функционала. Вот, надеюсь я ответил на Ваш вопрос, если есть еще задавайте, постараюсь ответить.
Очень интересный ответ, спасибо. А сама отрисовка, вы отрисовываете все тайлы каждый кадр? И в оригинальной игре так делалось?
А линк на исходники не подкинете, чтобы посмотреть как они это реализовали???
Говорят, что оно как в Cocos2d, но исходников нет — это внутренний проект Apple.
легко отрисовывает на 60 FPS ~1000 тайлов.

GPU?
Ну там отрисовка на видяхе, а мне интересно, как они добивались высокой скорости, отрисовывая эти тайлы на проце.
используется ли Quad-дерево для отображения карты?
Нет не использую, а как он тут может помочь???
Я предполагаю, что оно может решить две проблемы:
1) сортировка тайлов. Если всю карту загнать в квад-дерево, то потом меняя порядок отрисовки детишек изменится сортировка тайлов.

Поясню на примере. Возьмём картинку из статьи
image

Пусть на глазок дерево будет построено так, как прочерчены красные линии (для корневого элемента), и для top-left ребёнка — как зелёные.

Тогда следующий псевдокод отрисовки:
void QuadTree::render()
{
    mTopLeft->render();
    // порядок следующих двух строк не важен
    mTopRight->render();
    mBottomLeft->render();
    mBottomRight->render();
}


гарантирует, что первым отрисуется самый верхний тайл ромба, затем следующие два (порядок не важен). И так далее.

Если перетасовать строки — то можно получить изометрию под другим углом (при этом и тайлы для отрисовки должны быть соответствующими).

2) эффективное удаление скрытых объектов. Думаю, тут и так понятно.

Кстати, в связи с этим вспомнил одну вещь. В меню справа есть же стрелочки под картой? Они ведь поворачивают карту? Реализована ли подобная функциональность в римейке? Если да — то каким образом?
карта в оригинале вертелась поворотом матрицы, у меня пока это не сделано…
А тайлы? Они ведь тоже должны меняться.

Я спрашиваю потому, что в статье не нашёл упоминания о том, что текстуры объектов есть для разных ракурсов. Возможно пропустил.
Угу, текстуры для всех ракурсов одинаковые, исключение соствляют некоторые тайлы, например берег, подъев в гору… для них меняются ID изображений на ID +-1, поэтому так странно расположены в ресурсах...
Вот уже вторую статью подряд меня мучает вопроос: почему «back», почему не «reverse»?
Back — с использованием отладчика, декомпилятора, в общем исследование кода (будь то асмовский или приведенный с-шный)
Reverse — повторение логики игры на основе наблюдений, сажусь я играть в цезаря, строю фермы и вижу что тайлы пшеницы меняются в соответсвие с прогрессом производства и вношу это в ремейк.
В проекте в полной мере присутствуют оба направления, но конкретно в этих статьях 90% все таки back-инжиниринга, я сейчас практически не касаюсь логики, до которой не удалось добраться через IDA.
Чаще всего под reverse engineering понимают именно исследование «с использованием отладчика, декомпилятора», а термина «back engineering» до вашей предыдущей статьи я и вовсе не встречал.
Википедия со мной солидарна:
Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation.[1] It often involves disassembling something (… computer program ...)
Google тоже не особо знаком с «back engineering», по запросу «reverse engineering» — около 2 000 000 результатов, «back engineering» — чуть больше 48 000.
― Я пришел извиниться.
― Так извиняйся.
― Это было извинение. К нему прилагается шампанское.

___________*______*____.___*____.
________________..__*____o
______________o___*__.____*
________________________
_______________(________)
_______________|____o___|
_______________|_o____o_|
_______________|___o____|
_______________|_o____o_|
_______________|_o__o___|
_______________|______o_|
_______________(_o______)
________________\___o__/
_________________\____/
__________________\__/
___________________||
___________________||
___________________||
___________________||
___________________||
___________________||___
_______________/___||___\
_______________\________/
Название первой статьи пусть уж останется как было )))
Было бы круто сделать в ремейке возможность поворачивать здания. Можно будет строить красивые кварталы, поворачивать домики входом к дороге.
Да, идея очень неплоха, еще на багтрекер писали, что можно разные по виду дома строить. Здесь есть несколько НО:
1. для объекта доступна только одна текстура
2. здания не имеют параметра вход
Использование похожих текстур подходит не только для домов, а для большинства объектов в игре, проблема в их создании )))
Я так понимаю, lightsgoout хочет по возможности «зеркалить» любое здание по горизонтали (FlipX), чтобы (исключительно визуально) поворачивать здания входом к дороге.
Понял.
да сделать такое действительно просто ( в качестве эксперимента добавлю в билд ), город при этом будет смотреться менее однообразно.
Попробовал завести. Вроде все взлетело, но фуллскрин упорно не применяется.
Заводил на Win7 на Intel HD.
Вай… Молодцы. Но мне больше Фараон нравился.
Спасибо, может кто-то подхватит идею ))) Больше половины уже сделано, редактор ресурсов Pharaoh'a тоже практически дописан.
А у них разве не один и тот же движок? Думал они только самими спрайтами различаются
Теоретически один(скорее эволюция), в Pharaoh'е и последующих играх серии стал использоваться другой формат текстур(была добавлена прозрачность ) + появилась высота тайлов. На мой взгляд была еще существенно переписана экономическая часть.
Спасибо, а то у меня некоторые сомнения были по поводу запуска на реальном железе, все таки эмулятор не все особенности учитывает
Баг или нет, но у меня не появляется экранная клавиатура, когда требуется написать своё имя. Я всегда там «Новый правитель».
По поводу FPS. Новая игра, чистая карта. FPS (его, кстати, можно отследить в левом верхнем углу) — от 18 до 20.
habrastorage.org/files/c5d/10f/453/c5d10f4535364d75ab3e8a9c30cd5213.png
«Да, на андроиде с клавой проблема есть, как починить пока не понял. На маках не работает мышь в оконном режиме» — понял.

Дополняю, что на Galaxy Tab 2 10.1 игра также работает. FPS 12-14.

Есть предложение. Например, чтобы избежать многократных повторений и сделать этот список более компактным:
Было: habrastorage.org/files/b9b/545/a09/b9b545a092b6404e8aa767b6d5d6d658.png
Стало: habrastorage.org/files/436/8bd/8e9/4368bd8e90884e319d85fc84c752ee35.png
Да, на андроиде с клавой проблема есть, как починить пока не понял. На маках не работает мышь в оконном режиме
На телефоне Самсунг Ноте 3
Build (b1941, v0.4 SDL2) и
Build (b1852, v0.3 SDL1.2) не запустился. Настройки можно поизменять — потом загорается логотип Сaesaria на черном фоне и вылетает.

В вин версию поиграл даже вторую миссию помучал — понастальгировал )
При постройке колодцы только каждый раз разные и в стиль не попадают.

А так по идее бы развить игру на пол шага вперёд от оригинала — перерисовать всю графику и сменить название на:
Царь
Дюк
Емперор
Князь

и продавать за 499 руб в стиме.
Да, колодцы это доработка, чем то надо было заполнить возможность рисовать разные текстуры для одного здания (это нужно было для разных ракурсов камеры)
Да я так и понял что просто потестить что то надо было.
Кстати фонтан еще во второй итерации какойто бледносерый и дергается вправо влево на один пиксель.
Это первая версия замены стандартному фонтану, прислал @weereew, конечную не успел еще добавить в сборку, она более детализирована и стилизована
Как думаете если убрать упоминание про Цезаря и сделать сеттинг просто нейтральный, про управителя далеких волшебных(?) земель, перерисовать графику — то можно продавать игру как самостоятельную не боясь преследований от Активижн?

А если кто найдет геймплейные похожести и проведет параллели, то назвать это — духом старой школы к которому изначально стремились при разработке игры.
собственно сейчас такая цель и стоит, игр про рим достаточно, появление еще одной не сделает когото беднее, проблема в том что в «цивилизованном» мире не принято использовать чужие идеи вроде как ))) а геймплей никто не патентовал, названия исторические, история тоже общая (кампания на индигого собрала порядка 1000$ уже сейчас, т.е. гдето процентов 20 текстур я уже смогу переделать, а там может еще народ подтянется.
Sign up to leave a comment.

Articles