Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
29.05.2004 01:21

Al Chipollino
Участник (+1)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 496

Напишем ТЗ для IFERa

Здравствуйте, давно не виделись:) Кинул на сайт тройку статей ( http://www.taplap.ru/articles.php?op=show&aid=64 ). Буду рад улышать ваши отклики.

Неактивен

0    0    #2
30.05.2004 23:22

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Al Chipollino написал:

Здравствуйте, давно не виделись:) Кинул на сайт тройку статей ( http://www.taplap.ru/articles.php?op=show&aid=64 ). Буду рад улышать ваши отклики.

Почитал. Имея некоторый опыт разработки _русских_ игр в системе RTADS, имею комментарии к твоим статьям.:

К «ВВЕДЕНИЮ»:

Поподробней опиши для чего все эти средства нужны. Сама необходимость предлагаемых тобой «ТЗ» вызывает у _меня_ сомнения.

К «СЛОВАРНОМУ ЗАПАСУ»:

1. Честно говоря, довольно сложно понять вообще для чего нужна эта штука. Постарайся сам формулировать ТЗ к проектируемым средствам разработки игр.

2. Насколько я понял предназначение «словарного запаса», возникает проблема сложности внесения всех данных для предметов. Рассмотрим всего один объект из моей будущей игры:

Код:

    adjective = 'невысокий' 'невысокого' 'невысокому' 'невысокому#d'  'невысоким' 'невысоким#t' 'невысоком' 'небольшая' 'небольшую' 'небольшой' 'небольшой#d' 'небольшой#t'
    noun = 'поребрик' 'поребрика' 'поребрику' 'поребриком' 'поребрике' 'поребрику#d' 'поребриком#t' 'бортик' 'бортика' 'бортику' 'бортиком' 'бортике' 'бортику#d' 'бортиком#t' 'парапет' 'парапета' 'парапету'  'парапетом' 'парапете' 'парапету#d' 'парапетом#t' 'преграда' 'преграды' 'преграде' 'преграду' 'преградой'  'преграде#d' 'преградой#t'
    ldesc = "Невысокий поребрик не дает воде скатываться с плоской крыши во время дождя. Видя эту пусть небольшую преграду перед страшной высотой, ты чувствуешь себя ни на йоту более уверенней. ";

Как ты видишь, из вышеприведенного куска кода, объект имеет всего 4 синонима существительных и 2 синонима прилагательных. По-моему, это вполне скромно. Но, чтобы вручную ввести все эти слова и соответствующую таблицу «конструкции глаголов» потребуется некоторое время (минут 5, не меньше). И это только для одного предмета! По-моему, это будет довольно утомительно. Добавь к этому то, что не все люди (я, например) хорошо знают правила русского языка и не утруждаются даже запоминанием названий падежей и склонений. Все это может оттолкнуть потенциального автора почти сразу — после создания одного единственного объекта. Как _я_ добавил все эти слова к объекту? Воспользовался «Генератором» от Андрея Гранкина! Чего и тебе советую. По-моему, в текущем виде «база данных слов» мало жизнеспособна.

[Продолженее см. в следующем комментарии]

Неактивен

0    0    #3
30.05.2004 23:23

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

К «ИГРОВОЙ БАЗЕ»:

1. «ПРЕДМЕТЫ»: я не заметил такой необходимейшей вещи для систем создания текстовых игр, как наследование (классы и т.п.). Без этого, могу сказать определенно, создание игры выльется в бесконечную монотонную _работу_. Возможно, ты имеешь это в виду, говоря «Для упрощения работы можно предусмотреть возможность задания некоторого набора ОБЩИХ свойств для всех предметов», но этого будет недостаточно! В свою очередь чтобы осуществлялось наследование, необходима такая вещь как «стандартная библиотека», в которой будут подробно описаны классы (т.е. как они будут работать в игре «по умолчанию»). Создание такой библиотеки как раз и отнимает основную массу сил автора системы. Т.е. твоя «игровая база» это только самая верхушка айсберга — всего лишь графический интерфейс.

2. «ДЕЙСТВИЯ»: насколько я понял, ты хочешь разработать собственный язык программирования, на котором и будет писаться код игры. Скажу две вещи: это потребует от тебя как автора системы образования (и, соответственно, посвященности в проблему синтаксического анализа) и _большого_ количества труда. Спроси себя честно, ты имеешь требуемые для этого ресурсы?

3. «ДЕЙСТВИЯ»: как насчет перенаправления действий (т.е. чтобы не писать код для двух «единых» предметов, автор перенаправляет действие с одного предмета на другой)? Например, игрок пытается «открыть стол», а на самом деле он хочет «открыть ящик в столе».

4. «ДЕЙСТВИЯ»: нужна еще одна кнопка, чтобы вставлять ссылки на другие предметы. Например, игрок может открыть дверь, только если за дверью сосед не пьет кофе. И т.п.

И что имеем в итоге для «игровой базы»: «база» в итоге станет намного более усложненной системой, чем ты ее здесь представил. Соответственно, той простоты создания игр, какую ты хочешь показать, не будет, если ты принудительно не ограничишь автора игр от «продвинутых» функций. Совместить простоту и функциональность системы уровня языка программирования (на котором и находится система создания текстовых игр) крайне сложно и требует глубоких знаний в программировании, логике, дизайне и психологии.

Неактивен

0    0    #4
30.05.2004 23:24

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

К «АНАЛИЗАТОРУ КОМАНД»:

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

Но встает главный вопрос: зачем? Зачем повторять то, что уже сделано и _существует_? Или ты считаешь такие системы как «RTADS» и «Русский Inform» как абсолютно непригодные для использования? Что они недоработаны, сложны и просто нелогичны с точки зрения русского человека? На этот вопрос я _требую_ ответа!

ИТОГ: Что имеем в итоге: «планов громадье», требующее весьма существенных затрат труда. Наверняка, такая работа не может быть осуществлена в одиночку. И все это при том, что существуют «RTADS» и «Русский Inform»!

Выскажу свое личное мнение:

1. С точки зрения программирования системы: это будет сложно.

2. С организационной т.з.: это будет еще сложнее, учитывая, что есть не так много желающих участвовать в системах, уже «выложенных на блюдечке с голубой каемочкой».

3. С т.з. проработанности твоей идеи: я считаю, что она далека от совершенства.

Выводы по вопросу «времени ввода системы в строй» можешь, я думаю, сделать сам. Для себя я их сделал, как это ни печально. Но! «RTADS» и «Русский Inform» _уже_ существуют — их не нужно создавать с нуля!

Неактивен

0    0    #5
03.06.2004 19:01

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Al Chipollino написал:

>> Насколько я понял предназначение «словарного
>> запаса», возникает проблема сложности внесения всех
>> данных для предметов.

Словарь должен быть реализован как отдельная база, которая со временем пополняется. Т.е. создатель игры качает готовый словарь, дополняет по необходимости ещё слов и высылает это дело на сайт, дабы там его обновили. Получается, что со временем словарный запас станет довольно объёмным, и туда всё реже и реже нужно будет вносить новые слова. А это, как ты заметил, очень сильно облегчает труд автора.

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

Al Chipollino написал:

>> Как _я_ добавил все эти слова к объекту?
>> Воспользовался «Генератором» от Андрея Гранкина!
Что бы это ни был за генератор, его можно прикрутить и к заполнению(частичному) обсуждаемого словаря. В статье совершенно не затрагиваются технические аспекты, там описана только СТРУКТУРА. А с помошью чего её можно заполнять - вопрос другой.

В итоге, что касается словаря, я считаю, что идея "соберем его с миру по нитке" имеет довольно большие шансы на жизнь. По началу будет непросто, зато потом...

Идея неплохая. Исходники «Генератора» выложены на сайте http://rtads,h-type.com/ — посмотри. Более свежие исходники спроси у Андрея.

Неактивен

0    0    #6
03.06.2004 19:01

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Al Chipollino написал:

>> «ПРЕДМЕТЫ»: я не заметил такой необходимейшей
>> вещи для систем создания текстовых игр, как
>> наследование (классы и т.п.).

Опиши, плиз, что ты конкретно имеешь в виду под "наследованием". Я попытаюсь решить задачу в рамках того, что есть, или добавлю что-нибудь новое.

Странно, что ты не знаешь такой обязательной для IF платформы вещи...

Наследование — это перенесение («наследование») свойств (всех) от класса (абстрактная объектная единица) к объекту. Т.е. если создан класс «выключатель», то все выключатели можно создавать, используя уже существующий код класса. При этом сам код не нужно вставлять повторно — нужно дать «ссылку» на класс. Естественно, чтобы данный конкретный выключатель отличался от своих собратьев, можно заместить часть его свойств вручную. Т.о. автор не должен изобретать колеса, создавая простой выключатель. (Вообще, это является основой объектно-ориентированного программирования.) Соответственно, основной объем стандартной библиотеки IF системы составляют описания классов.

Al Chipollino написал:

>> Т.е. твоя «игровая база» это только самая верхушка
>> айсберга — всего лишь графический интерфейс.

Да, по сути это верхушка. Но при этом на этой верхушке можно реализовывать шаблон игры (например, прописать все популярные действия типа взять, смотреть, идти...) и автор не будет работать с нуля, ему нужно будет прописывать только недостающие дейтсвия и всякие условия. Шаблон(или шаблоны) можно(и нужно) также со временем расширять и дополнять.

Вопрос в том, что твоя «верхушка айсберга» не будет реально востребована в течение до-о-о-лгого времени — до приближении твоей/вашей системы к завершению.

Однако, у меня возникла идея: твой графический интерфейс можно ведь присоединить и к RTADS (и к Русскому Inform)! Тогда она сможет приносить пользу прямо сейчас. Конечно, использование такой «надстройки» может не всем понравиться (я, например, не считаю, что _нуждаюсь_ в ней), но для начинающих авторов это может стать толчком — не все готовы программировать напрямую, в голом текстовом файле.

Идею кинуть просто... Думай.

Al Chipollino написал:

>> Например, игрок пытается «открыть стол», а на самом
>> деле он хочет «открыть ящик в столе». 

Для этого во внутренний язык программирования добавляем функцию ВыполнитьДействие(Действие, ОснПредмет, ДопПредмет, ВспПредмет). И имея её, получаем:
в действии "открыть__"
в условии "ОснОбъект=Стол"
мы пишем "Выполнить("ОткрытьВ_","ящик","стол")".

Все правильно. Добавляется еще одна кнопка для объявленных функций.

Al Chipollino написал:

>> «ДЕЙСТВИЯ»: нужна еще одна кнопка, чтобы
>> вставлять ссылки на другие предметы. Например,
>> игрок может открыть дверь, только если за дверью
>> сосед не пьет кофе. И т.п.

Это реализовывается через условия в Действиях.
В такой системе нужно от чего-то отталкиваться - либо в предметах прописывать условия на действия, либо в действиях на предметы. Я выбрал последнее, ибо посчитал, что так автору будет проще. Можно, конечно, как-нибудь попробовать объединить эти варианты...

У тебя в интерфейсе есть кнопки для «ОснОбъект», «ВспОбъект». Логично продолжая ряд, нужна кнопка для уже объявленных объектов. Также встает вопрос: имена объектов. Простые существительные не подойдут — объект может иметь множество синонимов. Т.о. скрытый от глаз авторов идентификатор объекта не подойдет, я думаю.

По поводу перехвата команды в действии: ты представляешь, какая мешанина будет твориться в таких функциях? Плюс, встанут и другие вопросы — не имея опыта разработки IF систем с нуля, не стану вдаваться в подробности.

Al Chipollino написал:

>> Соответственно, той простоты создания игр, какую ты
>> хочешь показать, не будет, если ты принудительно не
>> ограничишь автора игр от «продвинутых» функций

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

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

Неактивен

0    0    #7
03.06.2004 20:48

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Gottlieb_Leberecht написал:

Да не то чтобы конец света, но, понимаешь, TADS (1,2,3) постоянно разрабатывалась с конца 80-ых, т.е. уже в течение 15 лет. Причем с помощью и на основе feedback-а огромного (относительно) сообщества. Поэтому в наших условиях можно надеяться на достижение подобного успеха лет за 30.

На самом деле времени для создания _работающей_ системе было потрачено меньше. Три, по-моему, профессиональных программиста создали систему _в не свободное_ от работы время года за два.

Неактивен

0    0    #8
03.06.2004 20:49

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Al Chipollino написал:

>> ;D Как-то я слышал, как один этузиаст из провинции
>> предлагал разработать ОС, которая была бы надежнее,
>> быстре, проще(!), чем любая Windows. По его мнению,
>> отсутствие таковых операционок объясняется тем, что
>> все боятся её делать, так как не верят в успех.

Андрей, ты не сравнивай ж.пу с пальцем. На разработку винды были потрачены сотни тысяч человеко-часов. Люди поди умирали за мониторами, отдавая этому проекту жизни. А здесь ТЗ размером с десять листов, и такое впечатление, что наступил конец света:)

А ты сам пробовал писать проект, требующий хотя бы часов 100 для завершения? Почему у меня такое ощущение, что нет? (Не воспринимай, пожалуйста, как личный "наезд".)

Неактивен

0    0    #9
03.06.2004 20:50

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Al Chipollino написал:

>> Но встает главный вопрос: зачем? Зачем повторять то,
>> что уже сделано и _существует_? Или ты считаешь
>> такие системы как «RTADS» и «Русский Inform» как
>> абсолютно непригодные для использования?
>> Что они недоработаны, сложны и просто нелогичны с
>> точки зрения русского человека? На этот вопрос я
>> _требую_ ответа!

Стас, у тебя есть одна нехорошая черта откланяться от темы.

За что и не люблю форумы — отсутствует древовидная структура, позволяющая расчленять дискуссию, скажем так, по интересам. Форум, по сути, является продолжением чата, но с более-менее заданной темой. Попытаюсь уклониться от темы, и может последовать предупреждение от администратора (коим ты и являешься). :-(

Да еще много недостатков... но здесь не место их обсуждать — вдруг администратор не так посмотрит!

Al Chipollino написал:

Обзор на "Кукшу" ты превратил в "Какой хреновый парсер, пишите в RTADS".

Во-первых, нехорошо вот так в лицо человеку тыкать фактами, вырванными из вольных (художественных) размышлений.

Во-вторых, а как бы ты написал обзор? «Игра вообще хорошая, жаль короткая. В ней было хорошо сделано <это> и плохо <другое>.»? Мне несколько надоел такой формат — вот и пишу то, что взбредет _мне_ в голову.

В-третьих, обзор на игру — это хоть какое ни будь движение — я не вижу сверхъестественной активности в рядах тяпляповцев кроме как «пишем новую платформу». Я написал обзор — чего ж еще? Пожалуйста, если есть конструктивные возражения, напиши их в «комментариях» к статье — «теме», сам понимашь.

Al Chipollino написал:

Теперь и здесь началось "Зачем оно надо, работайте в RTADS". Т.е. ты хочешь сказать, что RTADS - это идеальная система, причём ещё и не сложная для понимания обычным автором? Я требую ответа насчёт сложности!

(На мой вопрос, ты, кстати, четко так и не ответил.)

Нет, система не идеальная, как и все в этом мире, но:
  1. Существует (т.е. можно пользоваться)
  2. На голову выше всех самодельных парсеров
  3. Существует (т.е. не нужно тратить годы по разработку с нуля)
  4. Разрабатывалась долго. Тоже неглупым человеком. Имеет множество поклонников (за рубежом).

И раз уж ты перешел на личности, я объясню, почему я считаю, что _имею_ право вклинивать свои «рекламные» объявления в чужой теме.

Итак, мне 25 лет, я не первый год знаком с IF (английским, конечно) — а точнее с конца 1999-го. Неплохо, я думаю, знаком с такой вещью, как попытки разработки новой платформы — иностранцы тоже любят это дело. Регулярно (более-менее) читаю RAIF и RGIF. Принимал некоторое участие в «жизни» англоязычного сообщества. Принимал участие в разработке Hydra. Я умею программировать (непрофессионально). Имею примерное представление о развитии русского IF движения. Писал свои игры на Inform, Hydra и RTADS (все незавершенны... пока, я надеюсь). И, как не нагло это будет звучать, но я искренне считаю, что немало знаю о IF.

Чего я хочу от тебя... Мне неприятно сознавать, что люди не пользуются лучшим, а предпочитают морочить себе голову очередным «программистским проектом» (а ничем другим IFER, пока, не является). (Есть такая болезнь (или патологическая тяга): программировать ради любви к программированию — я серьезно.) Скажу честно, мне хочется, чтобы как можно больше людей вошло в ряды пользователей RTADS — из эгоистических соображений. А почему, собственно, нет: что, есть альтернативу получше? Что, неужели лучше создавать свою «вещь» с нуля, боясь как бы не угас интерес в разработчиках, и из последних сил надеясь, что люди _действительно_ потянутся к разработке? Я не хочу обидеть WildWizard-а, но опыт начала и медленного затухания разработки Hydra у меня есть.

Al Chipollino написал:

Но опять ушли от темы... Написанными статьями я нисколько не принижаю достоинств RTADS. Это хорошая система, но она требует от автора опыта работы с языками программирования. Я же от платформы хочу получить, с одной стороны, простоту и наглядность работы с игровым миром, с другой же хочется иметь в своих руках сильные механизмы по настройке этого мира.

Т.е. ты хочешь сказать, что имеешь на это интеллектуальные средства; что готов пойти на соответствующие затраты времени; что знаешь, что твоя система _будут_ (!) лучше, чем RTADS?

А простота?.. Ты знаком (хотя бы слышал) с такой вещью как разработка языков программирования? Я имею в виду действительно серьезные языки вроде Python или семейство .NET? Так вот: дизайн — это не только красивая расстановка кнопочек на форме будущего окна программы — это наука _программирования_ — от него идут «детали»!

Al Chipollino написал:

И просьба: пожалуйста, не нужно думать о программировании всего этого дела. Оценивать стоимость реализации проекта будем потом.

:-) Т.е. ты заранее не планируешь довести проект до конца?

Неактивен

0    0    #10
04.06.2004 21:16

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Al Chipollino написал:

Но писать IFER сам я в любом случае не буду, ибо я не люблю программировать большие проекты. Последнее ещё является и ответом на вопрос "почему я никогда не сяду за RTADS и Hydra и им подобные". По поводу "надстройки" к таким системам я уже думал, только странно, почему это не сделают авторы этих систем.

Потому что создание ПО не самоцель — создание игр требует тоже затрат времени.

>> И раз уж ты перешел на личности, я объясню, почему я
>> считаю, что _имею_ право вклинивать
>> свои «рекламные» объявления в чужой теме.

Al Chipollino написал:

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

Жаль, я привык к более свободным нравам в Интернете — без ограничений по вопросу темы. Впрочем — «форум» — этим уже многое сказано. :-(

Al Chipollino написал:

У тебя постоянно (это не единственные примеры в данной теме) возникают сомнения в моих интеллектуальных способностях. По началу постарался пустить мимо ушей, теперь всё больше хочется воспринимать это как наезд. Могу тебя со всей серьёзностью уверить, что интеллектуальных средств хватит.

Так ведь такие вопросы у меня возникли не на пустом месте — твои статьи и сообщения здесь дали тому повод. Один твой вопрос прояснить что такое «наследование» в программировании сразу вызвал у меня недоверие к тебе как к создателю _системы_. Кстати, твой стиль общения тоже не блещет уважением к собеседнику — ты просто проигнорировал большинство моих вопросов? Со всем согласен? Или предпочитаешь не тратить понапрасну слов?

Чтобы дело не дошло до драки, писать сюда я больше не буду. Да и смысла, похоже, нет — упорства у тебя (пока) не занимать. Подождем год-другой...

Неактивен

0    0    #11
04.06.2004 21:16

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Gottlieb_Leberecht написал:

Переубедить тех, кто пишет платформу, я думаю, нельзя. Обратить же тех, кто, скорее, пишет именно игру с нуля, попробовать можно. Иногда логика побеждает чувства.

Я надеюсь, что зародил у них хоть тень сомнений в реальности выполнимости проекта. Надеюсь, они "переболеют" и найдут другой способ чтобы писать игры; собственно этот сайт для того и создан — для игр!

Неактивен

0    0    #12
13.04.2006 14:09

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

(Мой вопрос будет, конечно, издевательским.)

Ну и как дела с IFER-ом? Неужели, как я и прогнозировал, все закончилось раньше, чем началось? Пусть это будет примером того, куда ведет разработка собственного парсера с нуля!

Неактивен

0    0    #13
29.05.2007 21:42

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Напишем ТЗ для IFERa

Нет, дальше тех. задания дело не пошло. Может быть, к счастью.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru