Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

DF2 :: ФОРУМЫ _ Heroes of Might & Magic III _ Девятый игрок

Автор: FCst1 07 Oct 2009, 17:38

Думаю, что уже давно ни для кого не секрет, что NWC планировали сделать в HMMIII не 8, а 9 (а может и больше) игроков. http://slil.ru/28053511. Ещё был скрин из беты с Инферно, где у героя был чёрный флаг.
Так вот, к вопросу - позволяет ли движок Тройки подключить 9-го игрока? Возможно ли это сделать с помощью внешних DLL?

Автор: feanor 07 Oct 2009, 17:58

Черный флаг - ради бога. Если поставить нейтрального героя в битву - он и будет

Для чего золотой флаг в том дефе - сказали.

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

Автор: FCst1 07 Oct 2009, 18:03

Спасибо за разъяснения, но всё-таки в залитом мной файле VwSymbol.def (игроки/ресурсы и т.п. при просмотре земли) присутствует именно игрок с чёрным флагом.

Автор: Docent Picolan 07 Oct 2009, 23:15

он нейтрал.

Автор: FCst1 08 Oct 2009, 06:23

Docent, не срывай мне мозг... Может быть нейтральный герой на карте?

Автор: feanor 08 Oct 2009, 06:50

Ну хоссподи. Для дебага, скажем этот флаг. Или для обработки исключтельных ситуаций.

Я в дампах прошивок телефонов видел иконки, скажем, гпс и бт, хотя ни того, ни другого не было на железном уровне. А в ресурсах ХоММ2 - анимацию получения урона в стиле ХоММ1

Автор: FCst1 08 Oct 2009, 07:27

Ну ладно, допустим разобрались.

Добавлено ([mergetime]1254976065[/mergetime]):
Ну а про внедрение нового?

Автор: Nestor 08 Oct 2009, 09:59

Цитата
Ну а про внедрение нового?

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

Собственно в этом и проблема. Чтобы ее решить надо будет покопаться как следует в коде. Следовательно если кто-то это все-таки сделает, то возможны различные проблемы при сетевой игре, ИИ может быть тоже придется менять. Получим цепную реакцию - чтобы добавить еще 8/24/и т.д. игроков нужно
а)перелопатить пол-игры
б)откуда-то набрать цвета для всех этих игроков.

Автор: Bugzy 08 Oct 2009, 10:05

Зачем вообще более восьми игроков? На мой взгляд восемь это уже предел. Я обычно максимум 6 использую, т.к. 8 - муравейник.
Хотя о вкусах не спорят, конечно.

Автор: Docent Picolan 09 Oct 2009, 22:54

Цитата(FCst1 @ 08 Oct 2009, 07:23)
Docent, не срывай мне мозг... Может быть нейтральный герой на карте?

я сократил spiteful.gif

Цитата
Зачем вообще более восьми игроков? На мой взгляд восемь это уже предел. Я обычно максимум 6 использую, т.к. 8 - муравейник.
Хотя о вкусах не спорят, конечно.

согласен. но для тех кто считает, насколько я знаю, основных проблем две
1. большие карты с подземельями где восьми реально может быть мало
2. новые города и конфюкс в том числе, в связи с чем представить на карте все фракция становится невозможным.

Автор: Astaroth 09 Oct 2009, 23:14

Итак мнения разделились. Кому-то кажется, что 8 игроков - это достаточно или даже много, а другим - наоборот, 8 игроков слишком мало. Но все равно как сказал Nestor

Цитата
Собственно в этом и проблема. Чтобы ее решить надо будет покопаться как следует в коде. Следовательно если кто-то это все-таки сделает, то возможны различные проблемы при сетевой игре, ИИ может быть тоже придется менять. Получим цепную реакцию - чтобы добавить еще 8/24/и т.д. игроков нужно
а)перелопатить пол-игры
б)откуда-то набрать цвета для всех этих игроков.

Может и найдутся такие храбрецы, которые таки сделают это и вместо 8 поставят например 16 или еще какое-нибудь число...

Короче. Поживем - увидим

Автор: hippocamus 10 Oct 2009, 00:57

Цитата(FCst1 @ 08 Oct 2009, 06:23)
Docent, не срывай мне мозг... Может быть нейтральный герой на карте?

Может. Сейчас он никак не отображается, но при наведении на его место возникает меч. Не отображается, т.к нет дефа, и нет указания на то, какой деф нужно юзать игре.

Добавлено ([mergetime]1255125457[/mergetime]):
16 было бы самый раз.

