IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Reply to this topicStart new topic
> Восстанавливаем PhilAI.CPP из Heroes2w.exe
t800
сообщение 23 Aug 2016, 06:05 (Сообщение отредактировал t800 - 24 Aug 2016, 17:13)
Сообщение #1

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Все жалуются что AI во fheroes2 очень глупый и это действительно так потому что он очень примитивный.

Поэтому я решил что надо сделать для fheroes2 новый AI, но поскольку каким должен AI для Heroes2 я не знаю.
Я решил что когда не знаешь как это придумать надо спросить кого-нибудь кто знает как устроен AI в HMM2 рассказать как он устроен. И я попросил Швейка с форума Green Dragon рассказать мне как устоен AI в НMM2

И он мне рассказал следующее

Цитата("Швейк")
Я открыл Heroes2.exe в IDA сперва нажал сделать анализ, а затем нажал Produce File -> Сreate С file
а потом Produce File -> Сreate C header file

И IDA сделала для меня исходники Heroes2 barb_metal.gif

Вот они.

HEROES2W_Debug H.zip

HEROES2W_Debug С.zip


И первое что я обнаружил в файлах HEROES2W_Debug.h и HEROES2W_Debug.С

Это название как называется AI в Heroes2 он называется philAI и в оригинальных исходниках он лежал в
в файле PHILAI.CPP и этот AI сделал Phil ded.gif , причем оказывается heroes2.exe в случае когда AI
не знает что делать, он должен выдавать такое сообщение:

Код
"AI encountered object type %d and doesn't know how to deal with it.   Tell Phil";


Но свои контакты почему то Phil указать забыл sad.gif И это очень жаль, потому что если бы он их указал тогда его можно было бы просто спросить какую команду надо куда писать, а не пытаться разобраться в исходниках которые сделала IDA.


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 23 Aug 2016, 10:03
Сообщение #2

laughed as one fey
Сообщений: 11 812
Спасибо сказали: 19681 раз




Цитата
Но свои контакты почему то Phil указать забыл
Потому что в том калифорнийском офисе, я думаю, все и так знали, кто где сидит)

Цитата
И это очень жаль, потому что если бы он их указал тогда его можно было бы просто спросить какую команду надо куда писать
Двадцать лет прошло вообще-т)


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 23 Aug 2016, 20:18 (Сообщение отредактировал t800 - 23 Aug 2016, 20:23)
Сообщение #3

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Хммм... no.gif ... Сегодня чатился по Hangouts c James Koppel (это который Iron Fist)

И он сказал мне что я не совсем понял no.gif

Цитата("James Koppel")
Anyway, here's the main important thing I can tell you
If you look at the decompiled Heroes II source code, you will have to cease all work on fheroes2
Otherwise, fheroes2 will stop being free
Because that's how the law around reverse-engineering works
The best you can do is get someone else to look at the decompiled code, and then write a description about how it works
This is called a "Chinese wall"
This isn't me telling you you can't look at our source. It's the law


Это про че это он?



--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 23 Aug 2016, 20:56
Сообщение #4

laughed as one fey
Сообщений: 11 812
Спасибо сказали: 19681 раз




Условно про то, что использование восстановленных алгоритмов из декомпилированного кода, типа, незаконно.
На самом-то деле это еще надо доказать, учитывая, что вообще-то в героях они не то чтобы ноу-хау.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 23 Aug 2016, 21:38 (Сообщение отредактировал t800 - 23 Aug 2016, 21:43)
Сообщение #5

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Цитата(feanor @ 23 Aug 2016, 23:56) *
Условно про то, что использование восстановленных алгоритмов из декомпилированного кода, типа, незаконно.
На самом-то деле это еще надо доказать, учитывая, что вообще-то в героях они не то чтобы ноу-хау.


Мда...

А еще он мне сказал что-то вроде поскольку fheroes2 GPL то в любой момент Andrey Afledinov может прийти и на меня наругаться и запретить его изменять и делать на нем сборки потому что это он владелец движка.

Цитата("James Koppel")
Also, fheroes2 is GPL'd, meaning that it is owned by a specific person (not sure who) I work in the same building as Richard Stallman, the founder of GNU and the creator of GPL. I get to hear about this several times a day


Это что действительно так?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 23 Aug 2016, 21:49
Сообщение #6

Невыносимый
Сообщений: 13 893
Спасибо сказали: 26252 раза




