Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
serg101188
нет камеру не двигал там вроде ищё чёта на до допиливать в исходниках
Diesel
serg101188, смотри внимательно эти файлы - там зарыта камера.
Actor.cpp
ActorInput.cpp
actor_input_handler.cpp
Actor_Network.cpp
HUDCrosshair.cpp
Inventory.cpp
Weapon.cpp
weapon_dump_impl.cpp
1_A
jamakasi, согласен. но зачем нагружать сервер запросами если можно отключить у клиента ["sender.set_max_reports_per_day( 5 );"] - Breakpad, ресурсы не безграничные.
jamakasi
virus_ua, может найтись хитрая задница которая всеравно будет спамить.
1_A
jamakasi, ну это святое дело biggrin.gif
ForserX
jamakasi, поэтому предлагаю вообще не использовать. Всё равно спрос на движок в наше время весьма мал.
serg101188
Цитата(andreyholkin @ 05.09.2017, 00:35) *
serg101188, смотри внимательно эти файлы - там зарыта камера.
Actor.cpp
ActorInput.cpp
actor_input_handler.cpp
Actor_Network.cpp
HUDCrosshair.cpp
Inventory.cpp
Weapon.cpp
weapon_dump_impl.cpp


ну да ты прав перекинул камерубазу. появился худ оружия.. да и вопщем спасибо за ответ
jamakasi
Цитата(Forser @ 04.09.2017, 22:38) *
jamakasi, поэтому предлагаю вообще не использовать. Всё равно спрос на движок в наше время весьма мал.

Тут скорее не надо его вообще слать кудалибо а сейвить в папочку и по необходимости пользователь сам отправит дамп т.к. один фиг большая часть модоюзеров маломальски продвинута.
А вообще идеальный вариант такой:
1) Игра при краше выплевывает оконце как сейчас с инфой об ошибке. В нем краткая инфа и пометка был ли зафиксирован такой баг или нет и вариант открыть топик.
2) Есть некий форум\сайт где для каждого бага свой топик.
3) Каждый баг метится особым хэшом(вопрос на чьей стороне и по какому критерию).
4) Если пользователь нажал кнопку то открывается браузер с нужным топиком или страница создания такого топика.
5) В случае если баг уже есть то пользователь может почитать методы его решения, и инфу как он возникает. Сам пользователь может дописать последовательность действий при котором баг вылез.

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

Главное решить:
1) как маркировать схожие баги
2) Как приклеивать метаинфу(к примеру хэш геймдаты и бинарников) чтобы было понятно на какой версии он есть и была уверенности что это не юзверь буратино.
Diesel
Цитата(jamakasi @ 05.09.2017, 10:32) *
т.к. один фиг большая часть модоюзеров маломальски продвинута

Цитата(jamakasi @ 05.09.2017, 10:32) *
Сам пользователь может дописать последовательность действий при котором баг вылез.

Не серьёзно. Зачем такой мод, если его надо править юзеру. А если юзер начнёт править, то к тому юзеру, еще десяток более поф.юзеров надо.

Цитата(jamakasi @ 05.09.2017, 10:32) *
Другие смогут подключиться к фиксу этих багов или искать варианты их исправления.

Невозможно. Разный код, разные лог-баги. Я уже пару лет пытаюсь объяснить, что по строке вылета нельзя идентифицировать ошибку. Строки везде разные.
Цитата(jamakasi @ 05.09.2017, 10:32) *
Главное решить:
1) как маркировать схожие баги
2) Как приклеивать метаинфу(к примеру хэш геймдаты и бинарников) чтобы было понятно на какой версии он есть и была уверенности что это не юзверь буратино.

Маркировать только в новом движке можно, прописывая заново идентификатор в исходники.

Всё, что сделано ранее - это не серьёзно и не правильно.
ForserX
Цитата(andreyholkin @ 05.09.2017, 09:46) *
Не серьёзно. Зачем такой мод, если его надо править юзеру. А если юзер начнёт править, то к тому юзеру, еще десяток более поф.юзеров надо.

У нас тут речь о баг-репорте движка, а не моде.

Цитата(andreyholkin @ 05.09.2017, 09:46) *
Не серьёзно. Зачем такой мод, если его надо править юзеру. А если юзер начнёт править, то к тому юзеру, еще десяток более поф.юзеров надо.

У нас тут речь о баг-репорте движка, а не моде.
Diesel
Forser, есть в движке безлоговые вылеты - вот ими и надо заниматься.

А в остальном - того достаточно, что есть.
ForserX
Цитата(andreyholkin @ 05.09.2017, 10:27) *
А в остальном - того достаточно, что есть.

Да что ты говоришь?
Trollz0r
А сталкир умеет высчитывать crc для архивов .db?
Zagolski
Я пользуюсь июльским 2016 перехватчиком от alpet, ничего лучше в плане отлова ошибок я не встречал. Все эти баг-трапы и иже с ними - даже близко рядом с ним не стояли.
Одно плохо, его приспособить к движку непросто, требуется значительная переделка xrDebugNew.cpp и не только.
ForserX
Zagolski, дебаггер студии ванлав.
Zagolski
Ошибки в скриптах тоже студией отлавливаешь?
ForserX
Zagolski, со скриптами не работаю сейчас.
Xottab_DUTY
RedPython, ну... Собсна, crc32 высчитывать умеет. Если не умеет высчитывать для архивов, думаю, несложно будет прикрутить считалочку для архивов..
Молния в вакууме
Цитата(Zagolski @ 05.09.2017, 12:33) *
Я пользуюсь июльским 2016 перехватчиком от alpet, ничего лучше в плане отлова ошибок я не встречал. Все эти баг-трапы и иже с ними - даже близко рядом с ним не стояли.
Одно плохо, его приспособить к движку непросто, требуется значительная переделка xrDebugNew.cpp и не только.

А что конкретно делает этот перехватчик? Отладчик скриптов у сталкера родной есть - xrScriptDbgIde. Функции для прямой работы с памятью в ЛУА это изврат.
Zagolski
Как что, ошибки показывает. Если скриптовые, то в каком скрипте в какой ф-ции или строке, а также всю предыдущую веретеницу вызовов, штук десять. А если движковая - то в каком срр на какой строке. Ну и в отдельной консоли всю работу отображает прямо на ходу, что очень удобно: в окне игру запустил, а рядом у тебя все процессы тут же отображаются. Я как-то после него багтрап использовал, когда с чистым ЗП двигом работал, так сразу остался как без рук и глаз...
Ну а более подробную информацию (как устроен и т.д.) может только сам alpet рассказать. Знаю только, что для его работы нужны в том числе .pdb и .map файлы движковых файлов.
Молния в вакууме
Зачем alpet'а беспокоить, есть же исходники. smile.gif
https://github.com/alpet83/Lua-Interceptor
Diesel
Простите меня великодушно, что вмешиваюсь в вашу беседу.
Подскажите пожалуйста, ни кто случайно не выводил из движка поддержку пиксельного шейдера, для псевдо-анимации траков танка?
Я так понимаю это с директом связано. За десять лет никто, что ли, не сообразил это сделать?
Я не программист, а больше люблю работать киркой, потому представляю слабо, куда копать.
1_A
jamakasi, нет моддинг форумов таких где можно было бы такое нормально организовать. единственное что можно сделать это либо отсылка в стиле "отправьте в наш топик", что на самом деле не удобно (директ деливери ту деверлопер - лучше), хотя и дискассы тоже нужны ибо юзеры иногда решают проблемы быстрее чем разрабы. А про хеш геймдаты мысль интересная [проверять я ее конечно не буду biggrin.gif ] ибо это отсеит часть % вылетов, которые не относятся к основе проекта.
jamakasi
Цитата(virus_ua @ 05.09.2017, 17:53) *
нет моддинг форумов таких где можно было бы такое нормально организовать. единственное что можно сделать это либо отсылка в стиле "отправьте в наш топик",

Олегатора попросить чтобы выделил топик и примитивный api к нему biggrin.gif. Тема на баг, закрыл тему и приклеил решение для будущих поколений кто пойдет по стопам.
Trollz0r
Цитата(andreyholkin @ 05.09.2017, 12:48) *
ни кто случайно не выводил из движка поддержку пиксельного шейдера, для псевдо-анимации траков танка?
Лучше бы сделали условия для создания скелетной анимации траков (починить плагин, увеличить макс. кол-во костей до 100500, сделать так, чтобы двиг жрал модели по 50тыс поликов...). 2018 год на носу всё-таки, пора бы уже забыть про анимированные текстурки.
SkyLoader
Цитата(RedPython @ 06.09.2017, 08:25) *
увеличить макс. кол-во костей до 100500

Чтобы видеокарта подавилась шейдерными регистрами при скиннинге smile.gif

Цитата(andreyholkin @ 05.09.2017, 12:48) *
ни кто случайно не выводил из движка поддержку пиксельного шейдера, для псевдо-анимации траков танка?

Если бы сталкеру это было необходимо, то давно бы сделали. А так, вряд ли кому-то это надо.
Trollz0r
Цитата(SkyLoader @ 06.09.2017, 07:18) *
Чтобы видеокарта подавилась шейдерными регистрами при скиннинге smile.gif
Зато каааак крууууто будет смотреться летящая по ухабам бмп rolleyes.gif
84 трака, хотя бы по одной кости на пару — и то нужно больше 64 костей в скелете...

Хотя нет, ничего не будет смотреться. Я на секунду почти забыл, какой угробищный в сталкире транспорт smile.gif так что нужно чинить плагин и разбираться с шайтан-сглаживанием в движке, чтобы лепить мидл-поли модели как статичную геометрию.
K.D.
Цитата(SkyLoader @ 06.09.2017, 10:18) *
Чтобы видеокарта подавилась шейдерными регистрами при скиннинге

Цитата(RedPython @ 06.09.2017, 11:35) *
84 трака, хотя бы по одной кости на пару

100 костей потянет даже на dx9.

Цитата(RedPython @ 06.09.2017, 11:35) *
Зато каааак крууууто будет смотреться летящая по ухабам бмп

Мелко берешь. Нужен авианосец в пруду-охладителе около ЧАЭС.
Молния в вакууме
А что если софтварный скиннинг использовать? Правда в ЧН/ЗП там что-то сломали, СДК тормозит.
Trollz0r
Цитата(K.D. @ 06.09.2017, 09:01) *
Мелко берешь. Нужен авианосец в пруду-охладителе около ЧАЭС.
Была ещё идея посадить кровососа на мотоцикл scratch_one-s_head.gif
ForserX
Кто-нибудь бодался с date_time.cpp?
У меня пока черновой вариант такой: https://github.com/ForserX/FRay-Project/blo...e/date_time.cpp
7.9
С "data_time.cpp" не "бодался", но с некоторой скриптовой конвертацией "бодался"...
Скрипт, описание.
ForserX
7.9, меня интересует чисто исходник по данной теме. Мой вариант не конечный, но читабельный, в отличие от варианта Ясеньева(или как там у Dima фамилия)
K.D.
Цитата(saas @ 06.09.2017, 12:11) *
А что если софтварный скиннинг использовать?

Цитата(saas @ 06.09.2017, 12:11) *
Правда в ЧН/ЗП там что-то сломали, СДК тормозит.

Вот это он и тормозит ))
Если без шуток, игра не взлетит с ним все-таки. СДК-то использует потому, что там забили нормальный рендеринг делать в какой-то момент.
А все эти ограничения по регистрам есть только на DX9 (да и то - куда больше 100 костей-то). На DX10+ есть константные буферы и нет проблем.
1_A
Forser, первое правило программиста - "работает - не трогай".
ForserX
virus_ua, я не программист, так что: плевать я хотел.
Молния в вакууме
Цитата(K.D. @ 06.09.2017, 15:27) *
Цитата(saas @ 06.09.2017, 12:11) *
А что если софтварный скиннинг использовать?

Цитата(saas @ 06.09.2017, 12:11) *
Правда в ЧН/ЗП там что-то сломали, СДК тормозит.

Вот это он и тормозит ))
Если без шуток, игра не взлетит с ним все-таки. СДК-то использует потому, что там забили нормальный рендеринг делать в какой-то момент.
А все эти ограничения по регистрам есть только на DX9 (да и то - куда больше 100 костей-то). На DX10+ есть константные буферы и нет проблем.

Полистал исходники, она уже взлетает. wink_old.gif Если регистров не хватает, то используется софтварный скиннинг. В ЗП ещё добавили команду для принудительного включения софтварного скиннинга, но только на R1. Ещё добавили проверку, на видеочипах IntelGMA он тоже включается принудительно.
aka_sektor
Похоже некто реализовал линзу прицела в ТЧ:
->
K.D.
Цитата(saas @ 07.09.2017, 00:37) *
она уже взлетает

Я имел ввиду по скорости. Ты в Баре сравни фпс при включении софтварного и хардварного скиннинга.

Цитата(saas @ 07.09.2017, 00:37) *
Если регистров не хватает, то используется софтварный скиннинг.

Это где такие модели в сталкире, что не хватает регистров? Есть ли реальный пример, а не "в принципе, предусмотрено"?
Молния в вакууме
Цитата(K.D. @ 07.09.2017, 00:40) *
Я имел ввиду по скорости. Ты в Баре сравни фпс при включении софтварного и хардварного скиннинга.

В Зове Припяти заспаунил 30 сталкеров, с r1_software_skinning 1 фпс 20-25, с r1_software_skinning 0 фпс 45-50.
Я думаю один танк должно потянуть в случае чего.

Цитата(K.D. @ 07.09.2017, 00:40) *
Это где такие модели в сталкире, что не хватает регистров? Есть ли реальный пример, а не "в принципе, предусмотрено"?

Так это же не только от модели зависит, а ещё от возможностей видеокарты.
На видеокартах которые могут запускать хотя-бы второй рендер точно нет.
K.D.
Цитата(saas @ 07.09.2017, 14:39) *
В Зове Припяти заспаунил 30 сталкеров, с r1_software_skinning 1 фпс 20-25, с r1_software_skinning 0 фпс 45-50.

ФПС вдвое упал. Т.е., не взлетает.

Цитата(saas @ 07.09.2017, 14:39) *
Так это же не только от модели зависит, а ещё от возможностей видеокарты.

Ограничения по регистрам распространяются строго на одну модель за dip. Если костей меньше 64 (оригинальный движок), видеокарта, поддерживающая dx9, отрисует модель, какая бы она (видеокарта) ни была. Просто по спецификации.
Молния в вакууме
Цитата(K.D. @ 08.09.2017, 02:17) *
ФПС вдвое упал. Т.е., не взлетает.

Так это же сталкеры с 3-мя а то и 4-мя костями на вершину, с танком всё должно быть гораздо лучше.

Цитата(K.D. @ 08.09.2017, 02:17) *
Ограничения по регистрам распространяются строго на одну модель за dip. Если костей меньше 64 (оригинальный движок), видеокарта, поддерживающая dx9, отрисует модель, какая бы она (видеокарта) ни была. Просто по спецификации.

Для vs_2_0 нужно минимум 256 регистров, а для vs_1_1 96. Первый рендер использует первую шейдерную модель, я напомню.
ForserX
Разговор интересный, но вопрос такой: кто-то расширял лимит? Если да, в какой стороне смотреть?
abramcumner
Цитата(Forser @ 08.09.2017, 14:35) *
Разговор интересный, но вопрос такой: кто-то расширял лимит? Если да, в какой стороне смотреть?

КД же все написал. Регистры/шейдеры пока можно не трогать - их еще на пару десятков костей хватит и так.
Можно начать с маски видимости костей. Вот там действительно лимит 64. Поменять на какой-нибудь стд::битсет и тому подобное.

Ну и если что, модели пока не выбрали лимит и в 64 кости.

Вообще где-нибудь гусеницы на костях делаются? Это же тупо, тем более в 2017 smile.gif
ForserX
Цитата(abramcumner @ 08.09.2017, 14:56) *
Ну и если что, модели пока не выбрали лимит и в 64 кости.

У меня аниматору нужно 72 кости для нового скелета НПС.

Цитата(abramcumner @ 08.09.2017, 14:56) *
Можно начать с маски видимости костей. Вот там действительно лимит 64. Поменять на какой-нибудь стд::битсет и тому подобное.

Ладно, поищу.
Trollz0r
Цитата(abramcumner @ 08.09.2017, 12:56) *
Вообще где-нибудь гусеницы на костях делаются? Это же тупо, тем более в 2017 smile.gif
Для игор других способов анимировать подобные вещи вроде как и нет. Вот в майе да, можно и голый меш анимировать, и симуляцию с любой физикой сделать (физикс, буллет/дмм)
abramcumner
Цитата(RedPython @ 08.09.2017, 20:57) *
Для игор других способов анимировать подобные вещи вроде как и нет. Вот в майе да, можно и голый меш анимировать, и симуляцию с любой физикой сделать (физикс, буллет/дмм)

Ну не знаю... Кости цепляешь к каткам, физикой обсчитываешь как они шевелятся, а траки наматываешь на них в шейдерах с натяжением/провисанием и прочим, что там у них бывает.
jamakasi
Цитата(abramcumner @ 08.09.2017, 22:01) *
Ну не знаю... Кости цепляешь к каткам, физикой обсчитываешь как они шевелятся, а траки наматываешь на них в шейдерах с натяжением/провисанием и прочим, что там у них бывает.

Слишком сложно, во всех играх делают в разы проще и красивее. Реализуют curves, по этим курвам пускают движение модели трака. Курву деформируют по привязке к "колесам" в гусенице снизу(часть которая касается к земле) а верхняя тупо по 1 кости с тяжестью. Чтобы лучше понять как это вылядит посмотри ролик ниже с 5:20
abramcumner
Цитата(jamakasi @ 08.09.2017, 23:35) *
Слишком сложно, во всех играх делают в разы проще и красивее. Реализуют curves, по этим курвам пускают движение модели трака. Курву деформируют по привязке к "колесам" в гусенице снизу(часть которая касается к земле) а верхняя тупо по 1 кости с тяжестью. Чтобы лучше понять как это вылядит посмотри ролик ниже с 5:20

smile.gif Да, нет. Делают еще проще: рисуют овал, а потом рисуют остальную часть гусеницы.
mortan
объясните плиз, или подскажите литературу дабы я смог сам понять - добавил я новое поле в Actor.h , сделал его публичным, далее мне нужно поменять его значение в actor_communication.cpp в функции bool CActor::OnReceiveInfo(shared_str info_id) const. Хеадер подключен, но насколько я понимаю у меня не получается ничего использовать из класса актора внутри CActor::OnReceiveInfo из-за того что в конце функции написано "const". Что мне в этом случае делать?)
В голову приходит только убрать const
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.