Автор: Maestro 10 Oct 2009, 11:39

Мне хватает и 8 laugh.gif
Играл тут в одну карту на 8х игроков, ХЛ, яблоку негде упасть! В общей сложности дня 3 играли, более 40 часов напряженного геймплея! Меч и магию можно было по несколько раз пройти успеть, чем в 1 карту сыграть laugh.gif

Автор: Green Drekon 10 Oct 2009, 12:11

Цитата
Играл тут в одну карту на 8х игроков, ХЛ, яблоку негде упасть! В общей сложности дня 3 играли, более 40 часов напряженного геймплея! Меч и магию можно было по несколько раз пройти успеть, чем в 1 карту сыграть
А что за карта-то?

Автор: Master Of Puppets 10 Oct 2009, 12:19

Смысл в кол-ве игроков >8 будет, наверное, только при одновременном ходе.

Автор: -=Sn@ke=- 10 Oct 2009, 13:23

8 игроков это и так долго. Ходят по пол часа, заразы... А если их будет больше, то можно будет дохаживать и идти купаться, чай пить..готовить, да что хочешь...Как никак час в запасе!

Что касается нейтрала, то пусть он будет нейтралом и всё... Хватит...

Что касается размещения фракций, есть скрипт, который спрашивает, какие замки ставить, а какие нет...

Автор: Лентяй 10 Oct 2009, 16:52

в 5ке даже с 6 игроками можно чай пить...

Автор: Лорд Хаарт 10 Oct 2009, 17:00

Цитата
в 2-ке даже с 6 игроками можно чай пить...
Православный фикс.

Автор: tolich 10 Oct 2009, 18:08

А мне и втроем в троечку на хотсите надоедает ждать, пока все враги походють. Ну и что?

Автор: Black Phantom 10 Oct 2009, 20:06

На сомом деле изначально была четка ситема - 8 игроков на 8 городов, т.е. какждый игрок мог принадлежат к совей фракции. Появление сопряжения (конфлюкса, слияния) внесло некторый дисбаланс в этот процесс. С одной стороный появляется возможность более широкого выбра, а с другой - это слегка нарушает "классичность" игры. Если и имеет смысл создать 9-го героя, то для того, чтобы на карте полноценно присутствовали 9 рас. Т.к. The 3DO Company, к моменту выпуска "Возрождения Эрафии" уже, как мне кажется, подумывала о будущем городе (не важно, о какомsmile.gif), то она вполне могла оставить задел в виде черного флага. А дальше, наверное уперлась в трудность реализации и забросила это дело на раннем этапе.
P.S. Вот если бы было 16 городов и 16 цветов героев, то на карте, скажем 252x252 это было бы интересным зрелищем.

Автор: -=Sn@ke=- 11 Oct 2009, 12:53

Тогда, это действо, будет напоминать улей)))

Автор: hippocamus 11 Oct 2009, 13:32

Цитата(Black Phantom @ 10 Oct 2009, 20:06)
На сомом деле изначально была четка ситема - 8 игроков на 8 городов, т.е. какждый игрок мог принадлежат к совей фракции. Появление сопряжения (конфлюкса, слияния) внесло некторый дисбаланс в этот процесс. С одной стороный появляется возможность более широкого выбра, а с другой - это слегка нарушает "классичность" игры. Если и имеет смысл создать 9-го героя, то для того, чтобы на карте полноценно присутствовали 9 рас. Т.к. The 3DO Company, к моменту выпуска "Возрождения Эрафии" уже, как мне кажется, подумывала о будущем городе (не важно, о какомsmile.gif), то она вполне могла оставить задел в виде черного флага. А дальше, наверное уперлась в трудность реализации и забросила это дело на раннем этапе.
P.S. Вот если бы было 16 городов и 16 цветов героев, то на карте, скажем 252x252 это было бы интересным зрелищем.

По идее сама структура карты позволит сделать 255 игроков +1 нейтрал.
Проблема с битовыми полями однобайтовых структур.

Автор: Black Phantom 11 Oct 2009, 14:46

Цитата(hippocamus @ 11 Oct 2009, 14:32)
По идее сама структура карты позволит сделать 255 игроков +1 нейтрал.
Проблема с битовыми полями однобайтовых структур.

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

Автор: hippocamus 11 Oct 2009, 19:36

А я не понимаю, при чём здесь классы героев? Это типов городов может быть 127, а количество игроков - 255.

Автор: Maestro 11 Oct 2009, 21:16

Цитата(Green Drekon @ 10 Oct 2009, 13:11)
Цитата
Играл тут в одну карту на 8х игроков, ХЛ, яблоку негде упасть! В общей сложности дня 3 играли, более 40 часов напряженного геймплея! Меч и магию можно было по несколько раз пройти успеть, чем в 1 карту сыграть
А что за карта-то?

Арена Смерти

Автор: FCst1 11 Oct 2009, 21:24

Я-то за внедрение 9-го и т.д. игроков, если сделать это не трудно и результат будет востребован. Я смотрю, что нет?

Автор: hippocamus 11 Oct 2009, 21:42

Востребован будет. А вот трудно ли? Тебе виднее!

Автор: FCst1 11 Oct 2009, 21:51

Ну, в связи с развитием технологий (плавный намёк на ЭРУ)... Не мне решать... rolleyes.gif

Автор: hippocamus 12 Oct 2009, 01:26

Не очень понимаю механизм работы Эры - она подменяет обработчики событий игры, или как?

Автор: CrackedMind 13 Oct 2009, 14:16

Цитата(hippocamus @ 12 Oct 2009, 04:26)
Не очень понимаю механизм работы Эры - она подменяет обработчики событий игры, или как?

именно.

ИМХО, добавление 9го игрока будет тяжелой работой. Т.к. очень много однобайтовых битовых полей, придется не только саму игру патчить, но еще и редактор и прочее.

Автор: Архидедус 16 Oct 2009, 19:47

Побочная мысль: в Героях 4 - всего 6 игроков + нейтрал. Сельмой возможен?

Автор: Kastore the Warlock 16 Oct 2009, 23:37

Цитата(Архидедус @ 16 Oct 2009, 20:47)
Побочная мысль: в Героях 4 - всего 6 игроков + нейтрал. Сельмой возможен?

вот нейтрал и был 7ой по сути...

Автор: hippocamus 17 Oct 2009, 00:47

Ну вот и имеется в виду 8-й. Хотя в 3-ке нейтрал считается -1-м (минуспервым).

Автор: Архидедус 17 Oct 2009, 00:53

Да, имелся в виду седьмой цветной игрок. Формулировка кривая.

Автор: Bisik 22 Oct 2009, 23:29

По идее можно сделать скриптом, чтобы было по 2 игрока, но под одним флагом (цветом). Надо убрать (хотя можно и не убирать) ограничения на количество героев и договориться, что вот такими-то замками и такими-то героями управляет этот человек, а вот этими героями и замками управляет другой человек. Пример: Вася выбирает ледяных а Петя - людей. Оба они играют одним цветом, одним игроком, но сначала ходит Вася за ледяных, а когда его герои больше не могут ходить, он не переключая на следующий ход передает правление Пети, и тот ходит за людей. А чтобы не было проблем с ресурсами, можно сделать, что как только игрок выбирает свою часть королевства, скрипт сохраняет в переменные ресурсы другого человека и достает из памяти ресурсы игрока, который сейчас ходит. Пример: Вася ходит, тратит ресурсы, заканчивает ход и передает мышу Пете. Петя выбирает свой замок и комп автоматически загружает те ресурсы, которые Петя оставил с предыдущего хода + то, что он получает в этот ход.
Можно сделать так, хотя легче было бы убрать ограничения на кол-во героев у игроков и дать всем по 2-3 замка с самого начала, если хочется, чтобы на карте было много героев и замков. А играть с другими людми интересно, пока их не больше 3х-4х человек, ИМХО smile.gif

Автор: hippocamus 23 Oct 2009, 19:50

Это совсем не то. Т.б. что они обязательно будут в союзе...

Автор: Bisik 25 Oct 2009, 06:16

Вот и я про то же smile.gif
Насколько я понимаю, чтобы добавить еще игроков, надо будет поменять экзешник?

Автор: Ghost#13 25 Oct 2009, 12:27

Герои 1 - 4 Фракции
Герои 2 - 6 Фракций (? я непомню)) )
Герои 3 - 8 + 1 после клинка.
Вроде четко четное кол-во во всех частях (без аддонов). Добавление 9 будет ещё той морокой.
P.S. Проще Сопряжение убрать и все (кроме любителей сопряжения) будут счастливы.

Автор: gamecreator 25 Oct 2009, 22:18

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

Автор: Aleee 25 Oct 2009, 23:05

Да и еще лучше сделать так, чтобы раком никто не болел.

Автор: tolich 25 Oct 2009, 23:12

Ну, совсем без ограничений не получится, просто рамки будут шире.

Автор: Aleee 25 Oct 2009, 23:28

