Народ, я смотрю тут было много проектов, и задумок- тетрисов, стратегий и пр. А некому не приходило в голову создать старый добрый текстовой квест, без всяких там наворотов,можно даже в текстовом режиме. Если у кого есть какие идеи пишите, обмозгуем, вдруг чаво и получится...
P.S. ВСЕХ С НАСТУПАЮЩИМ.
Чет тут глухо как в танке, ну же творческие умы подкидывайте идеи....
а какие могут быть идеи ? это простая задача и все уже давно реализованно...
Да похоже уже здесь вымерли все настоящие любители классических, старых добрых игр...
Есть старые игры заслуживающие внимания, но текстовые игры, это явно прошлый век...
КОнечно на заре компьютерной эры, игры были совершенно не такие как сейчас -
по экрану гонялись буквы друг за другом, и только воображение могло подсказать что
буква D это рыцарь а точки "." это монстры

Но сейчас то кто в такое будет играть ?
p.s. тебе хочется написать текстовую игру ? ну пиши - реализуется то она очень быстро...
какие у тебя вопросы по реализации ?
создаешь дерево вопров , и проходишь его в зависимости от того как отвечает юзер..
Altair, так делается, если квест статический - т.е. если сцены меняются только от введенных игроком ответов. Это конечно легко. А если есть, например, у игрока инвентарь, и в зависимости от того, что в инвентаре, меняется как вопрос, так и варианты ответа? Т.е. для каждой сцены должен сформироваться определенный набор ответов, и не обязательно для одной и той же сцены этот набор будет всегда одинаков! И, плюс, от ответов, меняется еще и сам инвентарь! Получается для каждой сцены или для каждого варианта ответа нужно писать отдельную процедуру, которая изменяет параметры инвентаря, игрока и прочее, так что ли? Может есть более простая реализация? (Мне самому интересно...)
Бродяжник
3.01.2006 13:27
Если поковыряться в файлах Fallouta, то видно, что все равно в конце концов все сводится к чему-то вроде дерева вариантов. Просто можно тупо зашивать это дерево в программу, а можно держать его в виде каких-то скриптов. Что же касается текстовых игр, то не знаю, как квесты, а такие игры, как ADOM и Angband... в них играют и сейчас. Разработать квестовый движок можно, можно и готовый взять. А кто будет писать сюжет и ваять локации? Ведь главное-то в этом заключается...
Цитата
а такие игры, как ADOM и Angband..
начнем с того, что adom текстовая rpg
вообще adom классная вещь
в Angband не играл к сожалению...
для меня знакомство с текстовыми квестами началось с zx LordOfTeRings - вот это была вещь.... щас такого не делают уже...
Цитата
А кто будет писать сюжет и ваять локации? Ведь главное-то в этом заключается...
Был бы движок, а писаки и ваяки найдутся! :-D А вот насчет "взять готовый движок" - думаю, полезнее и интереснее будет самим написать.
Только квест не просто белые строчки на черном экране, а, например, проиллюстрированы еще картинками. Играл кто-нибудь в "Космических рейнджеров"? Вот там красиво все сделано. Во второй части есть квест - целая РПГ - отдельный квест, один из... не помню сколько.. штук 50 их наверно! Там и инвентарь есть чуть-ли не в каждом квесте, и картинки (правда повторяются частенько). Мы все с другом хотели нащелкать фоток на цифровик, и слепить из этого квест по реальным событиям - да вот все времени не было...
Бродяжник
3.01.2006 20:42
Цитата
вот все времени не было...
Вот на этом все обычно и заканчивается
А сейчас время появилось. А тут вдруг и тему подняли такую! Совпадение? ;-)
Бродяжник
4.01.2006 18:31
Я часто подумывал о том, как бы замутить квест (уж больно нравилась Кирандия). Могу высказать некоторые соображения. Если брать совсем грубо, то есть локации, в которых есть некоторые объекты. Игрок может воздействовать на эти объекты либо сам, либо с помощью других объектов. Он может помещать эти объекты в свой инвентарь и носить их с локации на локацию, и может класть их на землю. В результате воздействия на объекты могут происходить следующие вещи:
- объекты могут уничтожаться
- могут появляться новые объекты
- могут меняться свойства объектов
- могут изменять свои значения некоторые глобальные флаги и/или локальные флаги локации
- могут меняться качества персонажа
- может меняться отображение локации (описание и/или картинка)
- ...
В идеале хотелось бы сделать своего рода скриптовый язык, который бы все это описывал вот примерно так:
Код
Location Room1 {
Event OnEnter {
if Room1.Visited = 0
Room1.Visited = 1
Room1.DoorOpen = 0
AddItem(Room1,"Key1","Ключ","Большой ржавый ключ")
AddExit(Room1,"Door1","Дверь","Тяжелая дубовая дверь")
Text "Эта комната вам незнакома."
else
Text "В этой комнате вы уже бывали."
endif
Text "В северной стене видна дверь."
if Room1.DoorOpen = 1
Text "Она открыта."
else
Text "Она закрыта."
endif
ListAllItems
}
Event OnUse(Item1,Item2) {
if Item1 = "Key1"
if Item2 = "Door1"
if Room1.DoorOpen = 0
Room1.DoorOpen = 1
Text "Вы отперли дверь"
else
Room1.DoorOpen = 0
Text "Вы заперли дверь"
endif
else
Text "Ключ для этого не предназначен"
endif
else
Text "Ничего не происходит"
endif
}
...
}
Это просто набросок. Поэтому для начала нужно было бы спроектировать одну локацию с парой-тройкой предметов и описать ее на подобном псевдокоде, стремясь к тому, чтобы минимизировать число ключевых слов. На основе этого разработать язык скриптов. А потом писать его интерпретатор.
С другой стороны нужна еще система обработки команд пользователя. Опять-таки, вначале нужно составить перечень допустимых команд и написать их интерпретатор. А потом разработать систему формирования команд - либо через консольный ввод, либо через GUI. Все это было бы интересно... я могу принимать участие в обсуждении. А писать что-то всерьез не хочу - и так есть чем заняться.
Цитата
В идеале хотелось бы сделать своего рода скриптовый язык
Зачем скриптовый язык? Для создания карт? Тогда просто можно сделать редактор, в котором все можно было бы увидеть. Для создания новых объектов на карте(ну, например, у тебя AddItem(Room1,"Key1","Ключ","Большой ржавый ключ") )? Но все объекты типичные! Просто в редакторе вшиты некоторые необходимые типы(к примеру "ключ") и можно давать названия отдельным экземплярам(как програмные "Key1" так и пользовательские"Большой ржавый ключ").
Бродяжник
10.01.2006 16:53
Скрипты нужны для задания реакции на игровые события. Например, в сценарии сказано:
"После того, как Джек ударил жезлом по алтарю, на алтаре материализовался Огненный Кубок." Это значит, что где-то должно быть записано, что если игрок использовал объект "жезл" на объекте "алтарь", то нужно а) либо добавить в сцену объект "кубок", либо сделать уже имеющийся объект "кубок" видимым и доступным; а также б) проиграть анимацию "материализация кубка".
Где-то же это надо указывать? А в других случаях надо не добавлять, а удалять объекты, и не один, а много. То есть реакция на внешне сходные события - "применить объект А к объекту Б" - может очень сильно различаться. И при этом может учитываться то, какие действия игрок уже совершил ранее. Если я разговариваю с Архимагом до того, как поговорю с Ведьмой, он скажет мне что-то одно, а если после того, то что-то другое. Где прописывать все эти условия?
Хотя я и не настаиваю на своем мнении. Я бы делал так, но варианты вполне возможны.
Тогда согласен, без скриптов не обойтись.
hardcase
13.01.2006 23:06
Щас ломаю голову над собственной байт-машиной - развлекаюсь компиляторами, а в объектный код транслировать тяжеловато.
В принципе могу помочь сделать интерпретатор скриптов - было бы кому нужно.
Неужели не скучно писать локальную историю? Создайте сетевой квест =) Есессно придется и серверный клиент написать, но так хотя бы настоящих писак привлеч можно, в плане разработки сюжета. Кроме того, если все выйдет достаточно интересно, можно написать клиент и на др. платформе. К примеру смартфоны...
Когда-то читал биографию людей связаных с разработкой nix'ов. Они тоже играли в сетевые текстовые квесты =) В одном из них понравилось, что при входе определенной особы в храм, на алтарь падал сумрачный свет... Что самое удобное, такие спецэффекты не требуют особой производительности =)
Цитата
В идеале хотелось бы сделать своего рода скриптовый язык, который бы все это описывал вот примерно так:
Такой язык уже реализован в Heroes of Might&Magic 4. Это настолько мощная вещь, что, создавая карты в редакторе, ты практически неограничен в творческих возможностях, и можешь создавать
свои собственные игры. Так, есть любительские карты, где герои играют в "баскетбол" или в шашки... хотя это уже изврат... А обычные приключенческие квесты вообще легко создаются, причём опять же есть карты с очень интересными нелинейными сюжетами... и к тому же все возможности самого геройского боевого и адвенчурного движков к вашим услугам.
StormSnake
5.10.2006 19:51
мнэ... насчет геройского и адвенчурного — не знаю, мало играл. но как по ине — свое создавать интереснее! потому что красивее, хотя работать и дольше.
опаньки! мое первое сообщение на форуме!
Честно? Лучше чем то что уже написанно не сделаете. Пользы - 0 от даже изучения данной темы.
Согласен что это прошлый век. Есть готовые движки, можно использовать их такими как они есть или модифицировать но не создавать.
--Евгений--
17.05.2017 0:40
Program Kvest ;
Uses crt;
Var b,a,c,g,z: integer;
Begin
writeln(
'Наконец-то, вы собираетесь на заслуженный отдых после 11-и mесяцев работы.Куда вы отправuтесь? 1)море; 2)лес.'
);
readln(a);
If a=1 Then
Begin
writeln (
'Море... Отличный выбор: отель, бассеин, вежливый персонал и теплый воздух! Что может быть лучше? На какое море вы ходите поехать? 1)Черное 2)Красное '
);
readln(b);
If b=1 Then
Begin
writeln(
'Как вы хотите попасть на Черное море? 1)Машина 2)самолет'
);
readln©;
If c=1 Then
Begin
writeln(
'Машина... Долго, но дешиво. Удачного отдыха.'
);
End
Else
Begin
writeln(
'Самолет?! Я знал что в душе ты АЛИГАРХ. Удачи на камфортном отдыхе.'
);
End;
End
Else
Begin
writeln(
'Как вы хотите попасть на Красное море? 1)Машина 2)самолет'
);
readln(g);
If g=1 Then
Begin
writeln(
'Машина... Долго, но дешиво. Удачного отдыха.'
);
End
Else
Begin
writeln(
'Самолет?! Я знал что в душе ты АЛИГАРХ. Удачи на камфортном отдыхе.'
);
End;
End;
End
Else
Begin
writeln(
'Лес?.. Ну что ж, тоже хорошuй выбор. Эктрим! особенно если еcть только топор! Я бы поехал na море. 1)Взять только топор 2)Пaлатка, топор, еда и т.д.'
);
readln(z);
If z=1 Then
Begin
writeln('ЭКСТРИИИМ!!! Обожаю таких людeй! Весело отдохнуть.');
End
Else
Begin
writeln(
'Просто решил сэкономить на поездке на море? Ну ладно всякие люди бывают, богатые, бедные... Удачного отдыха...'
);
End;
End;
End.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.