Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.12.04;
Скачать: [xml.tar.bz2];

Вниз

Реализация изменцивых от ситуации диалогов в RPG:   Найти похожие ветки 

 
greenrul   (2003-05-19 02:55) [0]

Кажется это называется скрипты. Хочу поведать и посоветоваться - я собираюсь писать RPG и пока разработка только началась, хочу прояснить эту деталь. Я хочу все действия в игре, диалоги, события упростить - не вбивать их намертво в движок, а написать свой маленький язык, на котором я мог делать сам сюжет. Идея такая:

Есть действия, события (да/нет), объекты.
Объекты делятся на вещи для инвентаря, людей, других объектов в мире (например коробка). Действия применимы только к объектам - к каждому типу свое. Примерные действия - взять, дойти до, убить.
События - это булевские переменные. Например есть_в_инвентаре?, жив_ли?, выполнено_ли_занание? и т.д.

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

--------------------
new_dlg
* IF stone_bringed GIVE hero mega-sword SAY Hello, my friend, thank you for bringing me this fu**ing stone! Please take a gift from me!!! ANSWER_1 Thank you, and see you later ANSWER_2 Ok, now may i see your shop inventory? SHOP kuznec

а еще можно будет делать редиректы в диалогах - у каждой фразы будет свой код. допустим они будут описываться в начале скрипта. а потом диалог предстает в таком виде:

1: SAY %5 ANSWER_1 %2 GO #4 ANSWER_2 %3 GO #5 - это значит : идет первый диалог, сперва вас привествуют пятой фразой, первый вариант ответа - вторая фраза, если я вибираю это, то идет 4 диалог, если я выбираю второй вариант ответа, идет 5ый диалог.


Уфф... надеюсь никого не запутал. Какие есть комментарии и замечания к этому творению? Хранить думаю в отдельном ini файле, не загружая его полностью, а читая/записывая его.


 
greenrul   (2003-05-19 03:17) [1]

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


 
Кен   (2003-05-19 05:00) [2]

Хочешь пример диалогов ? Скачай мою мини-игру : http://www.triponavtika.narod.ru/navigame.zip
Пока всё давольно по-левому выглядит. Но речь о диалогах.

Диалоги в виде открытых текстовых файлов. Один персонаж - один файл. Каждый раз когда ты обращаешься к персонажу загружается файл и по нему ведётся беседа. Можешь не вылезая из игры подправлять файлы и смотреть что как работает.

Скрипт состоит всего из ТРЁХ команд.
set apelsin 1 - Положить в сумку героя один апельсин.
add apelsin 1 - Положить в сумку героя ещё один апельсин к уже имеющимся. ( или выложить если будет -1 )
if apelsin=1 goto 10 - Перейти к строке 10 если у героя в сумке один апельсин.
И ВСЁ ! Помоему трёх команд достаточно. Но можно обсудить.


Можно ещё добавить две команды. Для записи событий в дневник героя и проверки их наличия.
Дневник - это типа памяти. Например, герой поговорил с персонажем игры по имени Гарфельд. Пишем в дневник. "Поговорил с Гарфельдом." Далее если мы опять обратились к Гарфельду, то он сделате проверку на эту запись в дневнике и скажет "Привет, старый знакомый !"


 
cyborg   (2003-05-19 10:21) [3]

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

greenrul Думаю лучше ввести блоки ограничивающиеся какими либо символами, например [], у тебя так в диалоге может выполнятся только одна команда, используя блоки в них можно хранить несколько команд, например [дать пирожок;показать картуXY;дать пульки;установить флаг выполнения квеста;дать XX очков опыта]

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


 
greenrul   (2003-05-19 14:23) [4]

окей, я в любом случае как более-менее демка будет - выложу


 
Кен   (2003-05-20 01:24) [5]

cyborg ©
> Кен трёх команд для RPG недостаточно, нужно не только давать
> и брать предметы, но и устанавливать новые персонажи, показывать
> карту, улучшать характеристики персонажа и т.д.

А как ты в реальной жизни можешь "установить новые персонажи" ? Родишь что ли ? Все персонажи устанавливаются в начале игры или уровня и всё.
Если обязательно надо ввести кого то нового в игру, то тебе могут дать ключ от комнаты, где этот кто-то сидит. Или ты сам сможешь освободить его из тюрьмы. Или ещё что-нибудь. Мало ли вариантов ?

> показывать карту,
Ну положи главному герою (то есть нам) в сумку карту. А посмотрит её он уже сам.

> улучшать характеристики персонажа и т.д.
Улучшать характеристики персонажа можно тоже через сумку. Положить ему в сумку супер отмычку или какой-нибудь супер пистолет. Вот и улучшение.

Вообще для этого игра должна предусматривает улучшение характеристик персонажа. Да и мало ли что она может ещё предусматривать ?


 
cyborg   (2003-05-20 10:34) [6]

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

Чтобы показать карту не нужно ничего никуда ложить, нужно просто открыть место на карте игроку.

Опять сумка :), эдак у тебя не игра будет, а сумколазание.

>>Вообще для этого игра должна предусматривает улучшение характеристик персонажа.
>>Да и мало ли что она может ещё предусматривать ?

Читай cyborg © (19.05.03 10:21)


 
Soft   (2003-05-20 18:08) [7]

>>greenrul © (19.05.03 02:55)
>>Реализация изменцивых от ситуации диалогов в RPG: [Delphi, Windows]

Посмотри TES в Morrowind. На данный момент они создали игру, которую могут доделывать все желающие, внутренний язык круче чем в 1С, AI всех пресонажей реализован на этом скрипте, графика и модели скелеты отдельные текстуры, звуки - все реализовано в виде одной большой, редактируемой базы данных. А вот движок у них не оптимизирован:(( Для максимальных требований нужен GeForce4(Ti) и Athlon XP/P4 2500.


 
Кен   (2003-05-21 01:48) [8]

cyborg ©
> Кен мысли глобальней, персонажи могут придти и уйти, если
> обидел какого-нибудь босса то появляются его слуги и т.д.

Откуда появляется слуга ? Из космоса прилетает ?

Чтобы босс обиделся на разговоры нужно, чтобы через разговоры можно было менять характеристики босса. Доброжелательность/агрессивность в Фоллауте. Вопрос в том, есть ли у босса эта характеристика. В Хитмане, например, нету. Однако игра классная. Если же есть, то в принципе получится всё тоже самое. Сумка и флаги. Только не у главного героя, а у каждого персонажа.


Soft ©
> Посмотри TES в Morrowind. На данный момент они создали игру,
> которую могут доделывать все желающие,

А где её посмотреть ? Её можно где-нибудь скачать ?


 
Asteroid   (2003-05-21 02:13) [9]

> Кен © (21.05.03 01:48)
> А где её посмотреть ? Её можно где-нибудь скачать ?
Она целый диск занимает.


 
Кен   (2003-05-21 04:12) [10]

Ну и что ? За неделю скачается. Было бы откуда тянуть.


 
cyborg   (2003-05-21 12:54) [11]

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


 
TButton   (2003-05-21 23:57) [12]

2 Кен
Мдя... два вопроса:
1.Почему телка все время нервничает?
2.Почему такое еб****ое управление?


 
Кен   (2003-05-22 02:05) [13]

TButton ©
> 1.Почему телка все время нервничает?
Потому, что нету подходящей анимации. И где её взять непонятно. Хотелось бы анимацию Томб-рэйдера с такими движениями как : весение на руках, подбирание предметов, нажимание на рычаги, вождение транспорта.
Знать бы где это взять.

> 2.Почему такое еб****ое управление?
Потому, что это только начало.
Сейчас уже мышь приделал. Чтобы мышью можно было поворачивать в стороны и смотреть выше ниже. Старался сделать по типу GTA3.
Выложу чуть позже, когда изменений накопится побольше.



cyborg ©
> Кен зачем же переходить из крайности в крайность, когда
> я говорил мысли глобальней это значит разверни своё воображение
> шире, а не прилетай людей из космоса.

А куда шире ? Вот, что вообще может делать персонаж игры ? Давайте список составим :
1 ) Атаковать.
2 ) Пойти в заданную точку.
Что ещё то ? Можно ещё собирание предметов добавить или их перетаскивание. Но смысла в этом копейка.

Плюс ещё действия по умолчанию. Когда персонаж закончил атаку или пришёл в заданную точку.
1 ) стоять на месте.
2 ) гулять в заданном пространстве.
Это всё может сопровождаться любой анимацией. Можно находясь на одном месте танцевать или лежать и спать или что угодно.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2003.12.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.006 c
6-11660
GreySerg
2003-10-08 18:32
2003.12.04
Как с помощью indy idHTTP визуально отображать закачку ?


14-11703
electric
2003-11-12 20:12
2003.12.04
$$$ Money $$$


6-11649
Peter
2003-10-09 16:04
2003.12.04
Почему???


8-11632
LevAlexander
2003-08-04 11:28
2003.12.04
MediaPlayer


8-11630
Саша2
2003-08-01 15:59
2003.12.04
avertv studio 203 -> delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский