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

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

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

Тема предназначена для разработчиков, а не для пользователей. Модерирование будет крайне жестким. Прежде, чем что-либо писать - прочитайте первый пост и примеры обсуждения. Изменено пользователем Dennis_Chikin

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


Ссылка на сообщение
Поделиться на других сайтах
_Val_   

 

 

ТЧ АМК?

Мап_пак для АМК)) + 6-патч.

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


Ссылка на сообщение
Поделиться на других сайтах

 

 

И, блин, нет ничего хуже, чем постоянно что-то править под древние кривые скрипты, когда у тебя давно вменяемые написаны. 8(

А кто вас, сударь, заставляет этим заниматься?

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


Ссылка на сообщение
Поделиться на других сайтах

Да, чтобы ответ был не риторическим, то ну вот хоть как-то так, что-ли: https://dl.dropboxusercontent.com/u/27871782/bind_monster.script

 

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

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

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


Ссылка на сообщение
Поделиться на других сайтах

@groks, сильно сомневаюсь что подобные идеи будут часто приходить модмейкерам. В любом случае, то, что тебе нужно дописать тоже не так уж и сложно... Я и так повсеместно говорю о зашоренности. Ну а если твоя идея будет действительно новая и ценная, то тут многие помогут в реализации я думаю. По крайней мере за себя отвечаю.

 

А пока, всем жаждущим рефакторинга в массы, даю простенькую ивент-драйвен модель, слепленную за минут 15 (по мотивам сами угадайте кого):

 

 

 

--// by Karlan
local events = {}
class "event"
function event:__init(name)
if name and name ~= "" then
if not events[name] then  
events[name] = {}
end
self.__evt_name = name
end
end

function event:register(func, uo)
table.insert(events[self.__evt_name], { func = func, uo = userobj })
end

function event:unregister(func)
for i,v in pairs(events[self.__evt_name]) do
if v.func == func then
table.remove(events[self.__evt_name],i)
end
end
end

function event:trigger(data)
for _,v in ipairs(events[self.__evt_name]) do
v.func(data, v.uo)
end
end

 

 

 

Да-да, она без полотна функций типа как в xr_s.script... Расширять функционал можно сколь угодно (это тоже не долго), я лишь рабочий плацдарм даю, который должен быть понятен каждому, как устроена эта система, и в чем ее преимущества перед существующей (в оригинале). 

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

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

 

Денис, нет, таймеры не смотрел  сейчас гляну. 

upd: Глянул, мне понятна твоя система (уже из темы с коллбеками).

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

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


Ссылка на сообщение
Поделиться на других сайтах

(Записывает в ежедневник: "дать себе пинка по поводу динамического подключения модулей"). Впрочем, там тот же принцип, что on_use/take/drop/ненужное вписать. Ну и в общем близко к тому, что здесь, но плоское.

 

И, кстати, таймеры в "подполье" смотрел ? "Плоские".

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

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


Ссылка на сообщение
Поделиться на других сайтах

 

 

Zander_driver, Ну вот будет такой конструктор модов. А тут меня разберёт, чтоб тот же кровосос после неудачной атаки матерился и махнув лапой, обиженно уходил от ГГ. А заготовки для такого случая нету.

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

 

 

 

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
_Val_   

Добавлю совершенно идиотскую мысль о вреде олл_спавна.

Стоит у меня бэтээрчик в нужном месте, заспавненный через олл_спавн, с логикой - прописанной там же)) Постреливает себе по зверушкам..А вот появится ГГ, постреляет и по нему. А чтобы стрелять перестал, нужно кое-чего сделать.

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

 

@Priboj37, про Артоса я в курсе)) Но с учетом скажем так - своего виденья Зоны, я не хочу устраивать эпичные бои и погони на вертушках. А всё, что мне нужно от бэтээров у меня уже есть...Юркнул в подвальчик)))

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

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


Ссылка на сообщение
Поделиться на других сайтах

Хе-хе...

 

function se_stalker:on_before_register()
	local nm = self:name()
	if nm == "sim_stalker_fraer" then	-- hack глючного олспавна
		local t = get_npc_data( self )
		t.custom = "[smart_terrains]\nval_lager_bandits = {-bar_darklab_document_start}"
		set_npc_data( t, self )
	elseif nm == "radar_svoboda_reyd3" then
		local t = get_npc_data( self )
		t.custom = ""
		set_npc_data( t, self )
	elseif nm == "mil_blockpost_freedomstalker001" then
		local t = get_npc_data( self )
		t.custom = "[smart_terrains]\nmil_fblockpost = true"
		set_npc_data( t, self )
	elseif nm == "borman" then
		local t = get_npc_data( self )
		t.custom = "[smart_terrains]\nnone\n[logic]\ncgf = scripts\\limansk\\borman.ltx"
		set_npc_data( t, self )
	end

	-- self:fill_exclusives()
	self:get_ini()
	local cnd = smart_terrain.read_smart_terrain_conditions( self )
	if self.strn_e then	-- только один эксклюзивный
		local t, e = smart_terrain.exclusives, self.strn_e
		t[e] = ( t[e] or 0 ) + 1
	elseif cnd then
		self.smart_terrain_conditions = cnd
		local t = smart_terrain.exclusives
		for k, v in pairs( cnd ) do t[k] = ( t[k] or 0 ) + 1 end
	end
end

-- вот вам и олспавн.

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

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


Ссылка на сообщение
Поделиться на других сайтах

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

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


Ссылка на сообщение
Поделиться на других сайтах

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

Идеи есть, и даже конкретная реализация этих идей есть. Только пожалуй покину я этот раздел форума на месяц-полтора. Я здесь явно лишний. Изменено пользователем Dennis_Chikin
удалил личное

Добавлено Dennis_Chikin,

В общем, я раскидал посты по темам, какие куда ближе: что - в скриптование, что - в ковырялку, что - и в отстойник, а дальше - ну, насильно - не заставишь. 8(

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


Ссылка на сообщение
Поделиться на других сайтах

Так, поехали, про сохранения.

 

Во-первЫх строках сего спаслания я есть иметь быть хотеть сказать(С), что ежели есть возможность убить одним выстрелом несколько зайцев - это надо сделать.

 

Коль скоро основание у нас В ПЕРВУЮ ОЧЕРЕДЬ - техническое: бьются сэйвы, сделанные из какой-либо специфической позы - отключать их именно из этой позы. Если поза - непись, сорвавшийся в danger или combat - неразрешаем записываться именно в случае, внезапно, когда у нас есть КТО-НИБУДЬ в - неожиданно овощи© - этом самом состоянии.

 

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

 

Ну, помним, незабвенный watcher_act.scrip, когда непись прямо во время боя прется через всю локацию, ни на что не обращая внимания, подбирать упавший бинтик, на другом краю этой локации, причем ориентируясь НА СЛУХ.

Да и в общем-то то же таскание трупов от костров, если честно, может и подождать. Даже если бой идет не здесь, а просто где-то на локации.

 

В общем, если кто-то где-то - отключаем все лишнее везде. Сделать - довольно таки элементарно, тем более файлики все рано править на предмет пачки багов древних, как с теми же сидениями в кострах. ;)

 

 

Едем далее... С собственно сохранениями, но примерно на ту же тему:

Если монстры или враждебные неписи видят актора, или актор видит врагов - ну, понятно. Так же, как со сном сделано (у кого не сделано - мои соболезнования).

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

 

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

 

Да, кстати, о птичках:

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах

Вот в очередной раз наталкиваюсь вот на подобную фразу - "Попробуйте сами пробежать с 30-атником на плечах, уверен многое прояснится" - и вот хочу об этом поговорить.
Как человек, с рюкзаком ходивший мно-оого, и рюкзвак весил по-разному. Было что и килограммов 5, а было, что и 80.

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

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

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

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

Вопрос: кто-то подобное замечал ли, а если замечал, то пытался ли что-то с этим сделать ?

2 7.9: гм, по-моему, по ссылке опять какое-то "ущучивание". На этот раз через объем (гм, в амк было, и в итоге его все отрывали). А вот чтобы не "ущучивать", и одновременно тягу авторов к "реализЬме" удовлетворить ?

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

  • http://www.amk-team.ru/forum/uploads//ratings/tick.png × 3
  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

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


Ссылка на сообщение
Поделиться на других сайтах
7.9   

Пробовали, здесь http://forum.xianionline.com/viewtopic.php?f=12&t=90

Но недоделали.

А ограничение веса и так есть.

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


Ссылка на сообщение
Поделиться на других сайтах

Как бы, еще расшифрую:

 

1. Хочется, действительно, ограничить рюкзак вот этими 20 кг. И еще чтоб 10 мог таскать с "пыхтением".

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

 

То есть, чтобы было ИНТЕРЕСНО эти 20 кг. самому ограничивать, а костюмчик туриста знаменитый с +5 к весу ценился может быть и по-выше экзы, которая позволяет 2 центнера легко перетаскивать.


  • http://www.amk-team.ru/forum/uploads//ratings/tick.png × 1
  • http://www.amk-team.ru/forum/uploads//ratings/cross.png × 1

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


Ссылка на сообщение
Поделиться на других сайтах
7.9   

Врядли есть "психиатрическое" решение вопроса "читерства" и попыток "сыграть не по плану".

 

Можно попробовать предложить игроку не читерить, через геймплей, например:

- Компенсировать легальный вес, например, "точностью стрельбы";

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

- ну и прочее такое...

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

  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

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


Ссылка на сообщение
Поделиться на других сайтах

Читерство начинается с какого-то момента, и довольно резко. В амк "не пошло" ограничение объема, но вес массово не правили. В солянке пошли массовые правки веса. ОПКМ при этом опять же игрался без массового чита, а по ОП2 я ни секунды не колебался создать тему для читеров, и все резко бросились откручивать ВСЕ, даже то, на что в соли ни кто внимания не обращал.

 

То есть, существование порога считаю доказанным.

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


Ссылка на сообщение
Поделиться на других сайтах
7.9   

Так и есть - уровень готовности на "преступление" существует - "уровень дискомфорта" / "псих.прочность" / "смысл ограничения".

 

Про АМК-ограничение объёма - оно недоработанно, или непроработанно, в общем, неудачно с точки зрения геймдизайна...

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

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


Ссылка на сообщение
Поделиться на других сайтах

2 Murarius: это не есть верно даже для Неназываемого случая. Если посмотреть внимательно.

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

 

Здесь есть несколько довольно очевидных "не ограничительных" вариантов, и сколько-то неочевидных. Плюс то же самое и с ограничительными. И их комбинации.

 

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

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

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

 

Собственно, тот же Сяк здесь ввел порчу колбасы и батонов (но при этом вроде не портящиеся консервы), и не портящиеся же, и при этом ЛЕГКИЕ колбаски охотников.

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

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

 

 

Да, при этом в солянкосэйвах я почему-то регулярно видел кучи заведомого уже явно мусора, таскаемые зачем-то через 10 локаций, даже у персон, прославившихся своей бескомпромиссной "борьбой с читерством" - это когда я со своими заведомо читерскими конфигами с их сэйвами даже с места сдвинуться не могу (О КАК ! Борцы, понимаешь ли ! С читерством !)

Понятно, что такое - ни какой колбасой не лечится, но при этом явно имеет какие-то свои причины.

 

Что бы хотелось иметь в идеале как финал всего этого трэда - чью-то success story типа: "А вот в моем моде ни один игрок никогда на себе больше 20кг не таскал, и такой потребности не испытывал !"

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

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

  • http://www.amk-team.ru/forum/uploads//ratings/tick.png × 2

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


Ссылка на сообщение
Поделиться на других сайтах
Struck   

@Dennis_Chikin, я конечно не хочу опять кому-то шибко умным показаться, но у себя я этот вопрос решил теми-же объемами, что и в амк (ну или как 7.9 предложил), и большим лутом (но опять же с дискомфортом, еда не падает). Т.е. по факту играться тяжело, но какого-то там дискомфорта в виде выпадения по 5 патронов с трупа я не делал, т.к. в подобных модах волей-неволей начинаешь собирать по одному патрону до 300-400 штук и таскаешь их постоянно, т.к. думаешь а может выпадет не 1 патрон, а вообще собственно - нифига, и в тех же модах совершенно невозможно поменять рабочий ствол из-за дефицита боеприпасов.

 

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

 

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

 

В NLC7 кстати многое учли по части пресловутого реализма. Мне понравилось, в целом грамотно.


  • http://www.amk-team.ru/forum/uploads//ratings/thumb_up.png × 1

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


Ссылка на сообщение
Поделиться на других сайтах

Ага, выцепляю две выглядящих годными идеи:

 

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

 

Конкретные идеи/реализации "схронов-в-которые-можно-играть" - реквестируются.

 

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

 

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

 

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

Заодно - сократить на локациях собственно количество разного хлама, которые на этих же локациях неприменим. (Гм, частный случай п2).

Ага, привести в равновесие с п2 на предмет утилизации излишков.

 

 

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

 

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

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

 

Таки вопрос с которого начат тред: что такого тяжелого игроки постоянно таскают в рюкзаках и зачем они это делают ? Что можно сделать с ЭТИМ ТЯЖЕЛЫМ, чтоб не таскали или оно не было тяжелым ?

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

 

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

 

P.S. А вот ограничение объема мне кажется вообще неправильным. Ибо в свой 120-литровыц рюкзак я не только 20 автоматов запихаю, но и целый запрожец. ;) Вот поднять потом, это - вряд-ли.

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

  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

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


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти

  • Недавно просматривали   0 пользователей

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

×