Страница 1 из 1

Новый движок для создания текстовых квестов.

Добавлено: 08 янв 2006, 13:48
haM3r
Появилась довольно смелая идея. Написать новый движок для создания текстовых квестов. Что-то наподобие URQ. Но более простой и удобный. Опыт в создание интерпритаторов уже есть. Кое-какие нароботки есть, но до готовой версии далеко... Так вот главная проблема - это решение, как будет выглядеть сам язык. Если кто-нибудь хочет помочь советом, пишите письма.

Я тут немного подумал, над тем как будет выглядеть программа и пришёл к такому варианту(просто пример):

Код: Выделить всё

//#TQ_PROJECT
/*
  Пример многострочного комментария.

  Пример простейшей программы квеста.
  Автор: haM3r
  E-mail: bvlad36@bk.ru
*/

// Пример подключения дополнительной библиотеки.
// Проект можно разбивать отдельные на файлы.
 #include "scene_1.tq";
 #include "scene_2.tq";
 #include "scene_3.tq";


/*
  Пример работы с #define.
  #define - автозамена текста. Довольно полезная вещь.
  Можно сказать  #define "btn", "button"; и использовать
  во всей программе заместо button - btn.
*/
 #define "btn", "button";



//-----------------------------------------------
/*
  Пример локации.
  Локация должна начинаться со слова location или room
  и заканчиваться end.
  <main> - указывает на то, что с этой локации начинает
  работать программа.
*/
location [first_location] <main>

   // Устанавливаем цвет текста.
   textcolor 5;

   // Проиграть звуковой wav файл.
   play "sound.wav";

   // Вывод сообщения на экран.
   print "Первая локация\n";

      button room_1, "@Wкомната-1";
      button room_2, "@Bкомната-2";
      button room_3, "@Rкомната-3";
end;

//-----------------------------------------------

room [room_1]
   // Проигрывание звукового сигнала.
   beep;

   print "В комнате 1 вас убили!\n",
         "Какая досада!\n",
         "Попробуйте ещё раз.\n";

   // Заснуть на 1 секунду.
   sleep 1000;

   // Выход из программы.
   exit;
end;


procedure getkey
   print "Press any key...";

   // Считывание клавиши.
   key = readkey;

   print "key = ", key;
end;

room [room_2]
   // Отчистка экрана.
   cls;

   // Вызов процедуры.
   call getkey;

   // Сохранение состояния программы.
   save;

   btn first_location, "Назад";
end;


room [room_3]
   a = 10;
   b = "test";
   print "This is" + b + "\n";


   :label_1
   // Пример цикла.   
   while (a > 0)
   {
      print a, "\n"

      // Пример условного оператора.
      if (a == 3)
      {
         print "That's All!\n";
         break;
      }
      a = a - 1;
   }

   if (a > 0)
      goto label_1;

   exit;
end;

Добавлено: 08 янв 2006, 21:55
Skyspear
haM3r
Ты считаешь, что эта странная опосредованная помесь С++ с Паскалем проще, чем URQовский код? :shock:
Может, лучше было бы посодействовать Корянову с его проектом? Русских движков начато уже несколько штук, а до более-менее приличного состояния доведен только один УРК. И то - работы там немеряно. Почему бы не поучаствовать, раз чувстсвуешь в себе силы?

Добавлено: 08 янв 2006, 23:09
haM3r
Skyspear писал(а):haM3r
Ты считаешь, что эта странная опосредованная помесь С++ с Паскалем проще, чем URQовский код? :shock:
Может, лучше было бы посодействовать Корянову с его проектом? Русских движков начато уже несколько штук, а до более-менее приличного состояния доведен только один УРК. И то - работы там немеряно. Почему бы не поучаствовать, раз чувстсвуешь в себе силы?
1. Наверное я не правильно выразился, поэтому вы меня не правильно поняли. Я не имел ввиду, что язык должен быть asm-подобный. Наоборот, язык должен быть гибкий и удобный, позволяющий делать сложные операции с минимальным написание кода.
2. Насчёт "помеси С++ с Паскалем" (на самом деле это помесь Си с Basic, перевес в сторону Си), так я и не утверждал, что язык должен выглядет так. Нужно лучше читать сообщения =). Я сказал, что такай стиль я предлагаю, и жду, что бы мне сообщили о нём своё мнение и внесли предложения. А пример, который я выложил это просто один из возможных вариантов. (Да, к тому же стиль Си довольно удобный и компактный для написания программ.)
3. А насчёт того, что URQ доведён до более-менее приличного состояния, так IMHO это не вполне так. Возможно я ошибаюсь. Но, скачав "свежую" версию urq_dos и запустив примеры, которые шли с ним, у меня ни один из них не запустился. Я пробовал писать на версии 1.2x и более-менее получалось. На самом деле URQ хороший движок, но помойму в некоторых местах немного неудобный. (не в обиду сказано) URQ - 4EVER =)

Добавлено: 11 янв 2006, 03:43
DeMon_DM
Хм... Уонечно Урка не доработана, но это лучший русский движок... И присоединяюсь к Skyspear: русских движков начато уже около десятка, зачем ещё один? Лучшеб кто-то Урку доделал...

Добавлено: 11 янв 2006, 11:39
haM3r
DeMon_DM писал(а):Хм... Уонечно Урка не доработана, но это лучший русский движок... И присоединяюсь к Skyspear: русских движков начато уже около десятка, зачем ещё один? Лучшеб кто-то Урку доделал...
Кто может назвать другие, кроме URQ и QSP? (Чисто ради интереса)

PS: В URQ мне кажется все беды из-за того, что нету единого стандарта. Каждый пытается сделать интерпритатор по своему и не один из них не доведён до ума. (IMHO)

Добавлено: 11 янв 2006, 15:28
DeMon_DM
[b]haM3r[/b] писал(а): Кто может назвать другие, кроме URQ и QSP? (Чисто ради интереса)
Ну вот только те, которые я сходу вспомнил: VadQuest, OrcZero, InterQuest, Hydra. Если повспоминать и поискать по инету, можно ещё кучу найти...
[b]haM3r[/b] писал(а): В URQ мне кажется все беды из-за того, что нету единого стандарта. Каждый пытается сделать интерпритатор по своему и не один из них не доведён до ума.
У меня такое же мнение :)

Добавлено: 20 мар 2007, 13:18
GrAndrey
Ну вот только те, которые я сходу вспомнил: VadQuest, OrcZero, InterQuest, Hydra.
Большинство упомянутых сгинули едва родившись, если вообще были закончены. Говорят, последняя QSP в некоторых вещах превосходит УРКу, а живой активный разработчик делает её весьма многообещающей.
Hydra не была дописана, так как разработчик перешел на RTADS и даже недавно занял второе место на конкурсе русской интерактивной литературы :)

Добавлено: 22 мар 2007, 23:44
DDN
А вообще стоет ли в 2007г.создавать движок тектовых квестов??? :? Сомневаюсь...

Добавлено: 24 мар 2007, 23:27
Skyspear
Говорят, последняя QSP в некоторых вещах превосходит УРКу, а живой активный разработчик делает её весьма многообещающей.
Спорно, AkURQ мне кажется более перспективной. Да и URQL в целом. Его же используют для разработки и тестирования квестов, например, http://haddan.ru.
А вообще стоет ли в 2007г.создавать движок тектовых квестов???
Не стоит. Вполне однозначно. Русифицированы TADS и ADRIFT, для тех, кто не в ладах с программированием, есть URQ и QSP (да и тот же ADRIFT, по-моему), для пишущих на английском никда ни делся старый-добрый Inform, а те, кто хочет писать на чем-то исконно русском, могут довольно комфортно работать с перспективным 6 days: http://questtext.narod.ru/run.html.

Добавлено: 13 май 2007, 21:45
GrAndrey
Skyspear писал(а):
А вообще стоет ли в 2007г.создавать движок тектовых квестов???
Не стоит. Вполне однозначно. Русифицированы TADS и ADRIFT, для тех, кто не в ладах с программированием, есть URQ и QSP.
Предполагаю, вопрошавший говорил о другом - а кому нужны текстовые квесты? И потому хотел бы пояснить:
Текстовые квесты (интерактивная литература) позволяют в одиночку созать игру. Если сумел - можно дополнить её картинками и переделать в графическую адвенчуру. Хорошая проверка своих возможностей, способ их развить и проработать сюжеты.

Добавлено: 13 ноя 2007, 12:07
SamosWork
На этом сайте в разделе скачать графические квесты слейте игру dreams (Эхо Снов). Распакуйте. Внутри, в папке script есть файлик dreams.dat с готовым и рабочим скриптом. Получился он сборкой из маленьких скриптиков, находящихся в папке source. Посмотрие, там всё понятно и прозрачно. При желании можете что-нибудь изменить в файле dreams.dat и запустить игру. Собственно, вообще, этим скриптом можете свой сценарий сами написать прям сейчас. и протестировать.