forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Unity (http://forum.boolean.name/forumdisplay.php?f=147)
-   -   Faded [игра мечты] (http://forum.boolean.name/showthread.php?t=19362)

Mr_F_ 20.09.2014 13:46

Ответ: Faded [игра мечты]
 
Как знать, сейчас над сюжетом работаю, спойлерить ничего не буду пока)

Samodelkin 20.09.2014 17:00

Ответ: Faded [игра мечты]
 
На самом деле раз у героини могут начинаться проблемы с психикой, есть большой простор для создания хоррор-мистической атмосферы. Вообще игроку можно предложить выполнять какие-либо действия для снятия показателя шкалы психологической перегрузки, например если лечь спать, может возникать бредовый сон, где игроку предложат выполнять квесты, в зависимости от результатов выполнения квестов может меняться психология персонажа (тут я автоматически предлагаю заменить чёрную шкалу, на более разнообразную систему различных характеристик, которые формируют личность персонажа). Квесты во сне могут представлять собой видения, предзнаменования, иную трактовку произошедших событий в реальном мире, и другие продукты подсознания, которые будут давать подсказки для выполнения квестов в реальном мире (которые в свою очередь должны быть довольно сложными: если не получается пройти - иди поспи). В зависимости от верования персонажа, сны могут принимать те или иные религиозные, оккультные или мифологические оттенки. Таким образом персонаж живёт как бы в двух мирах, и события происходящие в одном мире влияют на события в другом.

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

Mr_F_ 20.09.2014 18:54

Ответ: Faded [игра мечты]
 
Цитата:

без необходимости сохранения в случае смерти персонажа
не совсем понял этот момент. смерти ГГ или смерти НПС?
как это поможет не сейв-лоадиться в любом случае?

Samodelkin 20.09.2014 19:45

Ответ: Faded [игра мечты]
 
Цитата:

Сообщение от Mr_F_ (Сообщение 286993)
не совсем понял этот момент. смерти ГГ или смерти НПС?
как это поможет не сейв-лоадиться в любом случае?

В случае смерти ГГ, или точней вообще избежания моментов, когда игра кончается и требует загружать сейв.

Например:
* В GTA3 и последующих частях перса лечили в больничке, но отбирали оружие, проваливали миссию и ещё некоторое количество плюшек отбирали, правда в последних частях сильно упростили -- оружие и плюшки оставляют (что имхо плохо).
* Намного лучше сделано в Dark/Demon's Souls -- перс возрождается у костра, но теряется очень много плюшек и достижений, и сейв-лоадов нет.
* Braid - там умереть нельзя -- т. к. в случае смерти нужно как в плеере перемотать время обратно и переиграть момент.

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

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

EvilOkta 23.09.2014 14:23

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

Края карты надо как-то по другому зашивать, а то получаются графические артефакты, но это наверное потому, что представлен только фрагмент карты

Прогулялся по воздуху над подземным переходом, потом персонаж вспомнил про гравитацию и упал

Езда на машине сделана неплохо, в верном направлении разрабатываешь )

продолжаю изучать

LLI.T.A.L.K.E.R. 29.09.2014 04:25

Ответ: Faded [игра мечты]
 
**** Crash! ****
на уровне обучения:
почитал про управление
провёл диалог
подошёл к разноразмерным предметам, через 5 сек - вылет

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 50 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
WinXP, ЭВМ 2008 года

спасибо за такой проект, серьёзный и красивый

Mr_F_ 29.09.2014 12:45

Ответ: Faded [игра мечты]
 
Судя по логу - out of memory, постараюсь урезать пожираемую память в будущих патчах.
Но пока что юнити не на моей стороне: http://forum.unity3d.com/threads/unk...e-1-gb.267475/

А именно, он тупо держит в оперативке несжатый звук, которому было сказано "stream from disk" (!)
----

Давно патчей не выпускал, на то есть причина - делаю большой сюжетный апдейт.
Ну и ещё на подработку приходится часть дней тратить.

Mr_F_ 04.11.2014 16:05

Ответ: Faded [игра мечты]
 
Доступен новый патч.

0.018
- камера от 3го лица ведёт себя более вменяемо
- ГГ наводит руку с оружием и голову в сторону прицела
- стёкла бьются немного лучше
- уменьшена занимаемая оперативная память, ускорено время загрузки
- убран баг, когда NPC начинали быстро бегать на одном месте
- убран баг с зависанием персонажа при подбирании модификаций к оружию из коробок

Вообще собирался над геймплеем/мотивацией серьёзно начать работать, но для начала пришлось всякие косяки править, их и выложил в отдельный патч. Есть ещё много всяких наработок, которые отдельно лежат, и в основной билд их пока рано сувать.

По камере я делал целый ресерч:
http://ndotl.wordpress.com/2014/10/1...person-camera/
Но пока вставил только базовые вещи из экспериментальной версии, как то нормальную коллизию (если в каком-то месте камера всё же за стену заедет - там у левела физмеш кривой просто, но вообще такого не должно быть нигде) и мауслук, т.к. в той версии пока остаются вопросы с удобностью её.

Ещё меня напрягает тестировать игру 1000 раз. Каждое, даже самое маленькое нововведение может легко сломать игру в 5 местах, причём совершенно неожиданных. Как можно вообще в игре с кучей комбинаций событий делать какие-то юнит тесты и автоматизировать это? По ходу никак - только самому всё возможное пробовать делать.

moka 04.11.2014 16:13

Ответ: Faded [игра мечты]
 
Цитата:

Сообщение от Mr_F_ (Сообщение 288951)
Ещё меня напрягает тестировать игру 1000 раз. Каждое, даже самое маленькое нововведение может легко сломать игру в 5 местах, причём совершенно неожиданных. Как можно вообще в игре с кучей комбинаций событий делать какие-то юнит тесты и автоматизировать это? По ходу никак - только самому всё возможное пробовать делать.

Автоматизировать можно очень много чего.
Тут скорее вопрос как ты это дело "построил" изначально. Не достаточно модульно видимо.

Mr_F_ 04.11.2014 16:24

Ответ: Faded [игра мечты]
 
Ну а как бы ты строил?

moka 04.11.2014 17:01

Ответ: Faded [игра мечты]
 
Цитата:

Сообщение от Mr_F_ (Сообщение 288953)
Ну а как бы ты строил?

Конкретного ответа тут не найдешь.

Все сложно. Но "модульность" - это главное, как это применяется в твоем случае - тебе нужно знать самому.
Для например AI, должна быть какая-то абстракция, которая будет конечно зависить от других компонентов игры, но суть в том чтобы иметь как можно независимую сиситему AI.
Я бы делал графовый AI, но он не детерминистичный, тем самым его для дебажинга его, нужно иметь туулсет для контроля данных в графах.
Но по сути у npc есть "приоритеты" они могут исходить из окружения и других "перков", и далее есть метод эвалюации этих приоритетов.
"Задание" - это перк, должны быть условия того как оно выполняется, и возможны последствия - присваивает новые перки персонажу. Каждый перк должен иметь свой метод эвалюации исходя из разных факторов.
Все перки "конкурируют" в таблице приоритетов, чтобы npc знал что важнее.
Например если убить NPC - это создает информацию, которая может попасть в "руки" другим NPC, если этому NPC был важен убитый, то эти два фактора могут привезти к последствиям: повлиять на характеристики, такие как отношение к убийце, а также создать перк "месть". У этого перка есть метод эвалюации, который может выдать разную степень приоритета, например, если цель близко и у мстителя есть оружие а также степень отношения к цели весьма негативна - то выше приоритет перка. Тут нужен баланс, например если отношение ужасно негативное, но у мстителя нету оружия, но цель близко - это может все равно быть весьма высоким в приоритетах чтобы совершить отомщение. Тут баланс.
Также если цель мертва, или отношение исправить, то естественно месть - становится менее вероятной. Или если npc труслив и нету оружия, то это сильно влияет на приоритет данного перка. Приоритет должен быть в радиусе 0..1. Где 1.0 - идеальные условия.
Это весьма схоже с мелкой нейро-сетью где разные факторы влияют на приоритет - эвалюация. По факту я делал мелкие нейро-сети, с мелким сэмплом данных, тупо основанных на моих убеждениях, и любопытно, но натренеровать мелкую сеть выдавать приоритет из примерно 4 факторов - результат был весьма успешный.

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

Например для отомщения, у тебя должен быть такой путь:
(найти орудие) > (подойти к цели) > (атаковать) > (цель мертва)
Если орудие есть, или не требуется, то двигаемся далее, если у цели, то атакуем, если цель мертва - цепочка закончена.

Тут не все просто, т.к. есть условия, и они весьма отличаются, есть условия влияющие на перемещение между node'ами у графа.

Проще имхо будет использовать Behaviour Trees для каждого перка, у тебя будет весьма контролируемый сценарий.



Пару сложностей:
1. как сделать параллельность в целях. В behaviour trees, как бы все "ручками" определено. И не представляю возможность запуска паралельно нескольких деревьев. Для системы графов, тут сложно, т.к. нужно строить path по графам динамически, и приоритеты уже будут не по перкам, а во время постройки всего пути, применятся должны разные модификаторы. Также node'ы в графах могут приводить к ответвлениям. Например "найти оружие", может привезти к созданию нового перка, где метод приобритения оружия может быть разным, например украсть, либо убить чтобы получить, либо купить, и тут снова, все зависит от модификаторов и характеристик самого npc. Я думал над системой эвалюации во время создания пути по графу, где каждое ответвление должно проходить взвешивание, и далее самый "легкий" путь - в приоритете.
2. Смена целей, тут можно попасть в неприятные ситуации когда цели меняются весьма быстро, решается имхо разными методами, например все приоритеты могут меняться "плавно" в зависимости от степени "важности".

Мысли вслух.

Mr_F_ 04.11.2014 17:23

Ответ: Faded [игра мечты]
 
Цитата:

Я бы делал графовый AI, но он не детерминистичный, тем самым его для дебажинга его, нужно иметь туулсет для контроля данных в графах.
AI принципиально code-based, я писал о нём тут:
http://forum.boolean.name/showpost.p...78&postcount=6
Он полностью детеминированный и отлично дебажится. Недетерминированы факторы, которые влияют на него внешне.
Мне крайне не нравятся идеи с мутными коэфициентами и fuzzy logic, т.к. сложно отдебагать как раз.

С тестированием сложности, т.к. могут собраться 10 нпс гурьбой и друг друга конфузить жестоко, а ещё игрок при этом чёрти что делает, а ещё и кроме ботов хватает всяких багов - с поиском пути, или вот пришлось проходить всю игру, чтобы заметить что новое недоIK нацеливание оружия заставляет ЛЕВУЮ руку ГГ вращаться куда-то внутрь себя, если у неё мало здоровья, когда включена анимка хромания (!), потом ещё выяснилось что карта города, где надо выбрать место встречи не нажималась, после того как я меш с ней перенёс в другое место и хрен знает что.

moka 04.11.2014 18:01

Ответ: Faded [игра мечты]
 
Цитата:

Сообщение от Mr_F_ (Сообщение 288955)
С тестированием сложности, т.к. могут собраться 10 нпс гурьбой и друг друга конфузить жестоко, а ещё игрок при это чёрти что делает, а ещё и кроме ботов хватает всяких багов - с поиском пути, или вот пришлось проходить всю игру, чтобы заметить что новое недоIK нацеливание оружия заставляет ЛЕВУЮ руку ГГ вращаться куда-то внутрь себя, если у неё мало здоровья, когда включена анимка хромания (!), потом ещё выяснилось что карта города, где надо выбрать место встречи не нажималась, после того как я меш с ней перенёс в другое место и хрен знает что.

Для этого же есть Беты и хорошая система для репортинга (встроенная). С возможностью восстановления стейта игры из репорта.

Mr_F_ 04.11.2014 18:20

Ответ: Faded [игра мечты]
 
Цитата:

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

moka 04.11.2014 20:28

Ответ: Faded [игра мечты]
 
Ну если в твоих сутках 48 часов, и у тебя пару клонов кто пишет код, создает медию, делает QA, пишет геймдиз, то ты правильно делаешь, что не выкладываешь "wip". ;)


Часовой пояс GMT +4, время: 22:38.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot