NoX World - форум об игре NoX

Привет фанатам NoX !!! => Картостроение, скриптинг и моддинг => Моддинг => Тема начата: bbmm от 24/08/2014 13:05:30

Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 24/08/2014 13:05:30
Здравствуйте, дорогие форумчане. На вашем форуме сижу давно, но не регистрировался. Не так давно у меня появился проект по портированию Nox на Linux, а точнее говоря reverse-engineering'у оригинальной игры. Так как я заметил, что среди вас есть хорошие программисты, прошу вас помочь.

Что собственно нужно делать.
В IDA 5.5 + HexRays с помощью OllyDbg работая с псевдокодом C пытаться его восстанавливать.
Искать в памяти адреса интересных переменных, которые могут навести нас на значение функции, где она используется.

Если кому-то интересно, отпишитесь, пожалуйста здесь. Также надеюсь, что кто-то уже копал под игру и может поделиться своими наработками. Спасибо.
Название: LiNox или порт Nox на Linux
Отправлено: 2530 от 24/08/2014 14:59:21
А чем Wine не угодил?
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 24/08/2014 15:09:47
Wine - из другой оперы совсем. Речь идет о фактически реверс-инжиниренге игры и ее последующем опенсорс-клоне. А я надеюсь, сообщество понимает, что это даст возможность изменять игру как заблагорассудиться без UniMod'а и других вещей.
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 24/08/2014 15:38:29
Если это сделаем, можно будет спокойно портировать и на Android, MacOS
Игра использует для графики directdraw, а для звука miles sound system. Заменить можно на openal и libsdl.
Помимо всего прочего, благодаря этому можно будет добавить нормальную поддерку высоких разрешений, 32битный цвет и кучу других полезных вещей.
Название: LiNox или порт Nox на Linux
Отправлено: Evengard от 24/08/2014 15:58:05
Можно я даже комментировать не буду? Настолько бесперспективная идея, требующая кучу вложений, в основном временных, но не несущая ничего нового. К слову, Nox действительно шикарно работает на Wine.
Название: LiNox или порт Nox на Linux
Отправлено: Perfect от 24/08/2014 16:07:17
Идея, на самом деле, крутейшая. Жаль, что тебя тут не было лет пять назад...
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 24/08/2014 16:20:15
Можно   я даже комментировать не буду? Настолько бесперспективная идея,   требующая кучу вложений, в основном временных, но не несущая ничего   нового. К слову, Nox действительно шикарно работает на Wine.
Позвольте с вами не согласиться. Перспективы, имхо, у идеи есть и хорошие. Временных вложений это естественно требует, но чем больше будет участников в проекте - тем меньше будут эти вложения. Сам я буду обрабатывать код, к примеру, 15 месяцев. Впятером это будет уже 3 месяца. Чувствуете разницу?
О Wine я писал уже - это совсем другое. Тем более что цель не совсем в собственно запуске игры на линуксе.
Название: LiNox или порт Nox на Linux
Отправлено: 2530 от 24/08/2014 19:34:47
Беда в том что ремейк Nox сделать очень трудно. Настолько трудно, насколько вы себе явно не представляете. Там так много всего запрятано, а изучено не сильно много. Мы разобрали по-настоящему только шрифты и некоторые функции с которыми оперировать можно только напрямую (обращаясь непосредственно по адресу в ОЗУ)
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 24/08/2014 21:48:44
Вот бы разрабы исходники отдали  :) Все равно их студию закрыли. Правда я даже не знаю где их контакты найти.
Название: LiNox или порт Nox на Linux
Отправлено: Evengard от 25/08/2014 08:01:15
Если б они хотя б оригинальный редактор карт отдали... Но нет, мы их спрашивали - не хотят - всё закопирайчено и законтрактовано.
Название: LiNox или порт Nox на Linux
Отправлено: KirConjurer от 25/08/2014 15:09:12
Спрашивать наверняка надо здесь https://talk.turtlerockstudios.com/t/nox-a-game-by-westwood-and-the-founders/1508 (https://talk.turtlerockstudios.com/t/nox-a-game-by-westwood-and-the-founders/1508)
там ответил Phil Robb... увы главного разработчика Nox-a, Michael Booth, я найти на том форуме не смог, несмотря что он есть в списке основателей Turtle Rock Studios. Я думаю если ему подробно разложить что и зачем нам нужно, возможно появится хотя бы более-менее достоверная техническая инфа о сетевом протоколе/игровых структурах
 (всё же он В ОДИНОЧКУ! начинал разработку игры)
Но это нужно тонко подойти...
Кстати, трейдмарк Нокса освободился ещё в 2011 году
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 25/08/2014 16:58:49
Тогда тем более у нас есть шанс! За ссылку спасибо.
Я думаю, если грамотно подойти к написанию обращения, можно добиться чего-то.
Название: LiNox или порт Nox на Linux
Отправлено: 2530 от 25/08/2014 17:14:19
Что-то я предчувствую вторую бесполезную петицию (1я была про  Nox 2 (http://www.petitiononline.com/petitions/nox/signatures?page=1)).
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 25/08/2014 18:52:57
Зачем петиция? Я говорю о прямом обращении
Название: LiNox или порт Nox на Linux
Отправлено: Evengard от 25/08/2014 18:57:17
А вот это хорошая идея. Попробуй, от такой попытки хуже не будет.
Название: LiNox или порт Nox на Linux
Отправлено: Алдвин от 25/08/2014 19:00:02
Вот это настрой!!!  :D  Удачи тебе "кандидат". Хехехе Действительно хорошая,просто замечательная идея!! 2530, не надо так пессимистировать
Название: LiNox или порт Nox на Linux
Отправлено: Lаrboss от 25/08/2014 19:33:28
Цитировать
Перспективы, имхо, у идеи есть и хорошие. Временных вложений это естественно требует, но чем больше будет участников в проекте - тем меньше будут эти вложения. Сам я буду обрабатывать код, к примеру, 15 месяцев. Впятером это будет уже 3 месяца. Чувствуете разницу?
Не пессимисты мы, а реалисты.

Перспективы крайне туманны. Начальная задача состоит в том, как заставить работать Nox на Линуксе, но она уже решена. А для мобильных платформ игра будет сложна и в оригинальном виде не реализуема/не играбельна.

Предположим вы себя как-то промотивируете работать много месяцев над этим проектом, но остальных 4-х членов команды вы как  мотивировать будете? Сколько часов в день/неделю надо отдавать проекту? Кормить будете?

Сами вы будете обрабатывать код, к примеру, 15 месяцев. В пятером это будет уже 3 месяца + зарплата каждому из 4-х членов команды из расчета 500р/час. Чувствуете разницу?

Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 25/08/2014 19:38:08
Спасибо Evengard, Алдвин :)


Larboss, повторяю в который раз, что это не есть основная задача). С неиграбельностью не согласен, мне кажется, если добавить тач-стик и пару кнопок (как в любых тач-рпгшках) вполне можно играть.

Предполагается, что остальные люди - энтузиасты, которые, как и я, любят эту игру и хотят чтобы она жила :)

Да и плюс, пока что я возлагаю надежды на обращение к разрабам - а вдруг?
Название: LiNox или порт Nox на Linux
Отправлено: Lаrboss от 25/08/2014 19:59:45
Цитировать
С неиграбельностью не согласен, мне кажется, если добавить тач-стик и пару кнопок (как в любых тач-рпгшках) вполне можно играть.
В одиночную игру - да, возможно. В мультиплеер  - нет. У Нокса высокая динамика и Нокс прежде всего мультиплеер...

Цитировать
Предполагается, что остальные люди - энтузиасты, которые, как и я, любят эту игру и хотят чтобы она жила
Знаете, я за последний год-два я видел тонну подобных тем в других кругах кодерских, связанных с энтузиастами... "выгорают" они быстро.