Нет. Я не знаю, как нужно извратить суть GPL, чтобы говорить такое.


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 24 Aug 2016, 00:39
Сообщение #7

Мяў, наверное...
Сообщений: 21 690
Спасибо сказали: 10215 раз




Цитата(t800 @ 23 Aug 2016, 06:05) *
Поэтому я решил что надо сделать для fheroes2 новый AI, но поскольку каким должен AI для Heroes2 я не знаю.
Этим сказано чуть больше, чем всё...
Цитата(t800 @ 23 Aug 2016, 06:05) *
И IDA сделала для меня исходники Heroes2
Она не сделала исходники - она дизассемблировала код.

Цитата(t800 @ 23 Aug 2016, 06:05) *
И первое что я обнаружил в файлах HEROES2W_Debug.h и HEROES2W_Debug.С

Это название как называется AI в Heroes2 он называется philAI и в оригинальных исходниках он лежал в
в файле PHILAI.CPP и этот AI сделал Phil ded.gif
А, то есть у тебя есть исходники - и ты дизассемблируешь код, чтобы их лучше понять?
Ну что же, как говорят - у каждого додика - своя методика...


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Эроласт
сообщение 24 Aug 2016, 05:59 (Сообщение отредактировал Эроласт - 24 Aug 2016, 07:46)
Сообщение #8

Разработчик MUD DF2
Сообщений: 2 108
Спасибо сказали: 2666 раз




Цитата
Also, fheroes2 is GPL'd, meaning that it is owned by a specific person (not sure who)

Обладатель любой копии програмы под GPL считается её полноправным владельцем. В этом вся суть GPL.
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 24 Aug 2016, 07:46 (Сообщение отредактировал t800 - 24 Aug 2016, 18:04)
Сообщение #9

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Цитата(hippocamus @ 24 Aug 2016, 03:39) *
Цитата(t800 @ 23 Aug 2016, 06:05) *
Поэтому я решил что надо сделать для fheroes2 новый AI, но поскольку каким должен AI для Heroes2 я не знаю.
Этим сказано чуть больше, чем всё...
Цитата(t800 @ 23 Aug 2016, 06:05) *
И IDA сделала для меня исходники Heroes2
Она не сделала исходники - она дизассемблировала код.


Ну вообще то IDA Швейку создала исходники на С а не на ассемлере только почему то одним файлом.
Но зато он понятный, а на ассемблере всякие MOV EAX и с ними Швейку трудно понять что AI делает.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 24 Aug 2016, 08:15
Сообщение #10

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Цитата(Эроласт @ 24 Aug 2016, 08:59) *
Цитата
Also, fheroes2 is GPL'd, meaning that it is owned by a specific person (not sure who)

Обладатель любой копии програмы под GPL считается её полноправным владельцем. В этом вся суть GPL.


Не знаю вот он мне опять утром написал в Hangouts

Цитата("James Koppel")
I don't know what DF2 is. What did they say?
Here's the story: https://www.eff.org/issues/coders/reverse-engineering-faq
Also, FYI: https://en.wikipedia.org/wiki/Richard_Stallman
I've told you two separate things: First, fheroes2 is not "owned by everyone", although it is free to modify. Second, if you directly reverse-engineer something and then make something based on that, it becomes a derivative work






--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 24 Aug 2016, 08:21
Сообщение #11

Невыносимый
Сообщений: 13 893
Спасибо сказали: 26252 раза




А на С сразу понял?


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 24 Aug 2016, 08:59 (Сообщение отредактировал t800 - 24 Aug 2016, 17:16)
Сообщение #12

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Цитата(tolich @ 24 Aug 2016, 11:21) *
А на С сразу понял?


Ну на С оно понятней, а то с MOV и EAX вообще было не понятно что AI делает.

Но меня сейчас не это беспокоит. Просто James Koppel сказал что если я не хочу чтобы fheroes2 стали несвободным
надо построить "Китайсткую Стену" и сделать так кто-нибудь другой посмотрел как работает PhilAI и мне рассказал как он работает, а чтобы я сам в файл не смотрел иначе fheroes2 перестанут быть свободными. И поэтому я в файлы который выложил Швейк смотреть даже не стал.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 24 Aug 2016, 12:46 (Сообщение отредактировал t800 - 24 Aug 2016, 17:16)
Сообщение #13

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Всё! Проблема решена. На Green Dragon догорился со Швейком который написал что готов полностью разобратся в AI lupa.gif , и расказать всем как он работает. http://wiki.kvkozyrev.org/forum/viewtopic....&p=571#p571 Швейк всё время шутит, но оказалось, что он и полностью разобратся может barb_metal.gif а я даже смотреть код HMM2 не буду. Я буду делать новый AI для fheroes2 только как мне будут это советовать. Вот.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 25 Aug 2016, 07:34 (Сообщение отредактировал t800 - 25 Aug 2016, 07:36)
Сообщение #14

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Фух...Совсем запутал меня James.. Сперва говорил чтобы я построил "Китайскую Стену" а теперь написал что мне можно смотреть код dunno.gif fp.gif ... Вообще запутался...

Цитата("James Koppel")
I suspect that the previous people who worked on fheroes2 have already looked at decompilations of HoMM II, meaning that, if you do look at them, it wouldn't be any more more illegal than it already is


Ладно оставлю все уж как есть. Пускай стоит "Китайская Стена" раз построили: Швейк смотрит код, пишет об этом статьи на Green Dragon для всех, а я буду делать AI только по подсказкам. ded.gif


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 25 Aug 2016, 08:10
Сообщение #15

Невыносимый
Сообщений: 13 893
Спасибо сказали: 26252 раза




http://studopedia.org/5-4380.html Так что, изучение файловых форматов по декомпилированной части программы допустимо. А распространение результата декомпиляции нет. И сходную программу писать нельзя.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 25 Aug 2016, 08:32
Сообщение #16

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Цитата(tolich @ 25 Aug 2016, 11:10) *
http://studopedia.org/5-4380.html Так что, изучение файловых форматов по декомпилированной части программы допустимо. А распространение результата декомпиляции нет. И сходную программу писать нельзя.


Ну вроде James так сперва и объяснил. Что надо чтобы один человек декомпилировал и сделал описание как программа работает. И тот кто пишет похожую программу просто прочитал статью. И тогда все нормально.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 25 Aug 2016, 08:46
Сообщение #17

Невыносимый
Сообщений: 13 893
Спасибо сказали: 26252 раза




Нет, не всё, потому что распространение информации, полученной путём декомпиляции, незаконно.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 25 Aug 2016, 08:58 (Сообщение отредактировал t800 - 25 Aug 2016, 09:09)
Сообщение #18

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Цитата(tolich @ 25 Aug 2016, 11:46) *
Нет, не всё, потому что распространение информации полученной путём декомпиляции, незаконно.


Ну James говорит че ему адвокаты сказали че законно если тот у того кто получает инфу уже есть такая игра.

Цитата("James Koppel")
I've discussed this with lawyers at the start of the project. I don't want to get into the details. I will say that it is very intentional that Ironfist requires you already have a copy of the game


ЗЫ Хотя надо наверное написать Швейку чтобы про это он тоже написал, что читать статью можно только тем у кого уже есть честно приобретенная копия игры.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 25 Aug 2016, 09:07
Сообщение #19

Невыносимый
Сообщений: 13 893
Спасибо сказали: 26252 раза




Законна декомпиляция части программы, отвечающей за работу с конкретным файлом или протоколом, для того, чтобы обеспечить взаимодействие другой программы с этим файлом или протоколом. Если информация о структуре файла или протоколе не может быть получена другим способом. Распространение тоже возможно только для обеспечения взаимодействия программ. Но ты же собираешься делать аналог, а это уже незаконно. Также незаконной становится и передача тебе этой информации.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
t800
сообщение 25 Aug 2016, 09:19
Сообщение #20

Разработчик
Сообщений: 518
Спасибо сказали: 202 раза




Цитата(tolich @ 25 Aug 2016, 12:07) *
Законна декомпиляция части программы, отвечающей за работу с конкретным файлом или протоколом, для того, чтобы обеспечить взаимодействие другой программы с этим файлом или протоколом. Если информация о структуре файла или протоколе не может быть получена другим способом. Распространение тоже возможно только для обеспечения взаимодействия программ. Но ты же собираешься делать аналог, а это уже незаконно. Также незаконной становится и передача тебе этой информации.


James сказал что для HMM2 работает американский закон, по американскому закону можно если кто читает статью уже купил игру. Вот


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19 September 2019 - 16:12
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика