Наблюдение. Натравил Hex-Rays на thief2.exe и получил ~14Mb исходников на C. Не так уж и много. :)
Наконец-то у нас есть исходники. Ура.
Пф, нет их у нас. Hex-Rays - это декомпилятор, плаги для IDA Pro. Пытается представить асм в c. Очень неплохо получается это у него. Но, как минимум проблемы с правами (как с thief, так и с Hex-Rays :) ), плюс, нет нормальных имён у функций.
ND а собрать их можно в рабочий exe назад?)
Надо пошаманить, ведь все константные строки и прочая хернь в .data. На днях баловался с notepad - получилось собрать и даже работало. Но здесь конечно всё сложнее, объёма больше.
может Волка не откажется :joke:
Volca и его команда давно в курсе прелести использования HexRays в IDA Pro, поверьте.
Кстати, насчёт Volca. Если сравнивать объём кода, то он продвинулся на где-то на треть. Правда, что-то давно нет нового кода в их репозитории.
[Исправлено: ND, 31 марта 2010 13:04]
ND: Любой человек периодически нуждается в подпитке энтузиазмом, идеями и пр. Volca, возможно, просто подустал (что немудрено после пяти лет работы), либо у него просто не хватает времени/желания.
И самое трудное только впереди: AI и прочая игровая логика.
не пойму я вас, сдались вам эти сурсы? Заимей вы их, сразу бы что-то ркальное замутили?
[Исправлено: UrUkUs, 31 марта 2010 16:50]
UrUkUs ну к примеру, попытаться увеличить лимиты, или поправить вылеты
пересобрать dromed
ввести новую функциональность в игру :)
чтобы игра запускалась нормально у всех на современных компах, а не через жопу :)
[Исправлено: DonSleza4e, 31 марта 2010 16:26]
да, и это конечно каждый ребенок сделать может?:cheesy:
UrUkUs
А вы с какой целью интересуетесь?
ЦитироватьND написал(а) 31 марта 2010 11:13
плюс, нет нормальных имён у функций.
Имена функций есть в dromed.exe, если я правильно понял, о чем речь.
Получилось свыше 15000 функций. Понятно, что большая часть из них относятся к crt, но их вычленение/удаление займёт уйму времени. То, что есть в dromed - это конечно хорошо, но напрямую воспользоваться не получится. Хотя... Если декомпильнуть dromed, то можно, написав несколько магических скриптов, сопоставить содержимое функций thief2.exe и dromed. Тогда да, может получиться толк. Только всё равно работы тонна и много-много "если".
Добавлено позже
Не хочу геморроиться со всеми этими патчами и установками. Может кто-нибудь дать самый годный/новый exe-шник dromed? Так, посмотреть, что к чему.
Добавлено позже
Так, dromed 1.18 нашёл. Осталось найти непатченный thief2.exe 1.18 :)
[Исправлено: ND, 1 апр. 2010 12:18]
Добавлено позже
Просьба удалить топик. Нет никаких исходников и даже намёка нет. Не нужно пустых надежд. :)
ЦитироватьОсталось найти непатченный thief2.exe 1.18
Длуг, ты ничего не путаешь? Непатченный это 1.07
Я имею в виду всякие nocd и прочие хаки.
Добавлено позже
Вопрос: я правильно понимаю, что dromed сам по себе содержит весь движок thief и самодостаточен. Иными словами: если я запущу игру из-под dromed, то будет ли игра/логика/рендер идентичный запуску thief2.exe?
А вообще, что за тема? На западе уже 100 лет исходники жаждят, неужели они не додумались декомпелировать ехе?
Вот и я говорю, мол надо потереть тему.
они помешаны на легальности
это типа незаконно и нарушение лицензии
Добавлено позже
кстати дромед собран в дебаг билде вроде, там по идее много чего отладочного включено в сборку
полезная инфа типа для реверсинжиниринга)
DonSleza4e
Вот и ответь на мой вопрос, а то сам dromed я толком не видел. Игра, запущенная из-под dromed, идентична тому, что я вижу, запустив обычным способом? В плане рендера, AI, логики, физики.
ЦитироватьND написал(а) 31 марта 2010 19:00
UrUkUs
А вы с какой целью интересуетесь?
а может у меня есть что-то по теме исходники дар эйнджин:sly:
ЦитироватьПросьба удалить топик. Нет никаких исходников и даже намёка нет. Не нужно пустых надежд.
Пусть будет ещё один оффтопик.
думаю да
Тогда всё веселее, т.к. результат декомпиляции dromed выглядит не столько пугающе. Да, структур нет, работа идёт по смещениям, но зато по декорации symbols можно многое понять. Да, работа с virtual table идёт напрямую, но, опять же, декорация имён позволяет воссоздать интерфейсы. Так что имея время, сколько-то терпения, несколько программистов (не обязательно гуру) имеют шанс получить более-менее сносные исходники. Ну а дальше дело могучего рефакторинга.
А что до dromed. Так коли из под него тоже всё замечательно играется, то немного костылей, заглушек и прочих допилов, и мы имеем вполне себе thief2.exe
[off]DonSleza4e, ND, я вас путаю :joke:[/off]
Испокон веков наш славный DonSleza4e прёт мои аватарки. Даже испоганить весь их смысл не ленится.
[Исправлено: ND, 1 апр. 2010 15:56]
ЦитироватьND написал(а) 1 апр. 2010 15:56
Испокон веков наш славный DonSleza4e прёт мои аватарки. Даже испоганить весь их смысл не ленится.
[Исправлено: ND, 1 апр. 2010 15:56]
кот кошку, какой тут смысл, только котятки потом.
ЦитироватьИгра, запущенная из-под dromed, идентична тому, что я вижу, запустив обычным способом?
Нет. В игровом режиме DromEd Jorge виден как Jorge, в Thief.exe - как сплошное синее поле. Много других менее заметных отличий. Больше функциональности - доступны команды, недоступные в игре.
Короче говоря, совместимость на уровне FM - не полная. Некоторые вещи, вполне работоспособные в игровом режиме редактора (например, сохранение короны объекта при его взятии/бросании), в самой игре просто не работают. Думаю, обратная несовместимость тоже может иметь место (просто никому в голову не приходило проверять).
А рендер?
Разве за отображение текстур отвечает не рендер?
Я уже много раз сталкивался с тем, что текстуры с ошибками (не тот размер, не та палитра, не та цветовая модель) по-разному выглядят в игровом режиме DromEd и в самой игре.
Были также проблемы с отображением некоторых некорректных AI: в редакторе все нормально, а в игре рендер глючило по-страшному вплоть до вылета.
подумалось:
- Zontik может подогнать ND миссию с предельным числом брашей (лучше - чтобы уже превышался лимит, и при запуске миссии игра валилась. я не знаю как конкретно оно там валится, никогда не достигал предела).
ND в отладочном режиме пускает миссию, и находит место падения.
дальше в зависимости от причины. Если жестко задан максимум по каким-то параметрам - снятие этого максимума. Если упирается в максимум типа данных - попытка смены типа данных на более емкий (int на long к примеру)
- компиляция exe файла под современные системы.
незнаю можно ли научить распознавать многопроцессорные системы - хотя бы просто корректно работать на них
При превышении числа брашей ничего не валится, просто миссию становится невозможно портализировать. Но она вполне играбельна при этом.
Пример - Broken Triad, миссия 1. 6990 брашей (разрешено 6900). Играть можно, портализировать/оптимизировать - нет.
При убирании 90 брашей, взятых наугад, миссия прекрасно портализируется.
А вообще если что и выйдет, то нигде в мире, за исключением СНГ, этого все равно не примут, поскольку разрешение на декомпиляцию находится примерно там же, где и исходники. Так что получится в лучшем случае вещь для внутреннего использования.
IMHO, именно это ограничение - на количество брашей - не самое страшное, большинство авторов к нему близко не подходят. Вот число полигонов и - самое страшное! - cells на экране - вот это истинный кошмар дизайнера.
Но даже если суметь преодолеть этот предел, подстерегают новые грабли: авторы так обрадуются, что начнут строить города с панорамными видами, и... догадываетесь, что дальше? FPS упадет ниже нуля, так как движок на такую нагрузку не рассчитан.
Так что простое преодоление ограничения если и даст что-то, то очень мало.
Цитироватьэтого все равно не примут, поскольку разрешение на декомпиляцию находится примерно там же, где и исходники
Не совсем так. Как следует из тем на официальном форуме и на TTLG, сотрудники EM в курсе проблем с исходниками и инициировали поиск. Понятное дело, что каких-либо существенных ресурсов на это выделять не будут, потому поиск вполне может не увенчаться успехом. Однако же, само намерение дает основание полагать, что если исходники будут найдены или получены каким-либо способом, можно будет вести уже предметно переговоры о распространении их либо в виде непосредственно кода, либо в виде конкретных патчей движка, в том числе официальных.
[Исправлено: DJ Riff, 2 апр. 2010 11:47]
[off]Хм... а тема не совсем оффтопик.[/off]
[off]так не вопрос, можем устроить:biggrin:[/off]
Zontik хорошо, а если найти этот лимит в 6900 и при удаче убрать?
[off]великий и ужасный оффтопик может порождать странные отвлетвления :joke:[/off]
[Исправлено: DonSleza4e, 2 апр. 2010 11:59]
ЦитироватьDJ Riff написал(а) 2 апр. 2010 11:46
Как следует из тем на официальном форуме и на TTLG, сотрудники EM в курсе проблем с исходниками и инициировали поиск. Понятное дело, что каких-либо существенных ресурсов на это выделять не будут, потому поиск вполне может не увенчаться успехом.
Так проще сообществу скинуться на оплату месяца-другого работы ихнего спеца - пусть ищет.
Ну хорошо... если... тогда... можно будеть строить миссии бОльшего размера, которые будут грузиться по 10 минут. Все остальные ограничения при этом останутся в силе, как то:
- 4000 объектов на уровне (если столько или больше, миссия может грохаться при загрузке сохраненки - проверено на Hammerite Imperium);
- 4000 terrain brushes (нет достоверных сведений о возможности преодоления, точном числе и наказании ослушавшимся);
- 999 room brushes;
- 735 (кажется) источников света;
- 256 (кажется) источников звука;
- и столь любимые всеми полигоны в кадре.
IMHO еще раз: из всех существующих пределов именно этот - 6900 - самый безвредный. Просто его мало кто достигает, да и преодолеть можно при желании.
А самый вредный (на мой взгляд, опять же) - после полигонов в кадре - это невнятное ограничение на размер Pathfind database. К сожалению, нет даже известной переменной, которая могла бы выражаться численно, но практически каждая миссия размером заметно больше средней сталкивается с этой проблемой.
То есть как это выглядит? Никакого счетчика нет. При определенной общей площади поверхностей, по которым AI могут перемещаться, база еще строится, а стоит ее чуть-чуть увеличить - уже нет. Как контролировать эту площадь и как вообще ее посчитать - вопрос скорее риторический.
Zontik
Есть такое понятие программёрское, как рефакторинг.
Это, наверное, хорошо? В смысле - не понял. Буду благодарен переводу.
"Рефакторинг — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы"
После хорошего рефакторинга можно код вертеть как хочется.
Просто из любопытства: речь идет о систематизации текста, которым написан код (грубо говоря - комментарии вставить), или все же об оптимизации функций?
Я просто не понимаю пока (надеюсь, что только пока), какое это имеет отношение к Вору с его "исходниками".
ЦитироватьIMHO, именно это ограничение - на количество брашей - не самое страшное, большинство авторов к нему близко не подходят. Вот число полигонов и - самое страшное! - cells на экране - вот это истинный кошмар дизайнера.
Но даже если суметь преодолеть этот предел, подстерегают новые грабли: авторы так обрадуются, что начнут строить города с панорамными видами, и... догадываетесь, что дальше? FPS упадет ниже нуля, так как движок на такую нагрузку не рассчитан.
Я полагаю, быстродействие Вора в плане количества полигонов упирается в отсутствие поддержки Hardware T&L (т. е. геометрических расчетов средствами видеокарты), которого в 1998 году еще не было.
Движок рассчитан на DirectX 6, а поддержка Hardware T&L появилась только в DirectX 7 в 1999 г.
А что вы всё обсуждаете? Кто-то хочет 15000 функций обработать? :) Исходники не дают. Воссоздавать Thief (OpenDarkEngine) немногим легче. Я больше в TDM верю, ведь немало достигли.
а ты скомпилируй чтобы запустилось)
а дальше в отладочном режиме можно поработать при желании)
NDЦитироватьА что вы всё обсуждаете? Кто-то хочет 15000 функций обработать?
Ну можно же помечтать, что придет добрый дядя и их обработает :joke: