Перейти к контенту

Прозекторская


Рекомендуемые сообщения

@Dennis_Chikin, поэтому все пишется от меньшего к большему, по цепочке рекурсии спускаешься на самое дно и начинаешь разбираться. По другому и не выйдет я думаю. Сам smart_terrain это просто скрипт-делегат, для меня он был не сложен наверное потому что я сначала скурил весь xr_gulag. Но честно говоря лучше конечно заняться самому написанием этой эпопеи, другой вопрос есть ли у человека желание.

Поделиться этим сообщением


Ссылка на сообщение

Для тех кто хочет заняться посоветую порядок (так делал я, и так на мой взгляд (который опирается на движок) верно):

 

курим xr_gulag

smart_terrain (в целом можно попутно с xr_gulag)
se_respawn
se_что-то_там
--// по желанию менеджеры под обновленные se_что-то_там (сюда же выплывает xr_sound)
smart_terrain_params
xr_gulag
gulag_general
gulag_что-то_там
xr_logic
gulag_tasks
--// дальше аи-схемы в которых тоже много чудесного
Вообще до самого старта игры (Intro start) пишется всякая поведенческая фигня, и еще цепляется on demand сюжетная требуха, она в каждом моде (сюжетном) я предполагаю будет уникальной. И эта поведенческая фигня я точно не понял, то-ли у меня комп слабый и он просто все прогрузить не успевает, то-ли так действительно есть, нужно тестировать на многих компах с разным железом, а у меня такой возможности нет, так что пока точно сказать не могу как все реально там грузится. Попрошу своих тестеров скинуть логи с такой инфой, если что-то будет отличатся от моего - отпишу.

Поделиться этим сообщением


Ссылка на сообщение

 

 

Я ничего не понял.

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

 

xr_sound - не нужен, но по порядку он стоит именно там, справедливости ради я должен был упомянуть, это все правится по желанию.

Поделиться этим сообщением


Ссылка на сообщение

@Dennis_Chikin, а причем тут вообще движок? Я про скрипты пишу. Про движок я помянул указывая на то, что все это я не с потолка беру. И кстати тестеры мне скинули логи, у них тоже самое, видимо так сделана архитектура скриптов, и на нее как минимум надо ориентироваться.


А на деле наверное надо вообще смарткаверы написать, по оказии, но сейчас не до АИ, хотя монстров потихоньку правлю, там не сильно времязатратно.

Поделиться этим сообщением


Ссылка на сообщение

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

 

В любом случае все эти системы теряют всякий смысл ровно на этом (если, конечно, понятие "новый" движок я верно для себя растрактовал):

Я кстати пытался Судьбу Зоны на новый движок пересадить) после всяческих танцев с бубном по обрывочным или просто отсутствующим инструкциям, игра рушится с нигде не описанными, неинформативными вылетами.

 

Не говоря о прилегающем софте вроде СДК, который тоже, мягко говоря, будет не рад.

 

Думаю стоит прислушаться практически к тому что @Полтергейст говорит. В ТЧ действительно много идиотизма по АИ, по крайней мне так кажется когда я монстров понемногу доделываю.

 

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

 

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

Изменено пользователем Dennis_Chikin

Поделиться этим сообщением


Ссылка на сообщение

@Полтергейст, кстати можешь проследить эволюцию логики от кордона до чаэс и сделать вывод почему они эту систему не доделали. Вывод в целом на поверхности, пришлось бы геймдизайнерам все переделывать (возможно в n-ый раз :)).


Они даже не переделывали старые варианты на лучшие новые варианты по аи-схемам, так что то  о чем мы тут судачим вообще вряд-ли имеет смысл какой-то для обсуждения.

Поделиться этим сообщением


Ссылка на сообщение

Ага, а потом опять затележишь за то что я рассекретил великие идеи жутко тайного общества :D. Не, я теперь вообще лучше говорить и выкладывать ничего не буду, вон движок костылю понемногу, тут вроде меня обвинить не в чем (хотя вдруг ты уже и до движка добрался, и я там сижу сейчас твои супер-идеи реализовываю, которые непременно нагло украл? :huh: А как только попытаюсь выложить меня сожгут, или заплюют, какие у вас там методы...)

 

У каждого понятие "нормальная работа" - свое, и каждый сам пишет то что ему нужно, так что не думаю что уместно кого-то в чем-то упрекать.

 

@Dennis_Chikin, чтобы тестировать - необходимо играть, я тут такой темы не нашел, но поднял своих тестеров из могил, и, тьфу-тьфу, процесс пошел. Сейчас релоадил двиг и делаю все еще поумнее, смотрится нормально, но к сожалению в рендере, например, я чайник со свистком, и пока осилил только 2д, а хотелось-бы что-нибудь еще прикрутить, да не абы как. Буду ждать пока всеведущие снизойдут.

Поделиться этим сообщением


Ссылка на сообщение

"я бы понял если бы было 90 * 2 = 180 вызовов"

 

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

 

@Dennis_Chikin, если я не путаю (давно не копался в оллспавне), то одинаковые имена там - не по христиански, но таки если эта проблема и есть (хотя я сомневаюсь), то решается она тривиально, так как имя объекта - ну что-то такое не заумное, что не грех и того, вплоть до совсем ;). Иногда всплывает мысль "спасибо, что не string_id()", и так же тонет с пониманием почему такого случится не могло. Кстати хаки смартов видны даже в биндере, что кроме как рукалицо, опираясь на наши разъяснения выше, ничего не вызывает, селяви.

Поделиться этим сообщением