Долго мы еше будем провозглашать прописные истины? И вообще, насколько вообще реальна задача полностью переписать exe-файл без исходников? По-моему, не очень.

Автор: tolich 26 Oct 2009, 00:59

Довольно-таки реальна...
1) Пишешь исходники.
2) Запускаешь make.
3) Получаешь exe-файл.
4) ...
5) Profit!

Автор: САТУРН 01 Nov 2009, 20:05

Не всё так реально как кажеться.

Автор: Adept 19 Nov 2009, 17:29

Цитата(Docent Picolan @ 10 Oct 2009, 01:54)
согласен. но для тех кто считает, насколько я знаю, основных проблем две
1. большие карты с подземельями где восьми реально может быть мало
2. новые города и конфюкс в том числе, в связи с чем представить на карте все фракция становится невозможным.

1. На самом деле ничего не изменится и при добавлении. Большие карты играются ради интереса, чтобы можно было дольше её исследовать. Увеличение плотности игроков породит лишь ещё желание увеличить карту и дальше чувствовать себя первооткрывателем.
2. Вот этот довод мне всегда казался высосаным из пальца. Полно игр в которых игроков может быть меньше, чем рас: Цивилизация, Эпоха Империй, Казаки, Райс оф Нейшен и т.п. Никогда это не мешало. И при этом, в Героях как раз каждая раса может быть представлена на одной карте, хоть там и вовсе один игрок.

Лично мне дополнительные игроки иногда бывают нужны при создании кампаний, когда надо чтобы были союзники, разные враги, не способные обмениваться армиями, и, например, какой-нибудь цвет не должен быть занят, поскольку он закреплён за какой-то фракцией в данной карте не появляющейся.

Автор: Odin 11 Jan 2016, 15:11

Решился в первый раз поиграть на G карте. Там мне кажется 8 игроков маловато.
ЗЫ а в чем проблема 1 байт переделать в 2 байта? Дизассемблировать заменить в нужных местах db на dw. Мест много - ну дак п*ть не мешки ворочать=D
До 16 игроков можно увеличить. Но 16 многовато пока, однако задел будет. 8 уже маловато для таких больших карт как G, а представьте, если подземелье будет?

Автор: feanor 11 Jan 2016, 17:30

Цитата
ЗЫ а в чем проблема 1 байт переделать в 2 байта? Дизассемблировать заменить в нужных местах db на dw. Мест много - ну дак п*ть не мешки ворочать=D

Угу, и полетят к чертовой матери все смещения дальше по сегменту.
Опуская чисто технические трудности, да.

Автор: Odin 11 Jan 2016, 19:22

Цитата(feanor @ 11 Jan 2016, 17:30) *
Цитата
ЗЫ а в чем проблема 1 байт переделать в 2 байта? Дизассемблировать заменить в нужных местах db на dw. Мест много - ну дак п*ть не мешки ворочать=D

Угу, и полетят к чертовой матери все смещения дальше по сегменту.
Опуская чисто технические трудности, да.

Если смещения через offset высчитываются, то нет не полетят. Я не думаю, что статические адреса там. Если так - то да все плохо.

Автор: hippocamus 11 Jan 2016, 19:37

Они высчитываются через offset, не всегда от начала структуры. И не всегда явно.

Автор: Odin 11 Jan 2016, 19:45

Цитата(hippocamus @ 11 Jan 2016, 19:37) *
не всегда от начала структуры.

Ну это нормально, пусть первые 8 бит у нас так и останутся их адреса будут нормально высчитываться(не читал код потому ничего сказать не могу)
Для вторых 8 бит, придется посмотреть и продублировать обращения по адресам, где это есть.
Цитата(hippocamus @ 11 Jan 2016, 19:37) *
не всегда явно

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

Автор: Скорпион 11 Jan 2016, 19:59

тут у нас новый великий программист появился ?

Автор: feanor 11 Jan 2016, 20:02

Цитата
Если смещения через offset высчитываются, то нет не полетят. Я не думаю, что статические адреса там. Если так - то да все плохо.
Эм.
Пусть у нас есть структура карты, которая лежит в гейменеджере с оффсетом пусть 2000h, и занимает 1000h. До нее лежат какие-то данные, после нее лежат какие-то данные.
Если мы произвольно увеличиваем её объем (пусть нам надо для восьми игроков еще 200h байт), то нам надо двигать все данные, которые лежат после нее — вверх.
Впрочем, основная проблема не в этом (ну изменить способ обращения, дялов-то), проблема в том, что обращений таки до усрачки и местами они будут сильно неочевидны.

Автор: Odin 11 Jan 2016, 20:10

Цитата(Скорпион @ 11 Jan 2016, 19:59) *
тут у нас новый великий программист появился ?

=(
Что ж так сразу. Я написал, код не видел. Потому всех сложностей в отличие от вас не вижу. Что подумал, то и высказал. Если человеку интересно поглядеть и разобраться в какой-то проблемы. Тем более попытаться вам помочь, если не нужно вам больше 8 игроков - ну не нужно, я для себя попробую разобраться поглядеть, что сразу огрызаться-то.
Цитата
Впрочем, основная проблема не в этом (ну изменить способ обращения, дялов-то), проблема в том, что обращений таки до усрачки и местами они будут сильно неочевидны.

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

Автор: Скорпион 11 Jan 2016, 20:11

Odin,а разве я говорю из сарказмом ? Может ты реально там что-то шаришь ,а новые люди с какими-то знаниями не помешают ,лично я можно сказать бесполезный тут ,просто сижу и читаю ,что обсуждают знатоки ,массовка кароч

Автор: Odin 11 Jan 2016, 20:28

Цитата(feanor @ 11 Jan 2016, 20:02) *
Цитата
Если смещения через offset высчитываются, то нет не полетят. Я не думаю, что статические адреса там. Если так - то да все плохо.
нам надо двигать все данные, которые лежат после нее — вверх

Зачем вверх? Пусть так же лежат после.

Автор: feanor 11 Jan 2016, 20:48

Окау, и откуда тогда будут браться дополнительные данные?

Автор: Odin 11 Jan 2016, 20:54

Цитата(feanor @ 11 Jan 2016, 20:48) *
Окау, и откуда тогда будут браться дополнительные данные?

Мб я не правильно вас понял.
Допустим у нас есть данные до структуры карты(x) и после(y).
Нам не принципиально(насколько я понял) увеличить размер структуры карты + 200h
Обращение к адресам данных у у нас будет все равно рассчитываться, что-то типа
offset [x-y], ну или что-то типа такого. mov ebx, NameY
Или я где-то не так вас понял?

Автор: hippocamus 11 Jan 2016, 21:00

feanor
ну, таблицу перенести по другому адресу - как обычно делают...

Цитата(Скорпион @ 11 Jan 2016, 19:59) *
тут у нас новый великий программист появился ?
Знаешь, годами на форуме говорили, что увеличить разрешение игры невозможно! пришёл бараторч, который об этом не знал - и сделал! Новые мозги - здорово!

Автор: feanor 11 Jan 2016, 21:01

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

Автор: hippocamus 11 Jan 2016, 21:14

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

Автор: Kastore 11 Jan 2016, 21:31

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

Да и, говоря по правде, ещё +2 игрока - это уже очень вряд ли мультиплеер. Я себе и 8 человек слабо представляю. Но для потенциально сингловых карт это было бы очень даже хорошо. Вот недавно товарищ нарисовал карту Антагарича для Хоты, и там приходится выбирать - какие два замка из 10 оставить нейтралами.

Автор: Скорпион 11 Jan 2016, 21:39

Цитата(hippocamus @ 11 Jan 2016, 20:00) *
Цитата(Скорпион @ 11 Jan 2016, 19:59) *
тут у нас новый великий программист появился ?
Знаешь, годами на форуме говорили, что увеличить разрешение игры невозможно! пришёл бараторч, который об этом не знал - и сделал! Новые мозги - здорово!

Я же не спорю ))) Гляди и этот что-то откроет )))

Автор: hippocamus 11 Jan 2016, 22:39

Цитата(Kastore @ 11 Jan 2016, 21:31) *
Я себе и 8 человек слабо представляю.
Ну, с одновременным ходом - уже легче будет. А со временем, думаю, и вообще найдётся метод до конца идти одновременно.

Автор: igrik 12 Jan 2016, 15:33


Автор: Odin 10 Jan 2018, 11:27

Мб кому интересно будет, занимался дизассемблированием и изучением месяца 2-3 героев в попытке добавить 9 игрока. Успехи были, но их прям скажем было очень мало. Спустя почти год тяжело вспомнить какие-то мелочи.
Но, по факту, основная проблема - это просто ОГРОМНОЕ количество не очевидных и хитровымученных обращений к объектам игрокам.
Понял так же, почему будет проблема со сдвигами адресов, к сожалению компиляторы 90-х были оч крутыми) Ну, или сразу так круто код писали программисты)
Какого-то простого решения я не нашел, а сложные - слишком геморройные=(

Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)