Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
04.01.2003 20:43

psycho
Участник
Зарегистрирован: 24.12.2002
Сообщений: 14

Размышления на тему...

Решил запостить здесь, если тема каким-то образом окажется незаезженной, то можно будет и перенести в раздел соответственный...

Обо всём...

Группирование локаций.
Это всё относится к реализации идеальной платформы. При создании игры возникает выбор: сразу загрузить всю игру в память или загружать каждую локацию из файла (как в URQ, например). Если подгружать локации отдельно, то как быть с теми локациями, обстановка в которых изменилась? Придётся создавать дополнительный файл, где будут храниться описания изменённых локаций. И к этому файлу нужно будет обращаться каждый раз, когда персонаж покидает локацию. Если использовать полную загрузку данных в память, то тут могут возникнуть проблемы с нехваткой памяти. Единственный разумный выход, который я вижу в данной ситуации, это создавать группы локаций и от этого отталкиваться. Т.е. загружать в память группу локаций, с которой и работать до того момента, пока персонаж не покинет данную группу. Тогда сохранять результаты по группе и загружать новую группу. Меньше опирация с файлами, плюс меньшая загрузка памяти. Итого большее быстродействие.

Предел парсера.
Как я понимаю, сейчас ведётся активная работа над создание идеального парсера, который будет с максимальной точностью разбирать команды игрока. Вплоть до того, что он будет поддерживать несколько одновременно введённых команд. Например: "подними самый тяжолый кирпич и запусти им в толстого гоблина". Но вот вопрос: каким будет предел слова "несколько"? Две одновременно введённые команды? Три? К тому же всё идёт к тому, что порядок слов и наличие "неизвестных" слов будут играть второстепенную роль. Всё это, плюс свободный парсинг местоимений, числительных и прилагательных. И всё же, каков предел идеального парсера?

Объектность языка.
Как я понимаю все уже свыклись с той мыслью, что всё есть объекты. Что бы вы не взяли, от локации и предметов до персонажа и его инвентаря, всё есть объекты. Тогда возникает вопрос: будет ли объект являться общим для всего, и различаться только свойствами, либо это будут разные типы объектов, которые будут интерпретировать не по свойствам, а именно по их типу? Будут ли свойства объектов постоянными, неизменными и недополняемыми, либо они будут меться только как возможность их создания (добавления) объекту. На сколько гибким будет механизм свойств объектов? Каким он будет?

Визуальная руссифицированность.
Основной из предпосылок к созданию идеальной русской IF-платформы являются визуальные компоненты работы с ней. Иначе говорю должна быть создана некая программа, которая смогла бы предоставить физуальную среду для разработки IF. И далее говорят, что синтаксис языка должен быть полностью русским, т.е. все заразервированные языком, под свои объявления, слова должны состоять из символов кирилицы. Но ведь непосредственно синтаксис служит для облегчения жизни программистам, которым (возможно) как-то привычнее разобраться и работать с языком синтаксис которого состоит из английских слов. А вот не_программистам незачем лезть в дебри структуры языка им вполне хватит визуальных средств разработки, которые по сути можно си вовсе снабдить возможностью изменения языка интерфэйса. Так что делайте выводы... smile

Неактивен

0    0    #2
05.01.2003 19:48

Bredius
Участник
Зарегистрирован: 23.08.2002
Сообщений: 9

младший научный сотрудник,&&Бредиус С.К.

Re: Размышления на тему...

Очень и очень интересная тема.
Но, боюсь "идеальный интерпретатор" в ближайшие года два-три сделать сложно, если возможно вообще, особенно на коленке.
Идея интерпретатора - часть системы искуственного интеллекта. А этим стоит заниматься после долгой подготовки в спец. ВУЗе. Интерпретатор должен САМ, подобно человеку распознавать глаголы, существительные и пр. части речи. Думаете это не возможно? Но, человек же распознает, а значит и ЭВМ тоже может это делать. Ну вот например, с чего начинал мой преподаватель информатики (не дословно, как помню):
"Курлыха зашныряла курлыхла и курлыныша"
Это очень простое предложение и человеческий мозг, сможет распознать здесь некий смысл. А ЭВМ сегодня будет долго ругаться в ответ, на такое заявление. Интерпретатор может обладать и не очень сложной логикой, ведь для игры достаточно и простых предложений. Можно фиксировать глагол, как в немецком языке, ввести виды предложений. Но, программа должна эволюционировать, заносить новые фразы и пр. Очень большим достижением будет, если вы сможете написать программу, которая будет распознавать различные формы одного слова. Но, если взяться, то нужно быть не только хорошим программистом, но и знатоком русского языка. Сложно, очень сложно, ведь синтаксис будет очень сложным. Да, если вы написали программу, которая, как вам кажется будет понимать русскую речь великолепно, то позовите младшую сестру (дедушку, бабушку, брата) и скажите чтоб он поработал немного с программой. Если замечаний будет меньше пяти-десяти, можете гордиться собой.
Но, не все так плохо, я верю, что компьютеры можно научить мыслить, хотя бы немного, возможно даже в рамках интерпретатора wink. А проблемы загрузки программы в память по сравнению с этой, кажутся просто детскими играми.
Советую попробовать приспособить к интерпритатору специальную экспертную систему. Кстати на её основе можно построить всю игру, будет здорово. Но тогда лучше освоить ПРОЛОГ или Лисп. Начинать советую с первого, лучше осваивается. Хотя если вы ярый сторонник Фон-Неймановского программирования, вы все равно придете к некому аналогу ПРОЛОГА. А стоит тогда тратить время?
На последок советую почитать интересные книжки в тему:
"Логический подход к искусственному интеллекту" (Фр., изд. "Мир"), "Программирование на языке ПРОЛОГ для искусственного интеллекта" (И. Братко, "Мир"), "Как построить свою экспертную систему" (К. Нейлор), "Искуственный интеллект" (Э. Хант).

Неактивен

0    0    #3
06.01.2003 13:03

GrAndrey
папа RTADS и Бяка (+47, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1196
Вебсайт

меньше слов

Re: Размышления на тему...

О понимании - наверно многие, кто общается на форумах, заметили как трудно порой верно донести свою мысль до всех. Если бы они сидели в одной комнате со слушателями, это сделать было бы легче на порядок. При письме фраза многое теряет. Хоть как-то изменить положение призваны смайлики, но они часто помочь не могут. К примеру, мою тонкую иронию часто не понимают и относятся к ней серьёзно, а смайлика "ироническая улыбка" нет. Помимо интонации теряется и ударение, что гораздо ужаснее. Попытайтесь понять, "уртый" - это татарское имя или жаргонное прилагательное? Или, что значит "едь верхом"?
Есть простой и известный метод общения, придуманный английскими колонизаторами - создание определёного унифицированного языка. Именно это сейчас и применяется в ИФ (вводите определённые слова в определённом порядке, и программа всё поймёт!)
Другого пути, кроме как развивать данный подход, я не вижу.

О прологе  big_smile Те студенты на моём факультете, которые сдают ПРОЛОГ, матерят его на чём свет стоит.
Ещё вопрос, поддерживает ли ПРОЛОГ нечёткую логику? Это важно для нормального AI.

Неактивен

0    0    #4
06.01.2003 15:20

Bredius
Участник
Зарегистрирован: 23.08.2002
Сообщений: 9

младший научный сотрудник,&&Бредиус С.К.

Re: Размышления на тему...

Да. Но не все версии...
Начинать программировать надо с какой-нибудь облегченной версии (например, я начинал с специальной версии, написанной нашим же преподавателем в 93 году).
А в каком же ВУЗе матерят ПРОЛОГ?

Неактивен

0    0    #5
06.01.2003 18:07

GrAndrey
папа RTADS и Бяка (+47, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1196
Вебсайт

меньше слов

Re: Размышления на тему...

ПРОЛОГ матерят студенты ПриМата МАИ, обучающиеся на кафедре информатики. Они его уже месяц сдают  smile

Неактивен

0    0    #6
07.01.2003 02:44

FighteR
Участник
Откуда: Долгопрудный
Зарегистрирован: 12.12.2002
Сообщений: 33

Re: Размышления на тему...

Группирование локаций.
Виртуальная память на виртуальной машине лечит всё.
реализация виртуальной памяти на современных компах типа PC - не вопрос.
реализация виртуальной машины - отдельный вопрос.

>Как я понимаю, сейчас ведётся активная работа над создание идеального парсера
- правильно понимаете. smile

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

> тяжолый кирпич
- а вот понять слово тяжОлый потруднее будет smile

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

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

И всё же, каков предел идеального парсера?
- единственный способ это выяснить - создать идеальный парсер


Объектность языка.
Насколько гибким будет механизм свойств объектов? Каким он будет?
- каким захочет программист, таким и сделает

Визуальная руссифицированность.
- лично я пробовал писать исключительно кириллицей - но ведь пропадает уйма латинских букв! все привыкли к print, close, open, move и т. д.
нужно разумно использовать и то и другое - читабельность повышается.

Пролог - на нём и пишу сейчас. пока похвастаться нечем. Но показать есть что. тока лень свой сайт делать. могу слить куда-нть

Нечёткая логика - накой она вам сдалась? а сэмулировать слабо?

генерация форм - отдельная статья. По моему, если и заниматься генерацией, то не позже этапа компиляции.

Неактивен

0    0    #7
07.01.2003 10:08

GrAndrey
папа RTADS и Бяка (+47, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1196
Вебсайт

меньше слов

Re: Размышления на тему...

Пока ни одна платформа не поддерживает таких вещей:

>Убить толстого гоблина.
Которого толстого гоблина из 12 вы имеете в виду?
>Со стеклянным глазом.
Вы ударили толстого гоблина со стеклянным глазом!

Если парсер будет это понимать, это будет замечательно!

Неактивен

0    0    #8
08.01.2003 01:29

FighteR
Участник
Откуда: Долгопрудный
Зарегистрирован: 12.12.2002
Сообщений: 33

Re: Размышления на тему...

GrAndrey написал:

Пока ни одна платформа не поддерживает таких вещей:

>Убить толстого гоблина.
Которого толстого гоблина из 12 вы имеете в виду?
>Со стеклянным глазом.
Вы ударили толстого гоблина со стеклянным глазом!

Если парсер будет это понимать, это будет замечательно!

Эй что за фигня? и Информ и ТАДС умеют задавать утчняющие вопросы! чем принципиально от процитированного отличается:(взято из threemed.exe)
>взять ложку
что вы имеете в виду: большую ложку, среднюю ложку или маленькую ложку?

Неактивен

0    0    #9
08.01.2003 09:24

GrAndrey
папа RTADS и Бяка (+47, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1196
Вебсайт

меньше слов

Re: Размышления на тему...

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

Неактивен

0    0    #10
09.01.2003 02:54

FighteR
Участник
Откуда: Долгопрудный
Зарегистрирован: 12.12.2002
Сообщений: 33

Re: Размышления на тему...

про гоблина: чем не вариант? (мой парсер такое поймёт)
"гоблин с глазом"
"гоблина с глазом"
"гоблину с глазом"
"гоблина с глазом"
"гоблином с глазом"
"гоблине с глазом"

про ложки
1) можно просто сделать объекты
"самая большая ложка"
"средняя ложка"
"самая маленькая ложка"
(только тогда может случиться так:
>возьми самую ложку
какую: большую или маленькую?)

2) если хочешь реально обрабатывать "самые" , тогда придётся детальнее прописывать свойства объектов, а это уже усложнение жизни создателя игры

про книгу:
"которая на столе" - это сложное определение (в отличие от 'с глазом', к тому же относится не к самой книге а к её местоположению.) Пока что такое нигде не реализовано. Но можно сказать "возьми книгу со стола" - мой парсер (да и Inform'овский) понимает такое и выдаёт "remove(book,table)."

Неактивен

0    0    #11
09.01.2003 09:41

GrAndrey
папа RTADS и Бяка (+47, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1196
Вебсайт

меньше слов

Re: Размышления на тему...

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

Неактивен

Powered by PunBB
© copyright 2001–2022 iFiction.Ru