Квест система

Общие вопросы о Unity3D

Квест система

Сообщение HacKeR 30 окт 2011, 21:10

Как должна выглядеть квест система в коде? с чего начать? что лучше почитать? Дайте пинок в нужном направлении пожалуйста.
Заранее спасибо
HacKeR
UNIверсал
 
Сообщения: 360
Зарегистрирован: 12 ноя 2010, 21:14

Re: Квест система

Сообщение DbIMok 30 окт 2011, 21:34

какого плана квест? например, ищу что-то, помещаю в инвентарь, комбинирую, помещаю на сцену изменяя состояния объектов?
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Квест система

Сообщение HacKeR 30 окт 2011, 21:45

DbIMok писал(а):какого плана квест? например, ищу что-то, помещаю в инвентарь, комбинирую, помещаю на сцену изменяя состояния объектов?

Для начала просто найти что-то.
HacKeR
UNIверсал
 
Сообщения: 360
Зарегистрирован: 12 ноя 2010, 21:14

Re: Квест система

Сообщение seaman 30 окт 2011, 22:03

Ну если неважно что, то можно начать с текстовых квестов. Для них есть несколько движков. У многих открытые коды. В любом случае оттуда можно многое взять для своей системы.
Например:
TADS
http://ifiction.ru/
http://quest.nm.ru/
Готовых решений Вы не найдете, но если внимательно изучить их опыт появится масса мыслей.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Квест система

Сообщение Syberex 06 ноя 2011, 03:27

Квесовые системы бывают (с моей точки зрения ;) ) одношаговые - "принеси тото, принес давай, спасибо..." и многошаговыми - повторяется много циклов принеси/поговори. Первый вариант реализуется проще второго и предпочтительнее для мира небольшого размера, а второй сложней, но не на много.
Потребуются таблицы в базе:
1. Для хранения списка квестов и соответствующих НПС их отображающих (хотя можно и без нее если все на диске правильно расположить с привязкой по ID НПСя).
2. Для хранения списка квестов взятых каждым персонажем, также персонажам вероятно нужен квестовый инвентарь, но можно все свалить в один общий :D
3. Таблица дропа по необходимости.

У НПС уже должна быть прикручена система диалогов (отдельная тема), да и сами НПС тоже необходимы :)
Далее по порядку:
1. Делаем в диалогах НПС кнопку, открывающую список доступных у него квестов
2. При выборе квеста запускаем скрипт квеста, в котором по условию далее
3.1 Если квест не взят - выдаем первый экран
3.2 Если квест взят, ищем в инвентаре, что нужно принести, проверяем количество ... Все ок? Удаляем предмет, удаляем квест у персонажа, говорим спасибо :)
4. Обработка при смерти мобов выдачи квест-предметов (по необходимости).

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

Думаю не надо никаких систем, все довольно просто ;)
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Квест система

Сообщение seaman 06 ноя 2011, 14:28

Неинтересные у Вас будут квесты. Да и слишком все обще. Вы попробуйте реализуйте то что тут написали,- выявится много тонкостей, которые не так просто решаются. Особенно, если не программировать каждый квест отдельным скриптом, а постараться сделать что-то получше. Нормальные квесты должны цепляться друг за друга. Хорошие квесты пересекаться сложным образом.
Вывод - хорошая квестовая система - это тоже довольно сложная штука.
Даже хорошая система диалогов не такая простая штука. Выбор ветки диалога может зависеть от массы параметров - от скилла ГГ, от выполнения неких квестов (возможно совсем далеких от этого диалога), от наличия предметов в инвентаре, да мало ли от чего еще.
Причем система диалогов достаточно сильно завязана с системой квестов. В результате диалога можно получить квест, выполнить квест.
Все это, конечно, можно спокойно запрограммировать отдельными скриптами для каждого диалога, каждого квеста. Однако в приличной РПГ у Вас будет столько писанины, что Вы просто запутаетесь. Поэтому было бы очень хорошо вместо ручного программирования иметь некий редактор диалогов и квестов.
Конечно, VIZIO может очень прилично помочь в решении проблемы. Хотя бы тем, что там есть FSM (ну и многим другим). Однако я предпочитаю в данном случае специализированные решения. Пусть они и не просты.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Квест система

Сообщение Syberex 06 ноя 2011, 15:01