Мне тоже очень нравится Нокс, но надо ставить реальные цели, а не абстрактные. Я написал более 5 программ для Нокса, можно считать энтузиастом. Однако, за такое сомнительное дело я бы не взялся.
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 25/08/2014 20:06:28
Знаете почему я не считаю это дело сомнительным? Потому что если вы видели тонну подобных не реализовавшихся тем, я видел одну реализовавшуюся. И мне этого уже достаточно. Если интересно - http://habrahabr.ru/users/dalerank/topics/
Название: LiNox или порт Nox на Linux
Отправлено: Lаrboss от 25/08/2014 20:15:25
Могу лишь пожелать успехов.

Кстати, вы не указали в 1ом посте, какую роль играете в этом проекте.
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 25/08/2014 20:29:49
Спасибо. Роль простую, наравне с другими (если другие будут), обработка кода, а в дальнейшем его тест.
Название: LiNox или порт Nox на Linux
Отправлено: Evengard от 26/08/2014 02:18:32
Будь сорцы было бы проще, конечно. Но... Сорцов нету. Без сорцов я бы лучше Нокс 2 пилил. Собственно, что у меня и в планах.
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 26/08/2014 07:28:04
А на чем хотите сделать (какой движок\полностью самописная)? 2д или 3д?
Название: LiNox или порт Nox на Linux
Отправлено: Evengard от 26/08/2014 14:36:08
UE4. 3D.
Название: LiNox или порт Nox на Linux
Отправлено: Squall от 26/08/2014 14:53:04

Позвольте с вами не согласиться. Перспективы, имхо, у идеи есть и хорошие.
<...>
О Wine я писал уже - это совсем другое. Тем более что цель не совсем в собственно запуске игры на линуксе.

То есть вы, грубо говоря, пытаетесь привлечь людей к делу, в котором никто не видит смысла, и вы, отрицая это, не даёте никакой аргументации? Ни в одном из постов лично я так и не увидел причины, по которой Нокс столь сильно нуждается (это спустя 14 лет после его выпуска) в порте на Linux. Объяснитесь, пожалуйста.
Название: LiNox или порт Nox на Linux
Отправлено: Dio от 30/08/2014 11:22:36
Обратная разработка Nox-a?
Сомневаюсь, что вы сможете даже впятером просмотреть весь асм-код Nox-a, весь его понять, переписать на С (а лучше на С++, но сложнее). Потом это надо сделать так аккуратно, что бы не запутаться в своём же коде (ибо переписывание с асма на С ничего хорошего не сулит). И не сойти с ума)
ИМХО, даже разработка с абсолютного 0 проще.
Название: LiNox или порт Nox на Linux
Отправлено: Evengard от 30/08/2014 17:06:45
Вот с этим согласен. Реверснуть весь Нокс затратит... Хрен знает сколько времени адского труда.
Название: LiNox или порт Nox на Linux
Отправлено: Lаrboss от 30/08/2014 19:19:48
Вот с этим согласен. Реверснуть весь Нокс затратит... Хрен знает сколько времени адского труда.
Именно. Даже за деньги не каждый согласится на такой труд, хотя если только за очень большие :)
Название: LiNox или порт Nox на Linux
Отправлено: TheSim от 31/08/2014 00:51:14
А вот что можно сделать реально полезного в этом смысле - так это построить описание логики нокса на высокоуровневом языке вроде того же луа и выложить куда-нить в CC-BY-SA.
Под высокоуровневой логикой я имею ввиду описание работы спелов, механики урона, механики всяких задержек.

Такое описание (кто угодно) можно обернуть любым современным движком и получить "геймплей нокса" на таком движке
Название: LiNox или порт Nox на Linux
Отправлено: Lаrboss от 31/08/2014 17:15:37
А вот что можно сделать реально полезного в этом смысле - так это построить описание логики нокса на высокоуровневом языке вроде того же луа и выложить куда-нить в CC-BY-SA.
Под высокоуровневой логикой я имею ввиду описание работы спелов, механики урона, механики всяких задержек.

Такое описание (кто угодно) можно обернуть любым современным движком и получить "геймплей нокса" на таком движке

Пример такого описания можно?
Название: LiNox или порт Nox на Linux
Отправлено: TheSim от 01/09/2014 09:26:04
Пожалуйста - это фактически известная XML-ка с добавлением небольших кусков кода самой сути спеллов

Как-то так. В общем высокоуровневое описание на некоем абстрактном языке. Причем чем декларативней - тем лучше.
Название: LiNox или порт Nox на Linux
Отправлено: Evengard от 01/09/2014 10:24:36
только это не xml а lua таблица)) emit sound лишнее помом. в остальном... заморочно, но можно. но сомнения что найдёт пользу.
Название: LiNox или порт Nox на Linux
Отправлено: Perfect от 01/09/2014 11:16:42
Например, добавление своих спеллов.
Название: LiNox или порт Nox на Linux
Отправлено: Evengard от 01/09/2014 11:46:59
Для этого нужно сам Нокс раскопать и к нему механизм приделать.
Название: LiNox или порт Nox на Linux
Отправлено: TheSim от 02/09/2014 09:44:51
Наоборот, польза в том - что мы получаем описание "сути" нокса в декларативной форме, парсер такого описания может быть построен на любом игровом движке любой платформы.
Если добавить вместо оригинальных ресурсов - самодельные - получаем opensource версию. Если вместо спрайтов добавлять 3д asset-ы - получаем 3д версию. Причем это можно делать плавно и по-частям.

Ну а луа лучше тем, что в нем очевидный синтаксис процедурных частей описания. В XML так тоже можно, но надо дополнительно декларировать схему исполнения таких частей.
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 02/09/2014 15:51:42
Тоже интересная идея. Разработчики на письмо не отвечают пока что мое. Кстати говоря, я забыл лицензию посмотреть на игру. Если она ограничивает действия вроде тех, что я хочу - никуда не попрешь.
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 02/09/2014 16:34:37
А вообще перед тем как что-то создавать новое, надо бы узнать, что уже сделано. Насколько я помню, разобрали шрифты, архивы (и то не совсем), звуки/музыка - это просто, файлы персонажей и сейвы - ?, вроде со спеллами тоже что-то было, а все остальное - тихо. Я прав, нет?
Название: LiNox или порт Nox на Linux
Отправлено: Dio от 03/09/2014 08:00:45
Тебя интересуют только файлы игры, или ещё и внутренние структуры?
Название: LiNox или порт Nox на Linux
Отправлено: bbmm от 03/09/2014 16:42:58
И то и то.
Название: LiNox или порт Nox на Linux
Отправлено: Lаrboss от 03/09/2014 20:33:49
На сколько знаю модификацию audio.bag (точно) и video.bag еще не сделали.
Название: LiNox или порт Nox на Linux
Отправлено: TheSim от 03/09/2014 23:44:08
Ну они менее всего нужные. Вроде было что-то про звук.
Чего реально не видел из нужного собраных в таблицу - всяких скоростей.
Вот с какой скоростью (например в клетках карты в секунду) бежит воин, а с какой колдун. Как муха летит, какой у нее радиус разворота и т.п.
Название: LiNox или порт Nox на Linux
Отправлено: Squall от 04/09/2014 00:12:43
Ну, колдун и воин известно с какой скоростью бегут (правда, неизвестно, в чём она измеряется) - это можно посмотреть, открыв инвентарь. А ещё было бы интересно узнать, у какого оружия сколько времени от нажатия кнопки до нанесения урона (ака стартап), а также точный размер зоны поражения каждого оружия и заклинания (ака хитбокс). Всегда завидовал задротам-магам, стреляющим фаерболом не конкретно в персонажа, а в препятствие рядом с ним, чтобы задеть взрывной волной.
Название: LiNox или порт Nox на Linux
Отправлено: Dio от 04/09/2014 07:21:45
Все эти параметры известны. Инструмент NoXModSuit.