Новые концепции #1

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

Геймплей

начальные квесты и надоедливый шаман

Как вы, возможно, помните из описания на главной, играть предстоит героем, которого телепортировали черт знает куда с двумя заданиями: "искать средство, обеспечивающее вечную жизнь" и "собирать по пути все ценное".
С первым заданием все понятно - его выполнимость весьма сомнительна, особенно на ранних стадиях игры, а вот второе обеспечит игрока постоянной работой, отвлекающей от личных планов по захвату мира.
Предварительная классификация квестов от шамана:
  • обмен - повторяемые квесты, суть которых сводится к накоплению большого количества ресурсов определенного типа и передаче их шаману за вознаграждение. Не влияют на отношение к герою, время от времени генерируются заново, могут быть недоступны при определенных условиях.
  • случайное событие - время от времени генерируются случайные задания, снабженные короткой историей, обычно это какие-то неприятности в родной деревне, будь то пожар или эпидемия, но возможны и менее мрачные варианты. Срок выполнения таких заданий строго ограничен, а от успешности выполнения зависит отношение к герою. Как правило, успешное выполнение хорошо награждается от имени жителей деревни.
  • а что это там у тебя? - самый надоедливый вариант квеста, который генерируется при нахождении героем чего-то интересного, а порой и просто на ровном месте. Представьте, что вы с огромным трудом выбили из босса сверхмощный меч и уже успели представить насколько сильнее с ним станет ваш герой, но тут к вам в гости заявился шаман и требует этот меч себе чтобы повесить его в деревне в качестве оберега. Хуже того, шаман может позариться на любую вещь, находящуюся в области видимости игрока. Этот вид квестов не ограничивается предметами - шаман может потребовать убить кого-нибудь или куда-то забраться. Время выполнения этого типа квестов также ограничено, как и для случайных событий, а вот последствия и награды отличаются - в отличии от связанных с деревней, эти квесты связаны непосредственно с шаманом и в большей степени влияют на отношения с ним. Соответственно, среди наград также преобладают тематические награды от шамана.
  • герой эстрады - тип квестов, аналогичный предыдущему, но отличающийся тем, что генерируется только когда жители деревни наблюдают за героем. Подробнее об этом в разделе "постоянное наблюдение".
Квесты в большинстве своем будут не конкретизированные вплоть до того, что нужно принести левую пятку демона по имени Анунах, живущего в ближайшей крепости, а максимально обобщенными, насколько это позволяет тип квеста. Например, рассмотрим квест типа "случайное событие" следующего содержания "в деревне сгорел продовольственный склад и жители голодают, нужно пополнить запасы продовольствия чтобы деревня смогла протянуть до возвращения охотников с охоты и торговцев из соседней деревни". В качестве сдаваемых предметов годится все, что имеет классификацию "еда" и не имеет негативных модификаторов. С другой стороны для квеста типа "а что это там у тебя?" скорее всего подойдет только конкретный предмет, который был затребован.

одноразовая магия

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

постоянное наблюдение

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

Разработка

Поскольку разработка генератора мира это одна из первоочередных задач после чанк менеджмента, пора задуматься о том, как же на карте будут размещаться различные объекты.
Прежде всего, объект это не только текстура, с помощью которой он отображается, но еще и его форма, определяющая какие части текстуры где использовать - такая-себе 2д-модель. Зачем это нужно? Во-первых для того, чтобы не хранить информацию о вариациях объекта и его форме в коде - вместо этого можно запечь эти данные в "модель" и избавиться от прямых зависимостей. Во-вторых внешние данные намного удобнее редактировать чем зашитые в код.
Первое применение этой технологии - возможность на одной текстуре разместить множество вариаций какого-нибудь объекта и не париться тем, что для разных объектов расположение и количество вариаций может отличаться - все нужные данные по конкретному типу объектов будут зашиты в "модель" и после разбора модели коду будет уже всеравно сколько всего вариаций или какая вариация выбрана.
Второе применение - возможность изобразить на одной текстуре сложный объект, а затем отметить необязательные фрагменты, убирание которых позволит создать несколько вариаций одного объекта при минимуме затрат места на текстуре. Естественно, необязательные области и порядок их сборки в вариации будут храниться в "модели", а не в текстуре.
Третье применение - сложные объекты, состоящие из частей нескольких различных текстур, а также возможность собирать объект из различных частей одной текстуры. Для интерактивных объектов сложность обработки нажатия мышкой делает составные объекты не очень перспективными, но для фрагментов рельефа такой проблемы нет.
Вывод - нужно написать специализированный редактор "2д-моделей", который позволял бы, как минимум следующее:
  • загрузить текстуру
  • "раскрасить" текстуру областями, лучше с автоматическим распознаванием пустых участков текстуры
  • задать соответствие между номерами областей и вариациями объекта, а также относительное смещение для каждой вариации (первое применение)
  • сохранить результат в отдельный файл
  • на будущее: дополнительный режим, позволяющий не только разобрать текстуру на отдельные вариации объекта, но и составлять вариации из различных фрагментов текстуры (второе и третье применения)
  • на еще более отдаленное будущее: возможность загрузки нескольких текстур с последующим использованием их для сборки объектов и их вариаций (третье применение, полная версия)

Оценка времени и перспективы участия в конкурсе

Вполне вероятно, что к конкурсу не будет готово очень многое даже из базового набора функциональности, так что вполне вероятно снятие работы с конкурса - чтобы не позориться и чтобы можно было сфокусироваться на более важных аспектах, а не допиливать впопыхах до играбельной версии. Окончательное решение будет принято ближе к срокам сдачи работ - еще почти месяц и многое можно успеть реализовать.
С другой стороны игра и не задумывалась на конкурс изначально - просто совпало по времени, так что работа будет продолжена в любом случае.
`
ОЖИДАНИЕ РЕКЛАМЫ...