Драко

Нектар звезд

Recommended Posts

Всем приветы.

Хочу предложить аудитории новое и увлекательное дело - давайте попробуем совместно создать текстовую РПГ о драконах! ::bouncy

Я уже несколько дней изучаю данный предмет. Скажу сразу - работа не из легких и требует терпения, а также (в 99% случаев) серьезных навыков программирования на С++ или LUA. Но! Кто ищет, тот найдет, и Дракоша отыскал-таки замечательный визуальный инструмент для программирования интерактивной фантастики, или текстовых РПГ, как их принято называть. При этом, собственно код самому писать не нужно, этим занимается редактор.

От слов к делу: вот результат моего двухдневного мозгового штурма - завязка и создание персонажа.

Нектар Звезд (версия 0.01)

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

У меня не хватает опыта, чтобы самостоятельно потянуть проект. Я умею придумывать ИНТЕРЕСНЫЕ сюжетные развилки и хорошо пишу фэнтези, но не слишком знаком с ролевыми играми (по понятным причинам... Я ж дракон, как-никак), а значит - не смогу грамотно поддерживать баланс, продумывать систему увеличения\уменьшения уровней героя и т.д. Поэтому, вместо того, чтобы в одиночку соорудить нечто довольно-таки посредственное, предлагаю совместно создать нечто довольно-таки интересное ::blush

В принципе, игра должна выглядеть примерно так:

...Вы летите над пустыней, и вдруг замечаете вдали оазис. Вода! Как здорово... Вы плещетесь в звонком ручье, радуясь жизни, но внезапно видите на берегу остатки разрушенной статуи. У подножья - полузасыпанная арка, ведущая в подземелье, оттуда несет сыростью и запахом гнили. Надпись на обшарпанном постаменте трудно разобрать, но слово "берегись!" читается ясно.

* - Ха! Я, дракон, испугаюсь какого-то тусклого подвала? Вперед и немедленно!

* - Гм-м... Может, не зря неведомые скульпторы поставили здесь стража? Лучше поискать в оазисе их следы.

* - Какая жуткая дыра! Полечу-ка я дальше...

------------

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

Помимо прочих преимуществ, такой подход даст нам САМОЕ главное - возможность совместно работать над игрой. Все участники будут спокойны, что "их" сценку не придется переписывать - в указанном выше примере, общим итогом приключения под землей станет...

"...кашляя и дергая хвостом, вы в последний миг успеваете выбраться из рухнувшего подземелья. Облако пыли накрывает оазис. Что ж... Здесь вам больше делать нечего. Пора в путь!"

Примерно так, в общем ::high Инструментарий для работы - здесь, а подробная документация - тут. Скачивайте версию 1.2, не 1.3.5 - в более свежих есть проблемы с кириллицей. Вот мой рабочий файл игры, он поможет наилучшим образом изучить систему Twine ::smile

Ну, как? Есть желающие? ::bouncy

WBR,

Дракоша.

Edited by Драко
Добавил прямой линк на версию 1.2

Share this post


Link to post
Share on other sites

Ух ты, а мне понравилось. Помочь с написанием, увы не смогу. Программист из меня еще хуже, чем водитель, а водить я кроме велосипеда ничего не умею. Да и английский знаю ЧРЕЗВЫЧАЙНО плохо.

Хоть я и не дракон, но поиграть в эту ролевую уже захотелось. Интересно узнать, что же ждет дракона впереди.

Share this post


Link to post
Share on other sites

Хм, на текстовые квесты из КР похоже. Такая штука хороша если проходится минут за пять, потом надоедает.

Share this post


Link to post
Share on other sites

Дантист, вовсе не обязательно самому программировать - это могу и я сделать за вас :) Если есть желание помочь, попробуйте просто в текстовом редакторе (вроде Word-а) написать какой-нибудь эпизод приключения. Сам текст + варианты развилок, а я затем перенесу это на движок Это касается всех, кто не против помочь, но не может \ не имеет времени разбираться с редактором.

Что-то вроде:

-------------

...Вы устали от долгого полета и опускаетесь отдохнуть на живописный холм. Местность вокруг незнакомая, но кажется вполне безопасной. Глаза смыкаются сами собой. Проснувшись, вы внезапно с ужасом понимаете, что не можете пошевелиться! Тысячи нитей опутали ваши лапы и крылья, каждая нить привязана к крошечному колышку. Изумленный, вы видите десятки миниатюрных драконов - каждый не больше вашего когтя - которые снуют туда-сюда вокруг плененного великана. Один из дракончиков приземляется вам прямо на нос и гордо смотрит в глаза. "Гигантский ящер!" - заявляет малыш, - "Ты захвачен победоносными войсками Хвостопутии и объявляешься собственностью короля Громокрыла!". Вы пораженно моргаете.

* - Что это значит? Отпустите меня немедленно!

* - Если вы прямо сейчас меня не отпустите, я переловлю вас всех и надену на соломинку вместо бабочек!

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

--------------

Share this post


Link to post
Share on other sites

Черт возьми, уже захотелось пройти эти события. :smile:

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

Share this post


Link to post
Share on other sites

Довольно интересная идея. Пожалуй кое что подобное видел очень давно когда то.

Есть такой Д. Ю. Бараславский. В числе прочего создатель книг-игр. Своего рода прототип ныне существующих обычных рпг игр , ещё и переведённых в вариант компьютерного исполнения.

Особенность в том что сюжет формируется в таком творение в зависимости от самого читателя.

Возможно вот эта ссылка пригодится, довольно любопытный материал. ::blush

http://ru.wikipedia.org/wiki/Книга-игра

Пожалуй в варианте иполнения с драконами, может получиться что - то оригинальное и интересное. ;-)

Share this post


Link to post
Share on other sites

Весьма интересная задумка! Хороший итог для тем а-ля "сделаем свою игру о драконах", для любителей сюжета... /подпись: любитель сюжета

Жаль, моих скромных программерских знаний хватает только, чтобы понять - я ничего не знаю.

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

Share this post


Link to post
Share on other sites

Вот так всегда!

Как только намечаются командировки... Так вечно придумывают что то интересное.

года два здесь сидел. и не чего подобного интересного не было. - А тут нате!

Блин и пропадать та буду месяцами ... ::tearful

Share this post


Link to post
Share on other sites

Несколько советов тем, кто желает принять участие.

1 - По возможности, старайтесь писать максимально "бесполые" текстовые конструкции, поскольку персонаж может быть как драконом, так и драконессой. Если никак не обойтись без явного указания пола - ничего страшного, это правится скриптом, но делает текст громоздким. Также, не указывайте явно цвет главного героя или его имя.

2 - Мы хоть и пишем о драконах, но это не привычные нам дракийцы. Т.е. в развилках сюжета можно предлагать такие варианты поведения, которые ни один дракиец в жизни бы не выбрал (но которые вполне мог бы выбрать некий "традиционный" дракон). Типа: "Вы смотрите на принцессу. А) - Похитить; Б) - Сожрать на месте; В) - Спросить, почему она плачет".

3 - Очень желательно делать промежуточные "экраны" с единственным выбором, то есть как бы растягивать описания. "Вы мчитесь по туннелю, у вас уже болят крылья. Решаете немного отдохнуть. Опускаетесь на камни, пару минут сидите, размышляя, что делать дальше." [[Далее]] "Проходит минута, другая, и вдруг вы замечаете трещину в потолке! Из трещины на вас смотрит оранжевый механический тигр!" :)

4 - И наконец, очень важная деталь - все ваши развилки должны быть ВЫБОРОМ ДРАКОНА, а не игрока. То есть нельзя делать так: "Вы открываете коробку и видите... А) Лошадь; Б) Дантиста; В) Разбитый телефон". Это дракон открыл коробку, а не вы - и он уже знает, что внутри. Поэтому правильный вариант такой: "Вы открываете коробку и видите Дантиста. Что вы предпримете? А) Подарите ему лошадь: Б) Отнимете у него лошадь, но подарите разбитый телефон: В) Оставите Дантиста в коробке, а сами подарите телефон лошади." :)

Share this post


Link to post
Share on other sites

Мда, меня уже в коробку запихнули :mrgreen: . К слову я набрал сценку. Куда её выкладывать? Прямо сюда или лучше к вам в почту, Драко, чтобы не портить другим возможное впечатление?

Edited by Дантист

Share this post


Link to post
Share on other sites

Дантист, думаю, лучше на почту. Это всех касается - не выкладывайте ваши работы в общий доступ, присылайте их мне (а здесь сообщайте, что выслали). Я буду дракоординатором проекта :)

P.S. К слову, для микродракончиков придумал классное название - драколибри ::) И страна Драколибрия :)

Share this post


Link to post
Share on other sites

И наконец, очень важная деталь - все ваши развилки должны быть ВЫБОРОМ ДРАКОНА, а не игрока.

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

К слову, когда-то я занималась подобным - в виде фанфика по "Мор. Утопии". Даже в том примитивном хтмл-варианте было куда больше тропинок, по которым мог пройти игрок, и именно поэтому эта игра-фанфик так всем нравилась.

  • Upvote 1

Share this post


Link to post
Share on other sites

LittleDrakon, мои слова вы поняли буквально наоборот. :) Я имел в виду, что развилки должны быть оформлены как выбор самого персонажа, а не как варианты события. Если дать игроку развилку типа "...я нашел красную машину" и "я нашел зеленую машину", это ничего не изменит. Должно быть так -."я нашел красную машину: а) Я на ней уехал б) я прошел мимо в) я отправился искать хозяина". Понимаете? Выбирать, ЧТО ДЕЛАТЬ, должен игрок (играющий РОЛЬ дракона), а не АВТОР игры, предоставляющий игроку строго заданные варианты.

Share this post


Link to post
Share on other sites

Ричард Боуэн, ты не совсем прав. Тот же КР стал известен отчасти благодаря тем же текстовым квестам; было бы странно, если бы они быстро надоедали. А эта игра будет ближе к книгам-играм и одиночным MUD'ам, так что её играбельность и художественная ценность, по идее, должны быть ещё выше. Да, это развлечение на любителя, но не стоит недооценивать количество любителей.

Да, идея замечательная *мечтательно вспоминает ночь, проведённую за модифицированным "торговым" квестом в первых КР*. Но, Драко, раз ты уж взял в свои лапы роль дракоординатора, то начинай дракоординировать, а то из проекта закономерно получится винегрет. Я несколько раз участвовал в модмейкерских проектах, и очень часто они рушились именно из-за разброда и шатания. Не думаю, что следует вводить приказную систему, но мы должны знать хотя бы в каком направлении работать.

Стоит:

- Написать нормальное начало. То, что есть сейчас - замена вывески "under construction". Если я тебя правильно понял, то в "Нектаре звёзд" принцип свободного сюжета. Т.е. дорога возникает под лапами игрока: в зависимости от выбранной ветки он может как раскрыть заговор магов, так и разрушить планы пришельцев по захвату планеты или вовсе выяснить, что дело происходит в виртуальной реальности. Но нужна же хоть какая-то точка отсчёта, какой-то "базовый" мир, печка, от которой будут плясать веткописатели.

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

- Согласовать список характеристик персонажа, уровневую и предметную системы, а также определиться сколько какого атрибута условно "много", а сколько "мало". Вот, допустим, 20 силы это "хиляк" или "атлет"? А 14 благородства? Какого хвоста, кстати, благородство делает в списке характеристик? Благородный поступок или эгоистичный - выбор игрока.

- Составить список тех, кто участвует в проекте. В идеале, если ещё каждый сможет указывать, над чем он работает в данный момент.

Upd: - Кроме того, надо определиться, мы делаем интерактивную книгу или нечто более близкое к MUD'у? Вкратце, мини-игры, как в тех же КР, в тексте допускаются или нет?

Upd2: - И как вообще выглядят здешние драконы? Понятно, что не дракийцы, но так всё-таки какие? Будет сбивать с толку, если в сюжетной ветке одного автора драконы дышат огнём, а в другой - нет, или в одной они пятнадцати метров ростом, а в другой - трёх. Сами персонажи, в отличие от сюжета, должны иметь более-менее постоянный образ.

Решение в лоб: постоянно редактировать первый пост в теме, но у тебя, Драко, не хватит времени, чтобы постоянно его обновлять. Тут надо думать. Если что, я включаюсь в работу, может за субботу и нашкрябаю чего.

Edited by Siarshai

Share this post


Link to post
Share on other sites

+ Великолепно было бы оснастить квесты иллюстрациями, как в КР2 - они очень добавляют атмосферности. Есть такая возможность у инструмента?

Share this post


Link to post
Share on other sites

Думаю не стоит пугать требованиями знания программирования (тем более на с++ или Lua). Программирование в данной программе совершенно тривиальное, и знание классов, рекурсий, а так же матричной алгебры совершенно не нужны, достаточно знать команду if...else...

Знание английского тоже не обязательно: можно и на русском сделать краткое описание тех 10 команд, что здесь есть.

+ Великолепно было бы оснастить квесты иллюстрациями, как в КР2 - они очень добавляют атмосферности. Есть такая возможность у инструмента?

Можно через html вставлять: <html><img src="image.jpg"></html>

Share this post


Link to post
Share on other sites

Воть. Готово первое дополнение к игре:

Добавлен инвентарь

Предметы не появляются в инвентаре, пока не подобраны

Добавлены "навыки" и 1 навык пока что.

Несколькими действиями дополнена сюжетная линия (проба пера)

Собственно, на этом все.

Share this post


Link to post
Share on other sites

Дракончик, приветствую!

Отличное начало, молодец! :) Я начинаю верить, что из идеи может и впрямь что-то выйти :) Только сами тексты, извини, надо бы слегка подредактировать. Во-первых, "юмор" вроде вытрезвителей и штрафных стоянок для эльфов - не смешон и не сочетается с общим стилем игры (высокая фэнтези в одной линии, космоопера в другой). Во-вторых, ты слишком буквально воспринял "возможность погибнуть", может не стоит ТАК налегать на натурализм? Наш дракоша пока маленький, ему и приключения на этом этапе надо подбирать подходящие по росту... Гладиаторские арены и рабовладельцев ему еще рановато крушить. И почему среди вариантов поведения нет самого очевидного - помочь грифону???

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

Share this post


Link to post
Share on other sites

Я начинаю верить, что из идеи может и впрямь что-то выйти

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

Только сами тексты, извини, надо бы слегка подредактировать.

Не возражаю ::smile

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

Да и не планировался он в финальной версии. Обычный побочный скетч, не несущий никакой смысловой нагрузки.

Наш дракоша пока маленький, ему и приключения на этом этапе надо подбирать подходящие по росту...

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

Ну тогда версия Дантиста и моя пока откладываются - на неопределенный срок. Ладно, что-нибудь еще придумаем. Ждемс документ. ::smile

И почему среди вариантов поведения нет самого очевидного - помочь грифону???

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

Share this post


Link to post
Share on other sites

Стоит сразу определить примерный размер каждого эпизода и условия перехода в следующий. Т. е. если например к моменту встречи с виверной дракон не научился плеваться огнем / давить врагов силой мысли / притащил бластер, то она его съест независимо от дальнейших действий. Когда ситуация зашла в глухой угол, игра не должна тянуться еще неизвестно сколько. На каждый эпизод нужны допустимые комбинации характеристик (умений, предметов в инвентаре) на входе и на выходе. Иначе все это в одну кучу просто не соберется.

Share this post


Link to post
Share on other sites

На каждый эпизод нужны допустимые комбинации характеристик (умений, предметов в инвентаре) на входе и на выходе. Иначе все это в одну кучу просто не соберется.

Нужно организованно организовать организующую организацию...

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

neqtarr2.rar

Share this post


Link to post
Share on other sites

Siarshai, эта программа и не должна быть "навороченной" - она визуальная, делает строго то, для чего предназначена. Если б вот эти "товарищи" ( http://qsp.su/ )озаботились написанием хотя бы еще ОДНОГО туториала, я бы понял как выводить переменные, и сразу начал бы работать в QSP. Альтир - вот про эту программу я говорил, что нужны навыки С++ и Луа.

Если тут есть программеры, которые разберутся с QSP и помогут разобраться мне - можно будет сразу начинать серьезный проект с СОХРАНЕНИЕМ ИГРЫ и прочими приятностями, включая мобильные клиенты для WM и Андроида. Увы, без хотя бы примитивной обучалки, я не смог разобраться в QSP.

Share this post


Link to post
Share on other sites

Э, а в чем проблема - то? Там есть мануал.

Для того, чтобы в тексте локации вывести значение переменной используется конструкция «'<<Имя_переменной>>'».

#Работа

' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить деньги за помощь.'

' У вас <<Деньги>> монет.'

' Вам нужно перенести <<3-Ящик>> ящика.'

ACT 'Идти домой':GOTO 'Дом'

ACT 'Идти в магазин':GOTO 'Магазин'

ACT 'Перенести ящик':

Ящик = Ящик + 1

IF Ящик = 3:

Деньги = Деньги + 5

Ящик = 0

END

GOTO 'Работа'

END

-

OPENGAME [$выражение] - если [$выражение] равно '' (пустая строка) или отсутствует, то вызов окна загрузки состояния игры, иначе загрузка состояния из указанного файла. См. также локацию-обработчик события загрузки игры.

SAVEGAME [$выражение] - если [$выражение] равно '' (пустая строка) или отсутствует, то вызов окна сохранения состояния игры, иначе сохранение состояния в указанный файл. См. также локацию-обработчик события сохранения игры.

Share this post


Link to post
Share on other sites

Ричард Боуэн, угу. Вот простое задание: сделать вывод статистики по персонажу, так же как сейчас это сделано в Twine. Только чтобы переменные выводились в соотв. окошке QSP, там есть спец. отделение Stats - только нету обучалки, как его задействовать. Их "уроки" это тонкое издевательство, поскольку заканчиваются на Goto.

Share this post


Link to post
Share on other sites

P [выражение] - вывод текста в окно пользователя (по умолчанию находится справа внизу, обычно служит для вспомогательных целей).

PL [выражение] - вывод текста, затем переход на новую строку в окне пользователя. Если [выражение] не указано, то перевод строки.

NL [выражение] - переход на новую строку (перевод каретки), затем вывод текста в окне пользователя. Если [выражение] не указано, то перевод строки. Отличается от PL порядком вывода текста.

CLEAR или CLR - очистка окна пользователя.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now