![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3881
|
|
![]() 😸🧡✊✌️ Сообщений: 16 463 Спасибо сказали: 3363 раза ![]() |
Ну, это ещё и доп. софт тестировать.
-------------------- Я слежу за тобой!
![]() ![]() Цитата Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел. Борис "Бонус" Репетур, "От винта!", выпуск 38. |
|
|
![]()
Сообщение
#3882
|
|
Immortal Сообщений: 1 811 Спасибо сказали: 1018 раз ![]() |
Цитата Я думал что-то более сложное с использованием доп софта А-ля какой-нибудь автоматизатор рутинных игровых задач (мод, автокликер) Автоматизация нужна чаще всего либо для проверки нагрузки или же для регресса - когда после добавления чего-то нового проверяется всё старое автоматом. В этом случае делается авто-проверка и нового, чтобы в следующий раз оно уже проверялось при добавлении ещё более новых фич. Цитата А раз так все легко и просто, чёт резко захотелось стать тестировщиком в HotA, приблизить так сказать выход обновы Тут вся сложность что отчасти это довольно творческая работа, когда надо прокрутить все сценарии в голове и чётко понимать что на что может повлиять, чтобы не перелопачивать однотипные варианты. Неплохо иногда знать как оно работает под капотом, правда это больше зона ответственности самого разработчика для устранения первичных багов ещё на стадии разработки. По сути всё начинается с план-теста, когда описываешь что ты будешь делать и какие результаты должны быть в ходе тех или иных действий. Опять же сложность в том чтобы спланировать и покрыть всю функциональность - условно про птицу с неуязвимостью кроме как проверить что она успешно входит в неуязвимость, проверить что она успешно из неё и выходит. Что учитывается лимит прожатий включая резурект и т.д. |
|
|
![]()
Сообщение
#3883
|
|
![]() HotA Crew Сообщений: 119 Спасибо сказали: 235 раз ![]() |
Цитата А раз так все легко и просто, чёт резко захотелось стать тестировщиком в HotA, приблизить так сказать выход обновы)) Сможете разобрать хотя бы одну строчку? ![]() -------------------- |
|
|
![]()
Сообщение
#3884
|
|
Immortal Сообщений: 1 811 Спасибо сказали: 1018 раз ![]() |
К слову у тестировщиков далеко не всегда есть доступ к кодовой базе и в целом их задача находить баги, при этом они могут не знать как его исправить и почему он происходит.
Баги в этом плане можно разделить на логические и технические - первые это ошибки в общем способе реализации. Пример про птицу логика должна быть примерно такой "Включить неуязвимость - учесть срабатывание для лимита - закончить ход существа / начало нового хода - снять неуязвимость", то есть пропуск любого из действий приведёт к багу. Технические баги связаны с конкретной реализацией - ошибки при работе с памятью, ошибки с переполнением и т.д. Тут конечно стоит знать как оно всё устроено. |
|
|
![]()
Сообщение
#3885
|
|
![]() 😸🧡✊✌️ Сообщений: 16 463 Спасибо сказали: 3363 раза ![]() |
Да, есть тестирование с позиции разработчика, а есть с позиции тестировщика. Тестировщик может и совсем не разбираться в программировании. Но обязан разбираться в предметной области, конечно.
-------------------- Я слежу за тобой!
![]() ![]() Цитата Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел. Борис "Бонус" Репетур, "От винта!", выпуск 38. |
|
|
![]()
Сообщение
#3886
|
|
![]() ---------------------- New_Life_of_Heroes ---------------------- Сообщений: 274 Спасибо сказали: 400 раз ![]() |
Цитата А раз так все легко и просто, чёт резко захотелось стать тестировщиком в HotA, приблизить так сказать выход обновы)) Сможете разобрать хотя бы одну строчку? ![]() Лично меня с навыками чтения и разбора такого (у вас код кстати представлен далеко не в лучшем виде, сложно было скопировать из IDA?) в тестировщики не взяли - Доцент мне тогда намекнул, что такие люди команде совершенно ни к чему, т.к. на вес золота именно тру-программисты на СИ/СИ++. Ну может сейчас что-то изменилось, но вряд ли... Задача тестера - найти ошибку в самой игре, а не ковыряться в ассемблерном коде. Т.е. где-то вылетело - тестер обязан сообщить об этом и приложить логи об ошибке с информацией о том, когда, где и почему, чтобы программист смог повторить ошибку у себя (при этом описание порядка действий игрока очень важен). Поэтому главный ресурс тестера - огромное количество свободного времени и желание проходить одну и туже карту по 20 раз, что сможет далеко не каждый. -------------------- WoG + MoP + HoA + Forge + Bastion = ERA+
|
|
|
![]()
Сообщение
#3887
|
|
![]() Дождался фабрики Сообщений: 234 Спасибо сказали: 471 раз ![]() |
Цитата А раз так все легко и просто, чёт резко захотелось стать тестировщиком в HotA, приблизить так сказать выход обновы)) Сможете разобрать хотя бы одну строчку? ![]() |
|
|
![]()
Сообщение
#3888
|
|
![]() допустим, мяў Сообщений: 24 113 Спасибо сказали: 13422 раза ![]() |
Сможете разобрать хотя бы одну строчку? Аж в душе защемило. На минуту вернулся в свои беззаботные годы ранней юности... В 97-й где-то ))![]() Правда, тогда movl и pushl не было, но это по контексту понятно! -------------------- Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская) |
|
|
![]()
Сообщение
#3889
|
|
![]() Immortal Сообщений: 591 Спасибо сказали: 984 раза ![]() |
Лично меня с навыками чтения и разбора такого (у вас код кстати представлен далеко не в лучшем виде, сложно было скопировать из IDA?) в тестировщики не взяли - Доцент мне тогда намекнул, что такие люди команде совершенно ни к чему, т.к. на вес золота именно тру-программисты на СИ/СИ++. И поэтому можно брать ресурсы Хоты без разрешения команды... Данное осуждение Доцента выглядит странным. Кого привлечь к разработке модификации должна решать команда разработчиков, а не люди в неё не входящие. Если отказали в тестировании, значит по крайней мере на тот момент не было такого запроса внутри команды и Доцент это озвучил. |
|
|
![]()
Сообщение
#3890
|
|
![]() ---------------------- New_Life_of_Heroes ---------------------- Сообщений: 274 Спасибо сказали: 400 раз ![]() |
И поэтому можно брать ресурсы Хоты без разрешения команды... Смысл спрашивать разрешение, если на 100% известно, что команда такого разрешения не даст, что даже было добавлено в FAQ? Данные ресурсы из Heroes of Might and Magic 3 используются в разных модах под VCMI, MoP, ERA. Участники HotA Crew могут только договариваться с моддерами о том, чтобы копирование графики с архивов HoA было как можно меньше, но запретить это дело не возможно. Особенно, когда вместо попыток договориться идут в ход требования удалить всю графику - я такое обычно игнорирую, т.к. подобные двойные стандарты меня не устраивают (почему на VCMI Причал никто не требует удалить, а вот в ERA, куда он был скопирован как раз с VCMI, он почему-то недопустим?). Доцент обосновал это только договорённостями с VCMI Team, но и даже подключение архивов HoA к ЭРЕ он запретил (хотя VCMI без проблем использует контент HoA без установленной HoA). Сам мод под под ЭРУ не называется "Horn on the Abyss", т.к. ваш продукт целиком не был портирован с силу отсутствия исходных кодов, хотя на VCMI и название мода тоже сохранено. Лично меня связывает только отрицательный опыт общения с Доцентом, мне всё равно что обо мне думают в HotA Crew, а что-то менять уже поздно, т.к. Причал давно встроен в ЭРА Крест и является её неотделимой частью. Данное осуждение Доцента выглядит странным. Кого привлечь к разработке модификации должна решать команда разработчиков, а не люди в неё не входящие. Это не осуждение, а констатация действительного положения дел (по крайней мере на тот момент 5 лет назад), когда в списке, составленном командой, нуждающихся №1 - программисты на СИ. Лично я в создании модов не использую СИ (тот же Причал на ЭРЕ Крест добавлен в игру только с помощью чистого Ассемблера, а графика с хотовского формата в содовский была конвертирована софтом написанном на Дельфи), поэтому пользы от меня в команде не будет. Ну а тестеров, ещё и разбирающихся в IDA-базе игры, тогда наверное было предостаточно. -------------------- WoG + MoP + HoA + Forge + Bastion = ERA+
|
|
|
![]() ![]()
Сообщение
#3891
|
|
Silent One Сообщений: 91 Спасибо сказали: 56 раз ![]() |
Цитата А раз так все легко и просто, чёт резко захотелось стать тестировщиком в HotA, приблизить так сказать выход обновы)) Сможете разобрать хотя бы одну строчку? ![]() Авторы оригинальной статьи сидят под линуксами, пользуются gas, поскольку AT&T синтаксис. В середине либо сделали хук, либо выравнивание до 8 байт, потому что jmp и пачка nop-ов. Извините, не смог удержаться, сам с похожим извратом, только под mingw, развлекаюсь. -------------------- All this moments will be lost in time...
|
|
|
![]()
Сообщение
#3892
|
|
![]() HotA Crew Сообщений: 119 Спасибо сказали: 235 раз ![]() |
Ну и душнилово. Я имел ввиду что программист зачастую отладкой и тестировкой своего кода (сопряженного с кодом игры) занимается, либо думает как поставить хук и т.д....
Отдельно есть люди, которые занимаются тестировкой, имея в общих чертах представления о технических тонкостях. Они сообщают в процессе геймплея что нашли баг, программисты идут смотреть что и как. Извиняюсь, что не уточнил о какой именно тестировке идёт речь. Знать ассемблер при этом обязательно, писать на нем — в большинстве случаев не нужно. Основной инструмент - язык программирования С++. -------------------- |
|
|
![]()
Сообщение
#3893
|
|
![]() ---------------------- New_Life_of_Heroes ---------------------- Сообщений: 274 Спасибо сказали: 400 раз ![]() |
Я имел ввиду что программист зачастую отладкой и тестировкой своего кода (сопряженного с кодом игры) занимается, либо думает как поставить хук и т.д.... Насколько слышал, этим занимаются кодеры. Высокоуровневый программист пишет на СИ и тратит своё ценное время только на написание кода на СИ, совершенно не связываясь с Ассемблером, обратной разработкой и другими низкоуровневыми вещами (в современных версиях СИ те же ассемблерные вставки запрещены). Для хуков под СИ вообще у вас есть патчер Бараторча, где думать о том как правильно организовать хук так чтобы ничего не сломать, программисту не нужно. Ну и IDA может выдавать вполне себе СИ-шный код, как раз для тех, кто не дружит с Ассеблером. Так же можно переписывать на СИ геройские функции целиком (в HD-моде это очень активно используется), тогда и думать про хуки и низкоуровневый код вообще не нужно. Знать ассемблер при этом обязательно, писать на нем — в большинстве случаев не нужно. Основной инструмент - язык программирования С++. Ну за 20 лет истории моддинга HoMM3 можно же было уйти от использования Ассемблера на всех модифицируемых функциях кода игры совсем, разве нет? При том, что объём hota.dll скорее всего превышает объём кода h3hota.exe, т.е. перехвачено и изменено огромное количество функций? -------------------- WoG + MoP + HoA + Forge + Bastion = ERA+
|
|
|
![]()
Сообщение
#3894
|
|
![]() HotA Crew Сообщений: 119 Спасибо сказали: 235 раз ![]() |
Переписывать целые функции целиком зачастую очень муторная работа. Гораздо проще поставить лоухук, который требует знания ассемблера, а еще нужно продумать стратегию куда и как его ставить. Лоухук это зачастую маленький кусочек кода, который ты впихиваешь в нужное место и он изменяет поведение функции, напоминает склейку магнитной ленты.
Я, например, в основном использую лоухуки, т.к. с ними просто нужно меньше писать. Чтобы переписать полностью функцию(HiHook), требуется эту функцию для начала правильно декомпилировать, а x86 версия героев оптимизирована больше всех. Есть еще вариант не полностью переписывать, а добавить надстройку и в определенных ситуациях вызывать оригинальную функцию, но это другой вид хайхука. Теоретически да, возможно модифицировать игру не зная ассемблера. Все упирается во время и сложность декомпиляции. Я планирую в своей API создать систему, как раз для тех кто не хочет разбираться в ассемблере. Но придется декомпилировать огромное количество функций. Возможно я декомпилирую только самые простые для декомпиляции функции и те, что вероятнее всего станут целью хайхука. Есть ли резон это делать? Однозначно. Просто нужно заготовить всё для этого. Окупается это читабельностью кода, простотой модификации, т.е. гибкостью. В низкоуровневом коде невероятно просто запутаться. Его очень сложно читать и изменять чтобы добавить чего-то нового. ...Проблема в том что еще нет такой API. tl;dr: модифицировать игру без знания ассемблера можно! Просто всё зависит от вашего свободного времени. Я надеюсь мне кто-нибудь поможет в написании API -------------------- |
|
|
![]()
Сообщение
#3895
|
|
Newbie Сообщений: 14 Спасибо сказали: 4 раза ![]() |
Цитата К тому же версия 1.7 станет в своем роде "большой уборкой" для Hota. Многие вещи в предыдущих версиях, что уже были реализованы обходными путями или через так называемые "костыли" получают новую, более правильную реализацию. Причем это касается не только кода, но и графики (да, некоторый удаленный из редактора карт "некачественный" контент вернется в игру в обновленном качестве. Да, я говорю в том числе и про наборы красных деревьев). Насколько данные изменения скажутся на совместимости с картами под старые версии? |
|
|
![]()
Сообщение
#3896
|
|
![]() ---------------------- New_Life_of_Heroes ---------------------- Сообщений: 274 Спасибо сказали: 400 раз ![]() |
Есть ли резон это делать? Однозначно. Просто нужно заготовить всё для этого. Окупается это читабельностью кода, простотой модификации, т.е. гибкостью. Думаю, что это очень затратно по сравнению с выгодами. Лучше развивать какую-нибудь существующую платформу для моддинга, чем начинать всё заново на SoD. Например довести до ума наработки Кавалериста? В низкоуровневом коде невероятно просто запутаться. Его очень сложно читать и изменять чтобы добавить чего-то нового. То, что разобрано в IDA-базе, читать и изменять не составляет особого труда. С тем, что не разобрано - сложно, но дело продвигается несмотря на разобщённость людей, которые этим занимаются. Возможно когда-нибудь кто-нибудь сможет собрать IDA-базу со 100% разобранным кодом, но пока до этого далековато (судя по тому, что находится в свободном доступе, т.к. на руках у людей могут находится более полные базы, которые они не выкладывают). -------------------- WoG + MoP + HoA + Forge + Bastion = ERA+
|
|
|
![]()
Сообщение
#3897
|
|
![]() HotA Crew Сообщений: 119 Спасибо сказали: 235 раз ![]() |
Цитата То, что разобрано в IDA-базе, читать и изменять не составляет особого труда. Нееет, я про кодовую базу мода, а не про уже давно скомпилированный код игры. Цитата Лучше развивать какую-нибудь существующую платформу для моддинга, чем начинать всё заново на SoD. Нет, не лучше. У меня уже много чего готово, мне просто напросто нужно всё это дело скомпоновать. -------------------- |
|
|
![]()
Сообщение
#3898
|
|
![]() Тень исчезающая в полдень Сообщений: 168 Спасибо сказали: 231 раз ![]() |
Находим функцию в таблице экспорта/импорта добавляем свою в самый конец pe и перетираем адрес оригинальной... и вызывается наша функция. При желании можно даже указать адрес возврата на оригинальную.
|
|
|
![]()
Сообщение
#3899
|
|
![]() Дождался фабрики Сообщений: 234 Спасибо сказали: 471 раз ![]() |
|
|
|
![]()
Сообщение
#3900
|
|
Immortal Сообщений: 6 825 Спасибо сказали: 8032 раза ![]() |
Цитата К тому же версия 1.7 станет в своем роде "большой уборкой" для Hota. Многие вещи в предыдущих версиях, что уже были реализованы обходными путями или через так называемые "костыли" получают новую, более правильную реализацию. Причем это касается не только кода, но и графики (да, некоторый удаленный из редактора карт "некачественный" контент вернется в игру в обновленном качестве. Да, я говорю в том числе и про наборы красных деревьев). Насколько данные изменения скажутся на совместимости с картами под старые версии? Для объектов, заменяемых новыми, не скажутся. |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 22 October 2025 - 18:06 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|