Ссылка на сообщение

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

 

Вопрос вдогонку, с чем связано зависание логики? Как можно нормально ресетить ин-гейм? Мне нужна теория, я, к сожалению, не так много играю что-бы это проверять (с тестерами тоже не придумал как тут взаимосвязь наладить). А то взял моду смотреть прохождение ОП-2 (натыкался на канал где было >300 серий  :facepalm: ), ну и там просто целый букет мест куда надо вешать "не влезать".

Изменено пользователем Карлан

Поделиться этим сообщением


Ссылка на сообщение

@BFG, да не, тут я не в прямом смысле имел ввиду, это я уже научился "опускать", как-бы как оно это самое начинается я проматываю, так как интересность попадает опять под п2.0. Я именно о техническом плане, где вскрывается куча багов которые нужно исправлять.

Поделиться этим сообщением


Ссылка на сообщение

 

 

в ЗП 2009

Я бы сказал в АМК 2008, а точнее поделки xStream, где не только такого рода респавнеры были, но и гулаги были упрощены в что-то подобно работающее, но нечто гораздо проще сделанное.

 

@Dennis_Chikin, фактум ноториум, что se_respawn крайне не актуален при создании динамичной жизни, оставлять его разве что для любителей делать ЭТО в сдк, но таким любителям... ;)

Поделиться этим сообщением


Ссылка на сообщение

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

Поделиться этим сообщением


Ссылка на сообщение

 

 

ОГСЕ ?

Не-не, я как раз не о терминальной стадии, а о том что-бы то что есть хотя-бы нормально сделать.

 

 

 

В общем-то, чего-то ТАКОГО нехватающего - именно там - не обнаружил. Возможно, этому чему-то там и не вполне место ?

Да по-моему как раз вот там и место. А xr_conditions пока не попал под маховик, отсрочил свое потрошение своим ужасным видом.

Поделиться этим сообщением


Ссылка на сообщение

"Это не есть верно. Форумы существуют для обсуждения. В противовес подпольям с кривыми велосипедами."

 

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

"Можно ещё попробовать вызвать skip_transfer_enemy(true)"

 

в каком месте и зачем?

"Да, еще неплохо бы спавн не сразу по 100 штук всего и по-больше, а по 1 штук за апдейт. Тогда и табунами не будут ходить, во-первых, а во-вторых, прекратятся эти безобразные рывки, которые проиходят при спавне запланированного табуна в 300 (нет, лучше - в 500 электропсикислотноогнеметных химер залпового огня), а потом удаления 499 лишних)."

 

с такими телегами надо идти к тем у кого эти 500 электрохимер спавнятся - тут без базара, но им оно я думаю по барабану, а 5-10 объектов работают без рывков, а этого количетсво достаточно для создания чего-то нормального, а там где 500 электробюреров спавнятся ну я уже описывал свои эмоции от просмотра этого

Поделиться этим сообщением


Ссылка на сообщение

Корутины профита не дают, луа однопоточен, эти антифризы надо делать где-то поглубже ;). Попытки кстати были, и кстати удачные.

 

@Dennis_Chikin, по тимам и сквадам, я верно понял что надо писать какие-то алгоритмы саморасчета уникальности этих самых? Хотя-бы в пределах онлайна.

Поделиться этим сообщением


Ссылка на сообщение

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

 

Но этих двух уродцев правда надо показать:

ЭТО РЕАЛЬНО ВЕСЬ XR_SPAWNER, больше от него там вообще ничего не надо.

--// from xr_spawner.script
function check_spawn(sobj)
	local cond = xr_logic.cfg_get_condlist (sobj:spawn_ini(), "spawner", "cond", sobj)
	return xr_logic.pick_section_from_condlist(actor, level.object_by_id(sobj.id) or nil, cond.condlist)
end

а это реально весь heli_snd:

--// Карлан: перепишем что-ли
--// example of call: heli_snd.play_snd(self.st, "damage", 3)
local snd_cnt = {see_enemy = 7, hit = 9, damage = 4, death = 6}
function play_snd(st, snd_set, priority)
	if not st.mute and (not st.snd_obj or not st.snd_obj:playing() or st.snd_priority < priority) then
		if st.snd_obj then
			st.snd_obj:stop()
		end
		st.snd_obj = xr_sound.get_safe_sound_object("helicopter\\"..snd_set.."_"..math.random(snd_cnt[snd_set]))
		st.snd_obj:play(actor, 0, sound_object.s2d)
		st.snd_priority = priority
	end
end

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

Поделиться этим сообщением


Ссылка на сообщение

Конкретно я не сторонник подгузников, и если мне надо будет что-то разгрузкоподобное, то добавлю "поясов" в движке, а всякие гранаты-аптечки и так уже можно визуализировать вот тебе и разгрузка без всякой фейковой требухи типа привет из 2010. На самом деле наверное хорошо что о великих пока нет в движке, а то были бы уже не только крахи игры а крахи игры вместе со всем системным блоком ;).


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

Поделиться этим сообщением


Ссылка на сообщение

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

Поделиться этим сообщением


Ссылка на сообщение

"obj:change_team(team, squad, group) - разве не позволяет там где надо установить то что надо?"

 

как-бы давно уже:

function change_team_sqaud_group(obj, team, squad, group)
if is_game_object(obj) then
obj:change_team(team, squad, group)
else
obj.team = team
obj.squad = squad
obj.group = group
end
end
по поводу автоматики - можно и под стандартные гулаги написать нечто лицеприятное. Изменено пользователем Карлан
  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

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

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...