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

Gameplay - как сделать ЭТО, чтобы ОНО всем нравилось ;)


Dennis_Chikin

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

Вообще забавно, что слово "олспавн" до сих пор сохраняет свою магию.

А ведь обыкновенные конфиги, просто приведенные в нечитамый человеком вид. Тот же обфускатор, вид в профиль.

 

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

Кстати, в двух предыдущих обсуждениях меня почему-то заклинило с офлайном: там ведь то же самое, только нет функции "задать вертекс", а есть функция, которая дергается, и должна вернуть вертекс. Так помимо нее можно ж тупо переписать пакет с нужными координатами, и будет щасте .

 

 

То есть, пути при таком раскладе не нужны вообще. Как таковые. Это чисто так вот написаны скрипты под приведенные в нечитаемый вид конфиги.

Изменено пользователем Dennis_Chikin
  • Согласен 1
  • Полезно 1

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


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

Гм. Однако, проблема курицы и яйца.

Очевидно, где-то какие-то опорные точки придется задавать.

 

Но тут в любом случае будут, скажем, или таблицы вертексов, скажем, костров, или таблицы строк типа "points = p0
p0:name = name00
p0:position = 108.319999694824,19.0499992370605,165
p0:game_vertex_id = 240
p0:level_vertex_id = 409887"

 

свернутые в слабочитаемую абракадабру "aver_otshelnik_camp_center    S                7"

 

Как бы в любом случае эту абракадабру надо снимать руками, и вбивать руками.

А дальше в скрипте все равно будет

    local p = st.patrol_path; self.patrol = p
    local c = p:level_vertex_id( 0 ); self.center = c
    local c_pos = level.vertex_position( c )

 

Ы ?

 

А ведь можно ничего и не снимать, и ни куда не забивать, а просто получить вертекс непосредственно костра, не ? И неписям так и говорить, что kamp у них - костер с именем "koster_tri_po_pyat_sem_ha_vosem"

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

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


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

Вот про "сценаристов", которые "у нас сюжет целый год целых трое писали, а потому работа еще 300 человек идет на север", а потом выясняется, что "сценарий" лучше бы было взять тот самый, где "свою суковатую дубину, обмазанную я дом и провернул два раза, чтобы тот больнее обстрадался ! Ибо !" - у меня много слов есть. Ну да ладно.

 

Сценарист говорит: "Хачу, чтоб неписи водили хоровод вокруг костер_сэм_восым !"

Замечательно. obj = alife():object( "костер_сэм_восым" ); lvid = obj.level_vertex_id()

 

Усе. А куда этот костер засунуть - пусть пальцем ткнет.

 

"Хочу что бегали от костер_сэм_восым к лужа_сэм_па_пять !" ?

Ну и в чем проблемы ? alife():object() далее по тексту.

 

Или кто-то думает, что xr_kamp чем-то принципиально отличается от xr_patrol ? Да пущай хоть танец маленьких лебедей танцуют.

 

upd:

"а дерево, что тогда?" - ну и как здесь поможет оллспавн ?

 

upd2:

И только что выше показывал, что потом занимается этими путями.

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

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


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

Про прогиб под движок - а вот надо ли ? Ни рестриктор не поставить, ни шмотку уронить, зато получаем пачки Invalid vertex for object и не помню что там еще с живностью на ту же тему.

Да и в путях как бы, точку тоже не указать.

 

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

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

 

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

По тому что иначе все это выглядит либо позорно (как монстры, сгущающиеся из воздуха в час x или по событию прямо на глазах игрока), либо вообще ни как.

 

В общем, лечить надо, а не выдавать нужду за добродетель.

 

 

И, да, только что показал ссылку на скрипт, где вертексы получаются через смещение от того костра, ага. Внимательнее надо. Вот же продолжение:

 

