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


Изменения

Перейти к навигации Перейти к поиску
387 байт добавлено ,  13:39, 1 июля 2018
Строка 11: Строка 11:

* '''Тип 1'''. X + Y = Z. Это, наверное, самая старая система. [[Жестянщик|Соедини в меню два предмета и получи третий]]. Вначале моделировался простейшим способом (для [[Алхимия|зелий]] брались бутылочки и жидкость из ниоткуда). Позже, в рецепт стало входить более двух ингридиентов, а также специальные инструменты, не расходуемые или медленно "изнашивающиеся". Рецепт в таком виде усложнялся до чего-то вроде X1 + X2 + X3 + [Y] =>__A + [B]__=> Z.
* '''Тип 1'''. X + Y = Z. Это, наверное, самая старая система. [[Жестянщик|Соедини в меню два предмета и получи третий]]. Вначале моделировался простейшим способом (для [[Алхимия|зелий]] брались бутылочки и жидкость из ниоткуда). Позже, в рецепт стало входить более двух ингридиентов, а также специальные инструменты, не расходуемые или медленно "изнашивающиеся". Рецепт в таком виде усложнялся до чего-то вроде X1 + X2 + X3 + [Y] =>__A + [B]__=> Z.
** Итоговый продукт сам мог участвовать как ингридиент в других рецептах, создавая таким образом целый граф, дерево крафта.
** Итоговый продукт сам мог участвовать как ингредиент в других рецептах, создавая таким образом целый граф, дерево крафта.
** Формально не ставит никаких излишний ограничений для геймдизайнеров, и может позволять самые безумные комбинации, вроде "для создания часов нужны 2 меры бамбука, верёвка, 3 слитка золота, сопли гоблина и живая кукушка".
** Формально не ставит никаких излишний ограничений для геймдизайнеров, и может позволять самые безумные комбинации, вроде "для создания часов нужны 2 меры бамбука, верёвка, 3 слитка золота, сопли гоблина и живая кукушка".
** Исходно прост для воплощения, не требует особых затрат труда и времени на программирования такого спика. Однако, по мере роста количества предметов требует от создателей игры довольно утомительного ручного прописывания, что с чем и с каким результатом можно соединить, деревья начинают пухнуть и ветвиться, возникают проблемы с копипастой правил для "схожих" ингридиентов - "Почему в рецепте можно применять деревянные планки, но нельзя берёзовые?! Кроме того требую возможности вставить вместо кукушки дресированного попугая-матерщинника!". В итогое, после некоторого объема качественно поддерживать редактирование становится затруднительным.  
** Исходно прост для воплощения, не требует особых затрат труда и времени на программирования такого преобразования. Однако, по мере роста количества предметов требует от создателей игры довольно утомительного ручного прописывания, что с чем и с каким результатом можно соединить, деревья начинают пухнуть и ветвиться, возникают проблемы с копипастой правил для "схожих" ингредиентов - "Почему в рецепте можно применять деревянные планки, но нельзя берёзовые?! Кроме того требую возможности вставить вместо кукушки дрессированного попугая-матерщинника!". В итогое, после некоторого объема качественно поддерживать редактирование становится затруднительным.  
*** В тяжёлых случаях в редакторе нет соответствующего инструмента, и это приходится прописывать через рукописные скрипты, что черевато путаницей и ошибками. Иногда воплощается эта система, но с упрощённым инструментарием для разработчиков/мододелов.
*** В тяжёлых случаях в редакторе нет соответствующего инструмента, и это приходится прописывать через рукописные скрипты, что черевато путаницей и ошибками. Иногда воплощается эта система, но с упрощённым инструментарием для разработчиков/мододелов.
** Примеры первой разновидности: десятки их! [[Terraria]] же!, алхимия в Might&Magic, [[Arcanum]], алхимия в Gothic (совсем примитивно), частично [[Morrowind]] (и прочее из TES серии), Unreal World и [[Minecraft]].
** Примеры первой разновидности: десятки их! [[Terraria]] же!, алхимия в Might&Magic, [[Arcanum]], алхимия в Gothic (совсем примитивно), частично [[Morrowind]] (и прочее из TES серии), Unreal World и [[Minecraft]].
Строка 22: Строка 22:
** Примеры второй разновидности: [[Witcher]], Fallout 4 (о, да!), Thea: The Awakening, частично Underrail, алхимия в серии TES.
** Примеры второй разновидности: [[Witcher]], Fallout 4 (о, да!), Thea: The Awakening, частично Underrail, алхимия в серии TES.


