Как стать автором
Обновить

Комментарии 38

Круто. Патчить любой ценой.

А на месте EA я бы открыл сырцы. Ресурсы — как были, за деньги. А сырцы доступны.
EA не из тех контор, которые просто откроют исходники. Они очень переживают за свои IP, спасибо хотя бы на том, что не срубают на корню все моды, как некоторые другие конторы на букву N.
Кстати, если они откроют исходники под ограниченной лицензией, это всё равно будет лучше, чем просто закрытые.
Мне разрешили делать с их играми что угодно, покуда я не использую их IP. Я попробую написать им об открытии сырцов (или хотя бы узнать условия, на которых они готовы были бы их открыть)
Но вы используете их IP.

Возможно, речь идёт про «не используете их IP с коммерческими целями». Это совсем другое.
We do not object to the extent your project does not incorporate any of our intellectual property (including artwork, trademarks, or game code).

Вот так выглядел изначальный ответ. Я не силён во всех бюрократических аспектах, поэтому вы, скорее всего, правы. Но на практике им все равно, пока это не продаётся.
Прикрылись. Если буквально — то «возражают». Если по духу — «можно, пока не начинаете тырить в свою проект наш код».

Вероятнее всего, они имели в виду, что если вы будете кому-то давать код проекта (проект), то он не должен включать в себя саму игрушку.
А куда вы вообще пишете? Я вот Need For Speed III: Hot Pursuit долгое время занимался. Я пытался связаться с разработчиками на предмет может у кого завалялись ранние беты с лучшим качеством ресурсов или отладочная информация. Без результата. Те кто ответили сказали что ничего от тех времён (1998 год) не осталось =) Заполучить исходники было бы пределом мечтаний.
Я написал в Mass Media отдел, оттуда меня отфутболили в специальный отдел разрешений (Permission Requests Team).
С Most Wanted попроще, так как есть отладочная информация для PS2 демо-версии. Не идеал, но хоть что-то. Думаю, при желании NFSIII можно зареверсить и ручками, ибо там явно меньше кода. А можно и OpenNFSIII сделать ^_^
Интересная находка, но не похоже на тот код, что есть в игре. Прошло уже слишком много времени, исходников конкретно этой игры может уже просто не быть.
И на букву R*
Замечал такое в некоторых пиратках — типа Black edition — в блок-посте не хватало машин. Получается, пираты решили проблемы разрабов?
Не факт. Мы с одним товарищем посчитали хэши файлов пиратки и идентичной лицухи. За исключением очевидно отличающегося exe файла там рядышком отличалась целая куча других файлов, в том числе машин, трасс и прочего. Пиратская версия явно отличается от того, во что играли люди с лицензией.
Скорее всего утекла поздняя бета, а когда вышел полноценный релиз, то повторно ломать никто не захотел…
Пробовали использовать инструменты типа frida для быстрой проверки, что логика патча верна?
Я не думаю, что такой инструмент в принципе существует. Слишком уж неоднозначно поведение всей программы после исправления пары инструкций (из нескольких миллионов). Перестанет падать в одном месте — может спокойно начать падать в другом, казалось бы, совершенно не связанном с патчем месте. Если есть — буду только рад узнать о нём :)
Я неправильно выразился, имел в виду, что впатчивать ассемблерный код достаточно долго. Чтобы не потратить время на впиливание патча, который по какой-то причине окажется неправильным, можно сначала делать патчи, например, на Javascript, как во фриде, а потом уже удачные варианты оформлять в виде бинарного патча.
Ах, 2005-ый, когда операции с памятью были достаточно дорогими, чтобы ей разбрасываться как попало…

Справедливости ради, актуальности это нисколько не потеряло и сегодня. Игры сплошь состоят из самописных аллокаторов. Иначе никак.
ЭЭээ?
Последний раз в геймдеве видел кастомный аллокатор в 2006 году.
Сейчас, только для логирования выделения памяти и детекта утечек, в продакшн идёт стандартное всё.
Зачем в современном мире кастомный аллокатор?(Если мы не говорим о встраивании GC, как в UE)
Я по аналогии говорил про крупные проекты. CryEngine открыт, аллокаторов своих там полно. Вполне стандартные вариации для геймдева. Фростбайт свое имеет, разработчики killzone тоже немного делились. Да и вообще, по всем презентация по оптимизации видно, что ничего не изменилось. Зачем? Оптимизация конечно, работа с памятью для игр это один из главных источников тормозов сегодня. Потоков много, компонентов дофига, кэш промахи дешевле не стали. Недавно вон на С++ конференции было лекция про аллокаторы с кучей статистики об их производительности. Многие варианты в геймдеве тоже используют — фиксированный пул, бакеты, свои вариации кучи и т.д. Все зависит от специфики подсистемы.
1) Консоли
2) placement_new/memory pool
3) алокации для мелких и больших объектов могут делаться поразному
Тоесть я согласен с тем, что его не пишут руками по 100 раз на проект. Окей, по 1 разу на платформу пишут. Раз в 7-10 лет.

Заголовок прочитал — думал про NFS, а тут про NFS :-)


Но хорошая статья, спасибо!

Планируете постепенно полностью отреверсить всю игру?
В идеале, я хотел бы сделать OpenNFS. Но для начала нужно хотя бы работу найти, а то кушать нечего :)
А если для OpenNFS откроете страницу на Патреоне? Думаю, фанаты поддержали бы.
Фанаты будут давать 2+к долларов в месяц? Или они будут код писать?
Материально поддерживать, ему ж кушать нечего.
Получить 2+K долларов в месяц можно на Патреоне, но, в общем, не так-то просто. Не уверен, что NFS привлечёт столько желающих, хотя чем чёрт не шутит…
А я вот не думаю, что кто-то решит нечто подобное поддерживать.
Плюс мне кажется это не совсем честным, так как проект будет открытым и по логике вещей все должны будут получать что-то за работу. Хотя я мог бы попробовать сделать страницу на Патреоне, чтобы посмотреть, как далеко она уйдет. Я предсказываю, что недалеко с:
Вот сколько потенциальных фанатов:
Заголовок спойлера
image

Первое время можно ограничиться бинарником, а доступ к коду давать как награду донатерам кому нужно. По мере увеличения пожертвований можно будет взять в команду.
Нужно будет всё взвесить и продумать. В конце концов, попытаться всегда можно, а получится/не получится — это уже не так уж и важно.

Спасибо за идею :)
Идея хорошая, вот только… привлекать народ на Патреон — та ещё работёнка. Если просто страничку создать и никак её не раскручивать — привлечёте $10 в месяц. А если раскручивать — останется ли время на то, чтобы код писать?
Т.е. создать темы в группах в ВК, FB, Reddit и ModDB будет маловато?
Нужно регулярно поставлять какой-нибудь контент, который будет людей привлекать. Если вы книжку пишите или что-то подобное, то это легко… а вот если игру…

Хотя можно какие-то наработки выкладывать, полуфабрикаты…
Всё же в контент упирается. Чисто с технической точки зрения современные движки позволяют за месяц неспешной работы сделать аналогичный геймплей.
Уже существует OpenNFS — попытка сделать открытый движок для The Need For Speed. К сожалению, до финиша проект так и не доведён (например, вообще нет обработки коллизий).

Также можно вспомнить про Cry for Speed (и ещё вот) — попытка сделать ремейк Need For Speed III. К сожалению, проект совсем заглох, хотя и трудилось над ним несколько человек.
У OpenAything помимо проблем с временем и мотивацией есть куча других проблем, например проблем с легальностью. И в случае с EA нет совершенно никакой возможности предсказать, как они отреагируют на появление такого проекта. Могут забить, могут просто пригрозить, а могут и в суд побежать. Поэтому я точно не стал бы делать нечто подобное, не получив от EA чёткий ответ: «Нам все равно, парень, делай на здоровье, только не распространяй наши ресурсы»
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории