Появилась довольно смелая идея. Написать новый движок для создания текстовых квестов. Что-то наподобие 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;
Неактивен
На мой взгляд, более-менее серьёзное будущее есть только у движка, ориентированного не на программистов, а на э-э-э... людей, более близких к литературе...
Неактивен
Впринципе, именно по этому я предже чем начать разрабатывать движок хотел бы узнать мнение людей. А именно каким бы вы хотели его видеть? (По структуре написания программы, операторам и тд.) Но, я не хотел бы придти в итоге к какому-нибудь asm подобному языку. Смысл писать ещё одну аналогию нет. Цель другая - сделать принципиально новый движок.
Неактивен
Занимаюсь именно этим...
Главное — использование в синтаксисе русского языка. Касательно всего остального: ориентация на объекты, нетипизированные переменные, наличие у объектов (помимо свойств и методов) ещё и событий и т.п.
Ветка, посвящённая моим изысканиям: https://forum.ifiction.ru/viewtopic.php?id=467
Неактивен
Olegus t.Gl. написал:
Занимаюсь именно этим...
Главное — использование в синтаксисе русского языка. Касательно всего остального: ориентация на объекты, нетипизированные переменные, наличие у объектов (помимо свойств и методов) ещё и событий и т.п.
Ветка, посвящённая моим изысканиям: https://forum.ifiction.ru/viewtopic.php?id=467
Прочитал ветку. Задумался... Нужно подумать. А нельзя бы получить пример программы на e-mail? (желательно, что бы в ней было побольше кода)
Неактивен
Пока увы... Нечего.
Неактивен
думаю, что прежде, чем создавать свой движок, стоит ознакомиться с RTADS и с ADRIFT.
достоинство RTADS- на нём (теоретически) возможно написание безглючного русского квеста.
недостаток RTADS- непрограммера он или отпугнёт, или непрограммер обязательно чего-то где-то недоработает. даже в обучающем примере "три медведя" и то есть недодумки
достоинство ADRIFT- графическая оболочка. на нём непрограммеры реально создают русские квесты. и их (теоретически) возможно пройти. удобная оболочка снижает шанс ошибки... для англоязычных квестописак.
недостаток ADRIFT- невозможность полностью корректной русификации вводимых фраз.
Неактивен
qwerty написал:
даже в обучающем примере "три медведя" и то есть недодумки
Трех медведей я писал через три недели знакомства с системой, сразу после того как её перевел. Собственно, на медведях была первая обкатка перевода. Так что нечего удивляться качеству игры. Более того, она не использует всех фич, накопленных более чем за два года дальнейшей доработки РТАДСа.
Неактивен