* '''Тип 3'''. ООК, объектно-ориентированный крафт. Авторам не нужно ломать голову, прописывая тысячу разных рецептов, они просто проставляют предметам соответствующие атрибуты. «Легковоспламенимый»? Значит, его можно поджечь с помощью зажигалки и развести небольшой костер. Мелкие деревяшки подойдут, тряпки тоже, бумага — прекрасно, а вот палка уже не загорится — она не имеет атрибута «Легковоспламенимый», зато имеет атрибут «Горючий» и «Средний размер», ее имеет смысл сунуть в небольшой костер, чтобы получить средний огонь. «Острый край»? Значит, этим предметом можно освежевать тушу, а будет это осколок стекла или нож — неважно.
* '''Тип 3'''. ООК, объектно-ориентированный крафт. Авторам не нужно ломать голову, прописывая тысячу разных рецептов, они просто проставляют предметам соответствующие атрибуты. «Легковоспламеняемый»? Значит, его можно поджечь с помощью зажигалки и развести небольшой костер. Мелкие деревяшки подойдут, тряпки тоже, бумага — прекрасно, а вот палка уже не загорится — она не имеет атрибута «Легковоспламеняемый», зато имеет атрибут «Горючий» и «Средний размер», ее имеет смысл сунуть в небольшой костер, чтобы получить средний огонь. «Острый край»? Значит, этим предметом можно освежевать тушу, а будет это осколок стекла или нож — неважно.
** Теоретически, таким образом можно создать очень связную и реалистическую систему не запутавшись в деталях. Но, вместе с тем приходят и проблемы:
** Теоретически, таким образом можно создать очень связную и реалистическую систему не запутавшись в деталях. Но, вместе с тем приходят и проблемы:
*** Относительная сложность воплощения. Если простую цепочку "Курица + Дрова => Суп" Типа 1 можно запрограммировать чуть ли не на коленке, и результат будет виден сразу, то тут для даже самого примитивного крафта нужно сперва запрограммировать целую кучу сущностей и правил из взаимодействия. Проблема Типа 1 "сделали скудную и унылую систему крафта и забросили" может превратиться в "забросили ничего так и не сделав".
*** Относительная сложность воплощения. Если простую цепочку "Курица + Дрова => Суп" Типа 1 можно запрограммировать чуть ли не на коленке, и результат будет виден сразу, то тут для даже самого примитивного крафта нужно сперва запрограммировать целую кучу сущностей и правил из взаимодействия. Проблема Типа 1 "сделали скудную и унылую систему крафта и забросили" может превратиться в "забросили ничего так и не сделав".
*** По сути мы заменяем дерево связей предметов в крафте Типа 1 на дерево связей атрибутов. Количество атрибутов будет меньше, чем количество типов предметов (ну, будем надеяться), но вот сам граф их связей  (Все эти правила "Легковоспламеняемый + Разбрасывает_Искры => Горит(Легковоспламеняемый)" ...) будут гораздо сложнее и запутанней, а проблемы от ошибки - гораздо глобальнее и серьёзней.
*** По сути мы заменяем дерево связей предметов в крафте Типа 1 на дерево связей атрибутов. Количество атрибутов будет меньше, чем количество типов предметов (ну, будем надеяться), но вот сам граф их связей  (Все эти правила "Легковоспламеняемый + Разбрасывает_Искры => Горит(Легковоспламеняемый)" ...) будут гораздо сложнее и запутанней, а проблемы от ошибки - гораздо глобальнее и серьёзней.
*** Проблема списка атрибутов. На самом деле, предметам можно приписать ТЬМУ атрибутов. И для более-менее связной модели возможно придётся использовать целую КУЧУ из этой тьмы. Можем ли мы острым ножом разрезать лист стекла и сшить из него поножи, и какие атрибуты надо ввести, чтоб не выглядеть посмещищем? Какие атрибуты нужны, чтоб иметь возможность настругать полено на щепки для растопки, а изумруд раздробить в пыль в ступке для алхимии, но не наоборот? Какой список атрибутов будет минимальным?
*** Проблема списка атрибутов. На самом деле, предметам можно приписать ТЬМУ атрибутов. И для более-менее связной модели возможно придётся использовать целую КУЧУ из этой тьмы. Можем ли мы острым ножом разрезать лист стекла и сшить из него поножи, и какие атрибуты надо ввести, чтоб не выглядеть посмешищем? Какие атрибуты нужны, чтоб иметь возможность настругать полено на щепки для растопки, а изумруд раздробить в пыль в ступке для алхимии, но не наоборот? Какой список атрибутов будет минимальным?
**** Проблема усложняется "философским", обобщенным смыслом атрибутов. "Создаёт огонь", "защищает от ударов" и "Имеет рога" - это некоторые обобщения, применимые не всегда, и зачастую ограниченно.
**** Проблема усложняется "философским", обобщенным смыслом атрибутов. "Создаёт огонь", "защищает от ударов" и "Имеет рога" - это некоторые обобщения, применимые не всегда, и зачастую ограниченно.
*** Проблема чисел. Можно ли разрезать "острой гранью" ножа шкуру дракона? А острой гранью стекла? Пробьёт ли острый конец деревянного копья шкуру носорога? В чём отличие "легковоспламеняемого" от "горючего", "трудновоспламеняемого" и "обугливающегося"? Казалось бы, подобных проблем можно избежать введя не просто атрибуты, а атрибуты с какими-то ещё численными характеристиками. Но это уже не ложится в простую деревовидную структуру - нужны какие-то сравнения, логические условия ''скрипты''.
*** Проблема чисел. Можно ли разрезать "острой гранью" ножа шкуру дракона? А острой гранью стекла? Пробьёт ли острый конец деревянного копья шкуру носорога? В чём отличие "легковоспламеняемого" от "горючего", "трудновоспламеняемого" и "обугливающегося"? Казалось бы, подобных проблем можно избежать введя не просто атрибуты, а атрибуты с какими-то ещё численными характеристиками. Но это уже не ложится в простую деревовидную структуру - нужны какие-то сравнения, логические условия ''скрипты''.
Строка 32: Строка 32:
** Примеры: [[NEO Scavenger]], [[Dwarf Fortress]].
** Примеры: [[NEO Scavenger]], [[Dwarf Fortress]].
* '''Тип 3.5'''. Основанный на физике крафт. Возьмите доски, шестерни, блоки, веревки, соберите в оптимальном порядке и получите катапульту. Самая близкая к [[Реальная жизнь|реальной жизни]] система, но и самая сложная в реализации и самая требовательная к ресурсам компьютера.
* '''Тип 3.5'''. Основанный на физике крафт. Возьмите доски, шестерни, блоки, веревки, соберите в оптимальном порядке и получите катапульту. Самая близкая к [[Реальная жизнь|реальной жизни]] система, но и самая сложная в реализации и самая требовательная к ресурсам компьютера.
** От непонятностей с выбором и увязкой атрибутов казалось можно бы уйти вводом "физических" свойств. Но по факту, обобщённые, философские атрибуты вводятся не от пустого многословия. "Честный" просчет физических свойств зачастую требует непримлимых затрат времени даже для суперкомпьютеров, а для того, чтоб разобрать абстрактные предметы на "физическую" кучу чисел, и собрать обратно результат требуется система со свойствами полноценного Искуственного Интеллекта.
** От непонятностей с выбором и увязкой атрибутов казалось можно бы уйти вводом "физических" свойств. Но по факту, обобщённые, философские атрибуты вводятся не от пустого многословия. "Честный" просчет физических свойств зачастую требует неприемлемых затрат времени даже для суперкомпьютеров, а для того, чтоб разобрать абстрактные предметы на "физическую" кучу чисел, и собрать обратно результат требуется система со свойствами полноценного Искусственного Интеллекта. По факту же, при внимательном изучении оказывается, что вся "физика" вбита в пару рукописных скриптов, сильно ограниченных по возможностям, трудно расширяемых,и содержащих не замеченные баги.
** Примеров автор правки с ходу не назовёт. Хотя в Arx Fatalis можно было жарить мясо [[Файербол|файерболами]] или у костра. Вроде мелочь, но когда складываешь рыбу рядом с костром, и, послушав потрескивание, забираешь уже жареной, это колоссально [[Подавление недоверия|повышает веристичность игры]] (в сравнении с системой «Активируй костёр — в меню выбери рыбу — подтверди выбор — выйди из меню — проследи за надписью „Добавлен предмет: жареная рыба“»). А ещё подобные вещи в режиме песочницы позволяют делать игры, моделирующие [https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%93%D0%BE%D0%BB%D0%B4%D0%B1%D0%B5%D1%80%D0%B3%D0%B0 машины Голдберга].
** Примеров автор правки с ходу не назовёт. Хотя в Arx Fatalis можно было жарить мясо [[Файербол|файерболами]] или у костра. Вроде мелочь, но когда складываешь рыбу рядом с костром, и, послушав потрескивание, забираешь уже жареной, это колоссально [[Подавление недоверия|повышает веристичность игры]] (в сравнении с системой «Активируй костёр — в меню выбери рыбу — подтверди выбор — выйди из меню — проследи за надписью „Добавлен предмет: жареная рыба“»). А ещё подобные вещи в режиме песочницы позволяют делать игры, моделирующие [https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%93%D0%BE%D0%BB%D0%B4%D0%B1%D0%B5%D1%80%D0%B3%D0%B0 машины Голдберга].
*** Автор этого уточнения сам не играл в TerraFirmaCraft mod, но звучит очень похоже по описанию.
*** Автор этого уточнения сам не играл в TerraFirmaCraft mod, но звучит очень похоже по описанию.
* '''Смешанный тип'''. Зачастую используется именно смесь различных вариантов. К примеру, крафт предметов ведётся по списку-дереву Типа 1, с наброшенной простой системой атрибутов, строительство зданий - по Типу 2, а некоторые ограниченные области типа моделирования пробития доспехов или работы формальных механизмов - несколькими специальными отлаженными скриптами-программами по Типу 3.
* '''Смешанный тип'''. Зачастую используется именно смесь различных вариантов. К примеру, крафт предметов ведётся по списку-дереву Типа 1, с наброшенной простой системой атрибутов, строительство зданий - по Типу 2 из стандартных ресурсов, а пара пробем типа моделирования пробития доспехов или работы формальных механизмов - несколькими специальными отлаженными скриптами-программами по Типу 3.


== Проблемы крафта ==
== Проблемы крафта ==
Анонимный участник

Навигация