function CKampManager:__init( path, st )
	-- log( "info", "CKampManager(%s):__init ...", path )
	self.kamp_name = path

	local p = st.patrol_path; self.patrol = p
	local c = p:level_vertex_id( 0 ); self.center = c
	local c_pos = level.vertex_position( c )
	local pos = {
		{ ["dir"] = vector():set( 1, 0, 0 ) },
		{ ["dir"] = vector():set( 1, 0, 1 ) },
		{ ["dir"] = vector():set( 0, 0, 1 ) },
		{ ["dir"] = vector():set( -1, 0, 1 ) },
		{ ["dir"] = vector():set( -1, 0, 0 ) },
		{ ["dir"] = vector():set( -1, 0, -1 ) },
		{ ["dir"] = vector():set( 0, 0, -1 ) },
		{ ["dir"] = vector():set( 1, 0, -1 ) } }
	self.position = pos
	local n = #pos
	self.vused = { [c] = -1 }	-- в кострах не сидеть !

	self.story_last, self.story_max = 0, 0	-- от греха
	self.story_played = {}	-- лекарство от затыка и попугайства, см. комментарий в апдейте
	self.npc = {}
	self.population = 0
	self.kamp_state = "idle"
	
	-- распарсим патрульный путь и проапдейтим вектор позиций.
	-- 0 вершина - центр лагеря, 1 - сектор занят, можно сидеть, 2 - нельзя сидеть.
	local lvid, f1, dir

	for i = 1, p:count() - 1 do
		-- log( "info", "CKampManager(%s):__init, path-pt: %s", path, i )
		f1 = p:flag( i, 1 )
		lvid = p:level_vertex_id( i )
		if f1 or p:flag( i, 2 ) then	-- отметить сектор как занятый
			dir = vector():sub( level.vertex_position( lvid ), c_pos )
			for ii, v in ipairs( pos ) do	-- проверяем имеющиеся на близость к пути
				if v.dir and ( 23 >= yaw_degree( dir, v.dir ) ) then
					v.used = -1; break	-- близко, помечаем занятым
			end	end
			if f1 then n = n + 1; pos[n] = { ["vertex"] = lvid } end	-- точка для сидения
	end	end

И

 

function CKampManager:getDestVertex( npc_id, radius )
	local v = npc_id and self.npc and self.npc[npc_id]
	if v then v = v.position	-- индекс таблицы доступных мест
		if v then
			local p = self.position[v]
			v = p.vertex	-- variable re-used
			if v then return v end
			-- посчитанный ранее
			if self.npc[npc_id].vused then return self.npc[npc_id].vused end
			-- иначе высчитываем по направлению
			v = level.vertex_in_direction(
				level.vertex_in_direction( self.center, p.dir, radius ),
				vector():set( math_random( -1, 1 ), 0, math_random( -1, 1 ) ),
				math_random( 0, 0.5 ) )
			if self.vused[v] then return level.vertex_in_direction(
				level.vertex_in_direction( self.center, p.dir, radius + 2 ),
				vector():set( math_random( -1, 1 ), 0, math_random( -1, 1 ) ),
				math_random( 0, 0.5 ) )
			else
				self.vused[v], self.npc[npc_id].vused = npc_id, v
				return v
			end
	end	end
	return nil	-- опять магия ?
end

 

А вот, кстати, скрины того, как работает фикс "битвы за место": https://dl.dropboxusercontent.com/u/27871782/screenshots.7z

Детям не смотреть ! Ибо отбирались кадры как раз того - не самых лучших вариантов. ;)

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

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


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

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

 

lv = npc:vertex_in_direction( lv, diff, len )

Изменено пользователем Dennis_Chikin
  • Согласен 1

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


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

Патрулируют (walker и patrol). Сидят у костра. Подбирают шмотки/обшаривают трупы. Оттаскивают трупы. Самолечение в бою - убегают от врага ЗА ПРЕПЯТСТВИЕ,и пьют там яд.

Везде в количестве npc:vertex_in_direction() и npc:accessible_nearest().

 

Что я делаю не так ?

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


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

Гм, еще раз: "интересно"/"неинтересно" что ? Придется или не придется переигрывать пол игры по тому в рэндомный момент грохнули квестового непися ? (если разрешить и их тоже грохать).

 

Больше игрок ни о чем в принципе сейчас узнать не может.

Если менять радиусы/переставлять лагеря - это ничего принципиально не изменит. Либо в некоторых местах есть мясорубка (скрытая от игрока), либо мясорубки нет (что игроку по барабану тем более).

 

С перекладыванием вещей игрока из одного тайника в другой (который рядом) и надписью - "а теперь эти шмотки принадлежат не тебе, а неписю) - ну и какая разница, удалены ли они из игры вообще, или просто "принадлежат неписю" ? Хотя, в общем, да - побесить игрока лишний раз - это, конечно, приятно.

Но, опять же, зачем для этого 10тышь строк, если можно обойтись десятком ?

 

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

 

Альтернатива - когда Зона пляшет сама по себе, а игрок как-то вмешивается в процесс. Но это будут уже совсем другие скрипты.

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

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


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

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

Что еще ? Ну и сам метод их "создания" был бы небезинтересен.

 

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

 

Кстати, на счет дружественных... Есть вариант, что как раз дружественные - могут присмотреть. А вот плохие отношения и низкая "общая" репутация - да, могут обчистить. Типа "а кто ему поверит ?".

В основном же если кто может чистить тайники - любые - это бандиты и иже с ними. Нашли - обчистили. Но, естественно, не сканом всей локации, а только то, что в непосредственной близости, и в "плохих местах".

 

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

 

P.S. По неписям, кстати, в итоге опять же идем к "торговле между неписями". ;)

  • Нравится 1

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


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

"Делом" занимается "кто-нибудь". ;) Но пока - по-мелочи.

 

Новичек-ветеран - а принципе, без разницы. Если уж сталкеры - "группировка" - друг друга не стреляют и не грабят - значит, и тайники  - в какой-то степени - дело общее. Черную метку получает любая "крыса", и вылетает из сталкеров в "крысы".

Просто если зарекомендовал себя как "ну еще сразу не стреляют" - так и за хабаром присматривать вряд-ли кто будет.

 

Под метки я, кстати, для начала собираюсь переделать пресловутые "замки на рюкзаки". И использовать идею "сталкерской сети". То есть, не какой-то идиотский замок, а маячок банальный, с которого ПДА, подключенный в сеть, снимает данные. Вот вам и "черная метка" сразу. Если тайник покойника - "черная метка" не ставится.

Бандитам на эту ЧМ, естественно, пофиг, вот они и грабят.

Благо, делов - пару диалогов поправить,  и бандюкам "метку" не проверять.

 

Да, обмен тайников на водку придется порезать. ;) Как награды - оставить.

 

 

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

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


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

Зачем же каждый раз ? Даже и одного не нужно.

 

Но ему надо полноценный слот, или что ? Если слот, то штука чисто движковая. (Мда, на счет "полноценности" здесь возможны разные мнения.)

 

upd:

Это мы-то агрессивные ?

 

А для сферовакуумного незнайкм с аптечками в соседней теме разжевано ну я даже уже не знаю до куда.

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

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


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

Не, ну я лично все итерации поснес к {церковнославянскоименуемой} Богомыши.

 

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

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

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


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

"то там лучше на колбеках" - да вообще-то как бы без разницы, на каких. Что, выложить еще полный кусок, следящий за инвентарем актора вместо того фрагмента ?

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


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

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

Если игрок их перекладывает под конкретные ситуации - все хорошо.

 

По поводу их действия только на поясе - полагаю, в оригинале просто не захотели усложнять, и сделали стандартную систему со слотами под доспех/амулеты из RPG. Лечится элементарно даже без залезания в движок: постоянный эффект реализуется все знают как (в процентах от эффекта на поясе), а хит - просто занижается, и в зависимости от суммы свойств артов в рюкзаке наносится повторно с той или иной силой.

 

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

 

Невидимость - считаю, что необосновано ни как вообще. Если арты изначально невидимы, и для своего извлечения из "поля невидимости и неберучести" нужны специальные "детекторы", то как про эти самые артефакты ВООБЩЕ узнали ? Ну и опять же дисбалансные предметы/действия в игре:

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

 

Заметность арта - это уже регулируется чисто желанием облегчить/усложнить игроку жизнь. Ровно так же, как все прочие свойства.

 

 

Да, по отрицательным своийствам артов есть некоторые мысли, но не систематизированные. Если кому сильно надо - попробую набросать.

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

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


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

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

 

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

 

Скриптоинвентарь рулит. ;)

 

P.S. исчезающие и разряжающиеся арты - плохо. Громоздко, прежде всего, и провоцирует на странное. Лучше оставить как часть мультивалютной системы и внутримировое обоснование ценности Зоны как места добычи ресурсов старательским способом. Польза и от того, и от другого - заметно больше, чем от "ущучивания" методом отбирания "любимой цацки". Не говоря уж о выборе актуального сочетания артов как игровом действии.

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

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


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

Если оставлять слотовую систему - то как-то так. Просто надо еще немножко поработать с фантастичными свойствами самих костюмов. Оставив им защиту от пуль/монстров, а прочее вынести преимущественно на арты.

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

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

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

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


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

Я делал влияние арта на прыжок, да. Это не есть проблема.

Изменение веса - да, логично привязать как раз к рюкзаку.

 

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

Защита от пуль - влияет на тот материал, который контактирует с артом.

 

 

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

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

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

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

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


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

Посты "про природу и погоду" переехали сами знаете куда. По тому что с оной "природой" все просто: делаем и выкладываем, либо не делаем и не выкладываем. А "идите на форум жести и там читайте" и "меня тут все преследуют" - ни как не способствуют тому, чтобы что-то было сделано. На этом и закончим с ЭТИМ вопросом.

 

Теперь возвращаясь к теме:

По поводу качества трупа и качества получаемого из него артефакта - нет же. Не так. Не вижу смысла в размене 1:1 прежде всего. Возможно, в аномалию надо запихнуть 100 кг металла. Причем не во всякую. А, скажем, сочетание жарки, воронки и радиация чтоб была. И вот в это сочетание - 100 кг оружия.

Тогда, и только тогда аномалии начнут его переваривать. И, да, на это время исчезнут.

Возможно, что и из трупов. Да, десяток собак. А может быть и сталкеров.

 

Ну,вот здесь в принципе есть выбор: можно и специально убить, да. Но вообще-то отношения портятся, внезапно. Ели кто не заметил. А если убивать враждебных - те, вообще-то, тоже стреляют.

 

Но, в общем, ни кто ж не заставляет. Можно, например, ограничиться только монстротрупами. Опять же, идея была где-то уже обыграна: когда из людей "душ" понаделали, а те здровье почему-то не восстанавливать начали, отнимать, ага. Там же и обоснование было: типа, монстры регенерируют, вот это свойство и сохранилось. А люди, обычно, наоборот, болеют, а от ранений вообще дохнут. Ну так вот вам и артефакт соответствующий. ;)

Изменено пользователем Dennis_Chikin
  • Согласен 1

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


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

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

 

Концовки с желаниями для Монолита - примерно в туда, но как-то слишком грубо и примитивно.

 

В общем, если кто заинтересуется - дарю идею. ;)

Технически-то все примерно понятно, а вот на что именно реагировать...

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


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

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

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

 

А вот если те %чудаки, пусть и с оборудованием, но доэкспериментировались с каким-нибудь "объектом Нейрон" (см. Дойля, нашего, понимаете ли, Артура Конана, или еще какого Вернадского с с их последователями типа Валентинова или Бачило), то сами они могут, конечно, думать что угодно, но Зона именно им подчиняется весьма условно, или не подчиняется вообще. И это уже совсем другой сюжет.

И очень быть может, что совсем другое прохождение.

 

Ага, я про адаптацию к стилю игры речь веду.

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

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


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

Тут перетаскивал квест с курткой Шустрого под скрипт. Ну, просто бесили в диалоге ОДНОРАЗОВЫй по сути, но вечно торчащий текст про "мне нужна работа", и вечная же история про потерянную куртку. А он еще и в пакете актора пожизненно болтается зачем-то, читается-проверяется таскменеджеом и т.д.

 

В общем, изрядно {2.0}, объединил историю и квест.

 

Но, процессе столкнулся с надобностью поставить метку. В результате - да, получение объекта по имени и серверная метка. Когда часть "найти" выполнена - снимаем.

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

Но вообще вроде как есть что-то такое. С привязкой к координатам. И здесь можно к разным, плюс разные метки. Но нафиг-нафиг - для эстетов, которым заняться нечем.

 

К чему я это: в принципе, где-то поблизости от любого желаемого места как правило какой-нибудь объект все-же существует. А если нет, то можно и заспавнить. Да хоть аномалию. И на него уже - метку. В принципе, нормально. Но для куртки шустрого посчитал, что и это - слишком много чести ей будет.

 

P.S. по поводу того, что ни кто не пишет - ну так вроде и вопросов особотрепещущих более пока нет. Что обсудили - так это бы теперь все воплотить. ;) Кто заинтересовался - так у тех процессы идут как-то, наверное.

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

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

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


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

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