Я писатель про заек.
Предлагаю к рассмотрению проект текстовой игрушечки, в которой вместо стандартного ввода слов (что в случае русского языка, на мой взгляд, чересчур усложняет игровой процесс) в качестве парсеров используются условные знаки.
Единственный вопрос, занимающий меня в рамках форума - это в каком интерпретаторе лучше делать подобную разработку, и как примерно будет выглядеть код? Любому, кому будет интересно откликнуться, буду очень признателен, поскольку себя самого назвать программистом могу с большой натяжкой.
———————-
Итак, запускаем игру. Выдаётся текст:
На полянке Алиса (1), Коля Герасимов(2), Маша(3) и Корней Чуковский (4). Кем хотите играть сейчас?
Как игроку, мне предлагается увидеть эту полянку глазами любого из этих персонажей. Для этого у меня в распоряжении есть парсер #. Формат его использования (#<номер персонажа>).
Смотрим "глазами Алисы": #1.
(Снова выводится перечисление объектов под номерами). Но теперь уже видны предметы.
Солнечная полянка! Алиса обводит мир загадочными детскими глазами, и видит, что пространство с ней разделяет Коля Герасимов(2), Маша(3) и Корней Чуковский (4). На подстилке (5) лежит печенье (6) и чайник (7).
Дальше, мы в качестве Алисы хотим рассмотреть поближе, к примеру, Колю Герасимова. Для этого у нас есть универсальный парсер @. (при желании, сам парсер можно глобально заменить на иной символ, но это не суть важно.)
Итак, смотрим.
@ 2
Коля Герасимов - мальчик не из робкого десятка. Сейчас он сидит напротив Алисы и смотрит на неё выразительными глазами. На шее у него бабочка. (Жирным шрифтом дан текст, описывающий Состояние объекта Коля на данный момент в глазах Алисы. Оно может меняться. Вопрос: где мне задавать это состояние, в описании объекта Алиса когда я задаю всё, что она видит в разные моменты игры, или в описании объекта "Коля"?)
Дальше, нам в качестве Алисы может захотеться спросить Колю о чём-либо. Пусть список тем для разговора ограничится тем, что Алиса видит вокруг себя. Для общения станем пользоваться двумя парсерами, ! и ?;. Первый для восклицательного обращения, а второй для вопросительного . То есть это по сути эквиваленты команд "сказать персонажу о чем-то" и" спросить персонажа о чем-то".
! 2 4 (сказать Коле о Корнее Чуковском.)
"Ах, что за славные люди, эти детские писатели!" говорит Алиса Коле. "Да? " - сомневается Коля. " А по-моему они все слегка сумасшедшие!
(хотелось бы предусмотреть хотя бы две различные реакции на одинаковое обращение к персонажу. То есть, во второй раз Коля ответил бы как-нибудь по-другому. При этом после определённого ответа Корней Чуковский изменяет своё "состояние". Kак мне это сделать?)
? 2 6 (спросить Колю о печенье)
"А что, Коля, неужели ты не знаешь, что сладкое портит зубы?" интересуется Алиса. " Вот еще выдумки!" отвечает Коля. " От сладкого крепнет уверенность в сегодняшнем дне!" Коля встаёт и идёт к реке. (последнее - это перемена состояния Коли. Он уходит.)
(Кстати, о репликах. Например, я задаю строки ответов на вопросы и восклицания в целом виде, а программа при выводе разбивает их более "литературно". Я задал строку "Вот еще выдумки! От сладкого крепнет уверенность в сегодняшнем дне!" а программа вставляет между предложениями "отвечает Коля" или "интересуется Алиса". Как мне это сделать?)
(продолжение следует)
Неактивен
во-первых: не зачем мучить игроков (это звери редкие и очень ценные)- сделать словесный парсер для такой задумки довольно легко. или на RTADSE пиши- там возможностей даже больше, чем тебе нужно. просто вместо плюсиков и циферок будут вводиться какие-то слова. // я, кажись, знаю как всё это сделать вообще замечательно- у меня давно есть идея создания совсем простого парсера, но я её пока берегу для себя. а тебе нужен именно совсем простой парсер.
во-вторых: есть такая простая вещь, как урка (а лучше- досурка)- в ней ты сделаешь всё, что захочешь. будет просто и тебе, и для игроку. выглядеть это будет так:
авпварпврпаораорполрплпордлолрдлдлдо
ншгншгнгнгнгшгнгшнгнгшнгнгшнгншггншгло
пврпрпаораорорпорполрлорлолололололо
уйцкцй - ЭТО КАКОЙ-ТО ТЕКСТ- енгуекцг
цуреапгшцнапгецнпагцнкпагнцкгнпагцкнг
идти прямо
сесть и заплакать
вырыть другому яму
взяться за ум - ЭТО КАКИЕ-ТО ВАРИАНТЫ ВЫБОРА
а ещё в урке инвентарь есть!
Неактивен
да, ещё: ты собираешься писать свой парсер? дело интересное, да и отрывки текста- неплохи, но писать и парсер и квест не такое уж и быстрое дело. а хотелось бы увидеть твою работу на КРИЛ-2006...
думал, проситься к тебе в команду, да только это дело такое- работа в команде пока ещё вещь неосвоенная и результаты даёт слабые. тема квеста и тексты меня заинтересовали но, боюсь, до конца довести задумку не сможешь. отсюда рекомендации:
1. в первую очередь распиши весь сценарий со всеми концовками и основными поворотами сюжета (слишком подробно можно не писать- главное, чтоб присутствовала начатая, продолженная и законченная идея квеста)
2. потом- выбери себе парсер, либо опытного игрописца. поскольку опытных игрописцев текстовых квестов пока нет в природе- выбери себе платформу (RTADS/URQ/Adrift) - в любой из них легко разобраться. в крайнем случае- пиши на любом языке высокого уровня, который знаешь, и не заморачивайся с придумкой своего парсера.
эти советы имею смысл, если собираешься учавствовать в КРИЛ-2006
Неактивен
b0n0b0 написал:
Куски кода - интересно.
Советы - неинтересно.
http://www.taplap.ru/ftpindex.php?indir … ng/SOURCE/
это- ссылка на исходники двух качественных квестов, которые я нашёл на тяп-ляпе. просмотреть интересно, хотя парсер- никакой.
p.s.
у меня ссылка работает, а если у тебя не сработает- ищи на тяп-ляпе файлыprogrammingSOURCE
Неактивен
насчёт "переселения душ": этого предыдущие советчики, видимо недооценили- нет на сегодняшний день платформы, ориентированной на более чем одного главгероя:
это и организация инвентаря, и чувство голода, и прочее...
- ну допустим, поотключили мы все подобные заморочки- и что в сухом остатке: большая база команд? так в этом квесте большинство команд - нетипичные, ранее неописанные! вобщем, от RTADS в этом случае больше вреда, чем пользы- прийдётся долго убирать всяческие ненужные штучки, а потом- делать своё с нуля.
(даже если нам совсем не нужны инвентари- всё равно RTADS даёт слишком мало помощи в этом случае, а кроме того в нём уж слишком многое подразумевается: даже при написании обычного квеста это может раздражать. долой стандартизацию!)
ADRIFT имеет слишком слабую логику вывода описаний локаций- это, опять же может раздражать и при обычных квестах (когда описание локации должно учитывать несколько изменяющихся деталей, а в случае "переселения душ": с точки зрения каждого персонажа меняется как минимум список видимых им персонажей (ведь не видит же он себя среди других). вобщем, ADRIFT отпадает.
в [/b]URQ[/b] если отпугивает менюшность, можно сделать в ДАННОМ СЛУЧАЕ и не-менюшный квест (ввод значков и цифр), большой разницы для программера это не составит:
вся фишка в реализации вида с разных точек зрения.
1) можно перевалить всю работу с плеч программера на автора и прописывать ручками выводимое описание на каждый возможный ввод и список новых доступных действий. это просто. только печатать долго.
2) можно в описания повставлять условные операторы, что бы учитывалась разница в видении каждого персонажа.
3) можно составить стандартные описания + несколько дополнительных описаний, выводимых опционально ( например: Алиса видит стандартный набор + видимое только людьми + видимое только девочками + если она сейчас выше гриба, то видимое только теми, кто выше гриба ; а многого другого- не видит )
4) можно ещё чё-нить придумать.
DELPHI или любой другой язык программирования высокого уровня: если интересует, могу помочь, но нужно обсудить некоторые детали. а кроме того- я ведь тоже собираюсь учавствовать в КРИЛ, и мне на мой квест тоже нужно время. готовые куски кода СИЛЬНО разнятся в зависимости от желаемого конечного результата: мой подход к написанию программ совершенно непохож на подход автора программ из предыдущего моего поста.
Неактивен
что-то более конкретное посоветовать трудно: требуется больше информации о будущей игре, но я так понял, что это скорее многочисленные посещения одних и тех же локаций, чем каждый шаг приближает к одному из возможных концов. важно представлять структуру игры, многим ли персонажам нужен инвентарь, или ни одному, насколько разнится мир с точки зрения разных персонажей и многое другое...
а уж кусок кода сложнее порекомендовать, чем конкретный совет.
Неактивен
ну, подсмотреть чужой сюжет всегда интересно... особенно, если по нему можно приблизительно понять, что это будет за игра, и с какой стороны к ней подходить... если у тебя в реале есть друзья-программеры, знающие яву, то от меня толку(дополнительного) будет мало(никакого). вообще же ява как язык ничуть не хуже дельфи (и не лучше) - я по привычке дельфёй страдаю, хотя могу и яву поковырять.
p.s.
ввиду двух жутких проблем (мало времени и много лени) скорее я у тебя узнаю что-нить новенькое, чем наоборот.
Неактивен
мысли такие:
1 на флеше уже есть парсерный квест, см на этом сайте
2 а что, флеш можно и на мобилу портировать?
я как-то раньше мобилами не увлекался
3 язык Action Script таков, что... ну, незнаю, а чем тебе Дельфи-то не нравится? или думаешь графику сделать? так картинку-фон запросто можно на чём угодно сделать и флеш приплетать сюда вовсе не обязательно.
p.s.
времени в обрез. буду посещать сайт раз в неделю +- пару дней.
Неактивен
написать то, что я задумал на RTADS будет ничуть не проще, чем на Delphi, но при этом с Delphi я уже знаком и точно уверен что, в отличие от RTADS на нём возможно реализовать всё, что угодно. впрочем, конкурс покажет... что касается автора темы ( а ты наверное ему писал ), то он обещался дать кусок сюжета и куда-то пропал... наверное, его знакомые программисты ему что-то объяснили и он кое-что начал понимать... наверное...
p.s.
и всё же основная причина, почему я пишу на Delphi: мне интересно написать собственный парсер. квест для меня- второстепенное.
Неактивен