В какой степени интересность квестов зависит от реализации квестовой системы? :-\

Все зависит от размеров мира и количества необходимых квестов, для больших миров и квестовых систем, возможно и нужны сторонние вспомогательные инструменты, но такие объемы будут разрабатываться уже не 1 человеком :)

Ну а для одного чела, желающего сделать 3-10 квестов, хватит и одношаговой простой системы, что я описал. Это подразумевает до 30 текстовых файлов с диалогами, запутываться не в чем :) ... При необходимости она легко расширяется до многошаговой.
Хотя и из пушки по воробьям никто не мешает ...

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

А что получше - все в 1 скрипт? Или я не правильно понял?
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Квест система

Сообщение seaman 06 ноя 2011, 16:45

Да, в один скрипт (ну 3-5), который читает базу данных и на ее основе выдает все что нужно. В базе тексты по скриптам/диалогам, имена необходимых айтемов, имена НПС, которые выдают квесты, имена переменных, от которых зависят ветки диалогов и выданные квесты, имена переменных, которые меняются в результате выполнения/получения квеста и т.д, и т.п.
В какой степени интересность квестов зависит от реализации квестовой системы?

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

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

Я как-то не представляю зачем вообще какая-то система для 3-10 квестов. Пара триггеров, три скрипта, разве это система? И плохо представляю игру, в которой только 3-10 квестов. Если это РПГ, то Вам со временем это покажется мало, а система не расширяема! Если это квест (типа "Штырлица"), то и там все же не 10 квестов, а поболее.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Квест система

Сообщение arahis 06 ноя 2011, 18:28

Пока вы тут переливали из пустого в пустое я с помощью яндекса нашел то что ему нужно больше всего - программный код:
http://port-of-rpg.com/sozdanie-kvesta/
http://game-dll.mirbb.net/t12-topic
Аватара пользователя
arahis
UNIт
 
Сообщения: 58
Зарегистрирован: 02 ноя 2011, 23:18
Откуда: Центральная Украина

Re: Квест система

Сообщение seaman 06 ноя 2011, 18:42

Сорри, но Вы нашли что-то свое. Я буду рад, если Вам это поможет. Имхо это никому не нужно. Я так не собираюсь писать на Готик-скрипте или на php.
Вы бы уж хотя бы этот пример привели:
QuestIt
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Квест система

Сообщение arahis 06 ноя 2011, 20:42

1)Человек просил код а не спор что лучше простая система квестов или сложная.
2) Ну могу воспользоваться онлайн переводчиком но это же не мне нужно а ему.
Аватара пользователя
arahis
UNIт
 
Сообщения: 58
Зарегистрирован: 02 ноя 2011, 23:18
Откуда: Центральная Украина

Re: Квест система

Сообщение seaman 06 ноя 2011, 21:11

1. Код для квестовой системы никто не будет выкладывать на форуме. Даже простая система Syberex не такая и простая,- код будет достаточно большой. В лучшем случае квестовую систему будут продавать, как по ссылке, которую я привел. Поэтому с самого начала было ясно, что тема слишком неконкретная, располагающая к свободному обсуждению.
2. Человек просил не код, а "пинок в нужном направлении". Читайте внимательнее вопрос. Пинок был сделан в двух направлениях - в 4 и 5 постах. Затем пошло обсуждение, которое просто вытекало из самой темы.
3. Насчет переливания из пустого в пустое. Да. Без каких-то конкретных решений это так. Поэтому завязываем.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Квест система

Сообщение arahis 06 ноя 2011, 21:13

Ладно ладно. Эх где тут еще интересные темы что бы поболтать?
Аватара пользователя
arahis
UNIт
 
Сообщения: 58
Зарегистрирован: 02 ноя 2011, 23:18
Откуда: Центральная Украина

Re: Квест система

Сообщение Zaicheg 06 ноя 2011, 23:24

arahis писал(а):Ладно ладно. Эх где тут еще интересные темы что бы поболтать?

Темы для болтовни располагаются в бане )
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Квест система

Сообщение ArtUni3d 07 ноя 2011, 00:01

А что сложного?
Делим квест на этапы, нумеруем их, пишем в переменную текущий этап и создаем условие для перехода на следующий этап.
Аватара пользователя
ArtUni3d
UNITрон
 
Сообщения: 249
Зарегистрирован: 27 апр 2011, 22:12

След.

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21