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