Caesar3 все таки open

g6dvrrl74bw4f4ye0ulecyvlbvw.jpeg


Некоторое время назад, примерно с 2008 года, у меня был хобби-проект по воссозданию довольно знаменитого конце ХХ века ситибилдера Caesar III ©, в процессе работы над игрой был написан ряд статей по механике игры и её внутреннему устройству (например эта).


Чуть позже на сайте поклонников игры я познакомился с другим разработчиком, также увлеченным восстановлением, и хотя наши подходы к восстановлению игры в корне отличались, это не помешало обмениваться информацией. Очень интересно было изучать код оригинальной (через IDA, попутно восстановив часть исходников) механики и, переработав его, использовать в своей игре.
Примерно через четыре года получился более-менее живой проект с уровнями перенесенными из прародительницы, но уже описанными в json-конфигах, с самописным GUI, прикрученным js движком, небольшими изменениями в графическом оформлении. А еще получилась полностью переосмысленная динамика города, оставляющая очень схожее с оригиналом поведение. Собственно так и задумывалось.
imageЧто получилось, можно посмотреть тут

image

Другой любитель древностей, Bianca van Schaik, пошла по пути пересказа, ну или вольного (dx5–7 часть была реализована на SDL) перевода исполняемого файла. Несколько недель назад и этот проект был закончен и выложен на github:
 — Реализовано и восстановлено более 90% процентов сишного кода оригинала
 — Имена переменным даны по их функционалу
 — Смысл части переменных остался неизвестен
 — Некоторые части не используются в основном коде
 — Другие остались хвостами из движка Caesar2

Всеx неравнодушных к археологии кода прошу на github:
pcrregnqbwzjos7vmsefmiib9lo.pngОригинальный репо с сишным кодом
pcrregnqbwzjos7vmsefmiib9lo.pngА тут адаптировано к сборке плюсами

P.S. Проект компилится, запускается и играется, надо только на уровень выше бинарника положить папку data, куда скопировать ресурсы от Caesar3, пока только английского.
P.P. S. Не говорите, плиз, Activision, а то опять забанят репозиторий :)

© Habrahabr.ru