Понедельник, 30 Декабря 2024, 20:25

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [85]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [151]
Статьи о программах для создания игр, уроки и описания.
Софт [44]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [18]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [169]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [133]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какую графическую систему API вы используете?
Всего ответов: 10250
Главная » Статьи » Движки и Гейммейкеры

Крылом мысли - WoT
Краткое руководство программирования.
        Введение.
        Описание интерфейса.
        Что такое 100% визуальное программирование?
        С чего начать?
        Что такое класс и объект.
        Какова стандартная структура класса?
        Как работать с классом?
        Что такое Дизайнер (Designer)?
        Что такое Моделлер (Modeller)?
        Краткий курс реального моделирования.
        Выбор объектов мышкой в работающей программе.
        Изучаем управление поведением и "язык" объектов.
        Изучаем технологию управления событиями.
        Действие гравитации и других полей.
        Как одни объекты могут перемещать другие?
        Что такое классификация?
        Создание форм и собственного интерфейса.
        Распространение результатов Вашего творчества.
        Переходим к искусственному интеллекту.
        Запуск команд по принятым решениям.
        Многокаскадное соединение матриц.

Введение.

Лучшая программа для Вашего творчества, практически в любой области - от разработки игрушек до обучающих программ и создания моделей Искусственного Интеллекта. Высококачественная графика сочетается с полным моделированием реальных законов Природы! Теперь Вы можете воплощать свои фантазии не хуже опытных программистов.
Работая с "Крылом мысли" Вы можете вообще не знать программирования, но можете, если хотите, углубляться в такие тонкости этого искусства, которых Вам не позволит достигнуть ни Delphi, ни Visual Basic, ни Си.
Почему так просто? Потому что "Крыло" - это конструктор типа "Lego", где Вы можете все собирать из готовых кусочков.
Почему так глубоко? Потому что "Крыло" содержит все тонкости современных систем и еще элементы Искусственного Интеллекта.

Достоинства программы:
  • Стопроцентное визуальное программирование.
  • Язык 100% совместимый с Visual Basic, но при этом его глубокое знание не требуется!
  • Понимает наиболее популярные графические форматы, включая 3D Max и AutoCAD.
  • Моделирует реальные физические законы: Гравитацию, Столкновение, Огонь и т.п.
  • Позволяет создавать собственные модели людей, животных, обучать их, после чего такую "персону" можно передать своему другу или устроить поединок с его "творением" - никаких проблем! Все зависит только от Вашей фантазии!
  • Позволяет быстро написать программу на любую тему, в том числе такие далекие от трехмерной графики вещи, как обработку текстов и математические вычисления.
Вы можете создавать собственные Миры, используя в качестве карты обычные фотографии. Легко и просто создайте Луну, Марс, или используйте в качестве основы любой рисунок, сделанный Вами! Вы можете быть Богом, назначая в Вашем Мире любые законы природы!
Очень простой интерфейс позволяет сразу же, без программирования работать с трехмерной графикой. Большинство операций автоматизировано и не требует от Вас глубокого знания компьютера.

Описание интерфейса.

Интерфейс "Крыла Мысли" состоит из двух основных элементов: графического редактора (конструктора Миров) и редактора классов.
Графический редактор позволяет размещать и настраивать объекты в вашем Мире (программе).
Редактор классов позволяет создавать, редактировать и исследовать классы объектов.
В редакторе классов объектам может быть присвоено множество событий, например, реакция на столкновения, удары, температуру воздуха, сообщения от других объектов и т.д. Вы можете написать любую процедуру или функцию для нового класса, создать законы для него, наделить его собственной базой знаний и опыта. Имеется множество других возможностей, которые пользователь легко освоит, самостоятельно "поползав" по системе.
В большинстве случаев достаточно всплывающей подсказки. Иные функции полностью становятся понятными, когда в процессе их использования возникают исчерпывающие списки для выбора из числа возможных вариантов. Разумеется, доступен Help.
Если же всех вышеперечисленных способов все-таки недостаточно - воспользуйтесь наглядными примерами, поставляемыми вместе с дистрибутивом.

Что такое 100% визуальное программирование?

Неужели, можно обойтись без написания хотя бы одной строчки? И да, и нет! Если Вы хотите создавать все из готовых кусков и объектов, то можно просто расставлять объекты - все будет работать само!
Общий подход следующий:
  1. Выбираем или создаем Мир. Мир, - это трехмерное пространство для событий (Сцена). Оно может быть Реальным (Земля, Подводный мир, Космос) или условным - Модельная комната. Определяем правила и законы, действующие в Мире. (Это повлияет на настройку объектов, которую Вы должны будете сами сделать).
  2. Определяем список классов объектов и количество экземпляров для каждого Класса. Например, если есть деревья типа "Елка", то нужен один класс "Елка". Наличие класса в Вашем Мире позволяет тиражировать объекты простым нажатием кнопки.
  3. Создаем (тиражируем) объекты и расставляем их на стартовые позиции.
  4. Настраиваем свойства классов и объектов, пользуясь "Визардами" - инструментами визуализации, так, чтобы люди, машины и животные правильно бегали, а все мосты, дома и деревья правильно стояли и росли : (можно и на оборот, если угодно).
  5. Добавляем стартовые инструкции в главную программу, если это требуется, или в раздел "Писем". По этим инструкциям объекты "поймут", в чем "смысл их существования" в Вашем Мире.
  6. Записываем (сохраняем) и наслаждаемся результатом...
С чего начать?

Конечно, сначала нужно обратиться к собственной фантазии. Сейчас очень много людей, которым совершенно все равно, что делать, - лишь бы делать. Но мы уверены в том, что у Вас полно собственных идей и хватает решимости для их воплощения. Волшебное "Крыло" Вам поможет, но только при условии, что Вы будете действовать последовательно. Примерно так:
  1. Задумать идею и написать коротенький план ее реализации.
  2. Создать (у нас великолепные инструменты) карту и ландшафт Вашего будущего Мира.
  3. Придумать все необходимые классы объектов (например: деревья, дома, птицы, рыбы и т.п.).
  4. Создать все придуманные классы в "Крыле" (это не очень сложно!).
  5. Создать все объекты классов (просто нажмите кнопку!).
  6. Расставить и настроить объекты.
Ваша идея готова к испытанию!

Что такое класс и объект.

Класс, - это описание (схема) для создания и анализа свойств объектов одного вида. Вы можете придумывать собственные классы, наделяя их нужными свойствами и функциями. Например, класс "Деревья" может расти и размножаться. А класс "Динозавр" - поедать деревья. Когда класс разработан, можно приступать к "штампование" его экземпляров (объектов). Вы можете создать столько объектов (экземпляров) одного класса, сколько потребуется. Для этого достаточно нажать кнопку и задать экземпляру имя. Классы можно записывать на диск, что бы они были доступны для дальнейших экспериментов, и чтобы их не приходилось придумывать заново. У класса есть два важных свойства:
Dynamic - этот класс исчезает из работающей программы вместе со своим последним экземпляром - объектом.
Person - этот класс объекта всегда существует только в одном экземпляре.

Какова стандартная структура класса?

Как только Вы откроете редактор классов, например, с помощью меню New Class, то увидите, что класс имеет несколько разделов:
  • Body - описатель физического тела объекта.
  • Type - физический и логический тип (например, 3D)
  • File - файл, отображающий внешний вид объекта (его каркас).
  • Texture - имя "кожи", "натянутой" на каркас объекта (раскраска, узор).
  • TextureFile - имя файла текстуры.
  • Classification - с помощью этого признака объекты могут опознавать друг друга. Например, волк узнает зайца.
  • Brain - (Мозг) Используется, если система добавляет в класс некоторые важные Разделы Знаний.
  • Properties - список свойств и переменных объекта.
  • Laws - список законов, действующих на объект (например, Гравитация).
  • Events - список событий, воспринимаемых объектом (например, Удар)
  • Methods - список процедур и функций объекта.
  • Commands - список внешних команд и слов языка общения между объектами.
  • Knowledge - раздел, относящийся к искусственному интеллекту.
Как работать с классом?

Хотя в каждом классе очень много всякой информации, работать с ним довольно легко. Во-первых, почти все уже заполнено по умолчанию. И Вы можете, просмотрев имеющиеся свойства, изменить необходимые. Во-вторых, "Визард" автоматизирует все типовые операции. Наконец, нет нужды изменять в классе все сразу! Первое, что нужно определить, это:
  • Имя класса (выберите кнопку или свойство bName)
  • Законы, действующие на класс (используйте Add или Delete), предварительно выделив раздел "Законы".
  • События, воспринимаемые классом (Например, Удар или Столкновение). Поступайте так же, как и с событиями. Ненужные - удаляйте. Нужные - добавляйте из списка. Затем откройте двойным щелчком каждое событие и напишите внутри него то, что должен делать объект при возникновении этого события.
Примечание: если Вы плохо владеете языком Basic, посмотрите имеющиеся примеры или соответствующую литературу.

Где найти новые графические тела и модели объектов? Предлагается три простых варианта ответа на этот вопрос:
  • Найти подходящие модели в Интернете или на компакт-диске с игрушкой, редактором, и т.п.
  • Используя любой 3-х мерный редактор (например, 3D Max) создать желаемое собственными руками.
  • Используя встроенные средства "Крыла" создать модель или структуру объекта прямо в самом "Крыле".
Что такое Дизайнер (Designer)?

Откроем вкладку Designer и раскроем панель управления для создания и редактирования Ваших 3-мерных конструкций. Комментарии, на наш взгляд, для этой панели не требуются. Все и так понятно. Но есть нюансы, которые Вам следует запомнить. Создаваемые в "Крыле" объекты, - это конструкции, состоящие из деталей. Это файлы типа ".dsg", которые обладают некоторыми преимуществами и недостатками.
Преимущества: Конструкции можно собирать, изменять и разбирать прямо в процессе работы программы. Например, можно поручить человечку собрать домик по кирпичам, а затем разломать его на части с помощью бомбы.
Недостатки: Эти файлы работают медленнее, чем 3ds-файлы.

Для того, чтобы создать новый, 3-мерный файл объекта, выполним следующие действия:
  1. Откроем редактор классов с помощью меню NewClass
  2. Откроем поле Body, раздел Type и в списке типов выберем тип Body Design.
  3. Закроем редактор классов и откроем закладку Editor.
  4. Выберем рисунок Add object (папа и мама ведут ребенка за руку) и добавим пустой объект нового класса.
  5. Откроем вкладку Designer и приступим к созданию своего 3-мерного детища.
  6. Конечно же, не забудем записать результат в специальный файл, используя "дискетку" в нижней части вкладки Дизайнера.
Объект можно раскрашивать не только цветами, но и узорами, с помощью "портрета" - на нижней части вкладки Дизайнера.

Что такое Моделлер (Modeller)?

Моделлер - это встроенное средство "Крыла", позволяющее Вам создавать анимированные 3D-модели. У этих моделей могут быть собственные команды - такие, какие Вы пожелаете. Например: встать, бежать, упасть, драться и т.д. Моделлер создает модели в специальном формате "Крыла", которые затем записываются в специальные файлы и могут быть использованы в Вашем мире с тем же успехом, что и модели, которые Вы взяли из компьютерных игр.
Преимущества этого вида моделей: Их можно собирать из деталей, являющихся обычными объектами. Вы просто подгружаете в список "руки", "ноги" и прочие части, а затем собираете из них свою модель и анимируете ее.
Недостатки: Этот тип моделей работает несколько медленнее, чем модели, взятые из других источников (например, созданные в 3D Max).

Краткий курс реального моделирования.

Физические свойства объектов Temperature и FireTemperature.
Эти свойства задают текущую температуру и температуру возгорания объекта. Как только температура превысит порог возгорания, объект сам загорится или взорвется. Последнее (взрыв) определяется свойством TimeExhaustion - время горения. Если оно меньше 10, то объект взорвется. В противном случае объект будет медленно гореть в течение заданного времени. Сила взрыва и степень разогрева определяется свойством LatentEnergy. Чем оно больше - тем сильнее воздействие взрыва (огня) на окружающие объекты. Если, например, приблизить другой объект к горящему объекту, то через некоторое время он (другой объект) сильно нагреется и, возможно, даже загорится.

Свойства Mass, Elasticity, Sliding, Density.
Эти свойства определяют механическое поведение объектов и их взаимодействие при ударах, с гравитацией, при движении.
Mass - масса объекта в килограммах.
Elasticity - упругость (вещественное значение в диапазоне 0:1)
Sliding - скольжение (вещественное значение в диапазоне 0:1)
Density - плотность, относительно воды.
Если свойство Density задать большим 1, то это приведет к утопление объекта в воде, а меньшее 1 - к тому, что он станет плавучим. Если это свойство будет иметь очень маленькое значение (плотность меньше установленной плотности воздуха), то объект, взлетит, как воздушный шар.

В связи с этим такой пример: Конструируем воздушный шар. (см. также пример "Aerostat")
  1. Создадим новый проект и добавим к нему новый класс с именем Aerostat.
  2. Установим Тип тела 3D, а файл "Aerostat.3ds".
  3. Установим свойство Density = 0.003
  4. Создадим экземпляр этого класса (Add object)
  5. Нажмем кнопку "Пуск" в главном меню и шар взлетит!
А теперь экспериментируем с Аэростатом:
Установим режим Test (в меню Старт есть такой раздел). В этом режиме одновременно действуют и редактор, и законы Мира. Нажмем на вкладке редактора значок "Вверх-Вниз". И начнем "таскать" Аэростат вверх или вниз (не касаясь земли!). Обратим внимание, что, как только мы его отпускаем, он снова занимает (покачавшись вверх вниз) свое положение в атмосферном слое, заданное его плотностью.

Экспериментируем с огнем и взрывами:
  1. Создадим два новых класса - Les и Mina.
  2. Классу "Лес" установим тип = Nature, а "Мине" тип = 3ds.
  3. Выберем файлы объектов.
  4. Щелкнем в редакторе классов для Мины по значку "Взрывается от удара" - при этом "Крыло" автоматически настроит все свойства класса для взрыва.
  5. Создадим объекты этого класса.
Если теперь заставить (об этом ниже) одну из мин взорваться, то ближайшие деревья начнут гореть. От них огонь перейдет к другим деревьям, а затем, достигнув второй мины - взорвет ее.

Выбор объектов мышкой в работающей программе.

Это отвратительное действие, потрепавшее много нервов разработчикам игр и физических моделей. Конечно, щелкнуть мышкой по готовой кнопочке в Delphi или в Visual Basic может любой ребенок. И вставить в процедуру кнопочного события что-либо типа: MsgBox "Привет! Это щелчок!" - не сложно. Но, если Вы сами когда-либо создавали графические объекты и приложения, то знаете, как трудно "вычислить" в Вашей программе, куда попала мышка, щелкнувшая по 2-мерной проекции 3-мерного Мира! Наше (а теперь и Ваше) "Крыло" полностью устраняет эту проблему! Следующий пример из нескольких строчек, мы надеемся, Вы оцените по достоинству (файл примера MousePik).
Создадим какой либо Мир и "накидаем" в него разных объектов. Можно взять любой готовый пример с неподвижными объектами, а иначе за ними придется гоняться по экрану. Откроем меню World \ Main program и добавим туда следующий код:

Sub Main
World.Msg "The interface tutorial",4000
End Sub
Sub MouseDown(Button,X,Y,SelType,SelectName,Lx,Ly,Lz)
Select Case SelType
Case 1
World.MsgUp " Land point: X = " & Lx & " Y = " & Ly & " Z = " & Lz
Case 2
World.MsgUp "Object: " & SelectName
End Select
End Sub

Запустим программу и начнем щелкать по объектам или по земле и горам. Вы увидите, как "Крыло" мгновенно вычисляет, куда попала мышка!

Изучаем управление поведением и "язык" объектов.
Создаем простейший пример преследования одного объекта другим.

Те, кто программировал что-либо, понимают, что совсем не просто создать программу, которая заставит один объект преследовать другой. Лично Вас эти проблемы не коснутся, т.к. объекты понимают Вас почти на привычном Вам "языке".
В файле GoToTarget.bwl находится пример с двумя "Танками". Там желтый танк движется по заданному маршруту, учитывая спуски и подъемы. А красный танк пытается его догнать, ничего не зная о маршруте цели. Рассмотрим, как это сделано:
Откроем меню Word \ Messages for objects. Это новая технология "общения" с объектам. Из этого окна Вы посылаете объектам любые сообщения (письма), а они их читают и, если понимают, то что-то делают по своему усмотрению в зависимости от понимания. В этом окне мы увидим два послания обоим танкам:

TankRed:
[GoTarget Tank
]
Tank:
[L G 0.2 300 R G 0.2 350 L G 0.2 300 R G 0.2 250 L G 0.2 300
Stop
]

Первое послание предлагает красному танку (TankRed) достигнуть желтый (Tank). Второе послание адресовано желтому танку и просто описывает маршрут движения (L, R - повороты; G - движение с заданной скоростью в течение заданного времени). Вот и все! Но как же это работает? Довольно просто. Для того, что бы это увидеть, откройте редактор классов двойным щелчком по "Красному танку". Откройте раздел класса на Commands. Вы увидите, какие слова понятны этому классу. Двойным щелчком по каждому слову в разделе Commands откройте описание сути этих слов. Теперь Вы поняли как создавать свои Слова-Команды?

Изучаем технологию управления событиями.

Что такое событие? До сих пор мы имели дело только с искусственными событиями (например, щелчок мышкой по кнопке). "Крыло" вводит технологию реальных событий. Откроем в разделе Commands слово GoTarget.

Dim Nam
Nam = Obj.NextMacroSimb ' получить имя цели из письма
Obj.ToObject Nam,10,True,0.2,False,50 ' настроить механизм преследования.

Это слово настраивает механизм преследования, используя встроенную функцию "Крыла". Дальше начинается самое интересное! Этот механизм способен только один раз повернуть танк и задать ему скорость на цель. Но ведь цель маневрирует! Идея состоит в том, чтобы периодически "терять" цель из вида и настраивать внимание повторно. Это достигается последним параметром - 50 единиц времени. Затем наступает событие Target Forgotten - цель забыта. И наш танк теряет цель: Вот именно в этом событии и "зарыта собака"!
Откроем в разделе Events класса Танк отдел Target Forgotten, и увидим, что там просто повторно задается то же самое!

Obj.ToObject trNam,10,True,0.2,False,50

Только теперь имя цели уже берется из самого события (из памяти объекта) - trNam. Теперь Вам ясно, почему красный танк "упрямо" бегает за желтым, пока не догонит? Кстати, за успех преследования цели отвечает другое событие - Target. Посмотрите, что в нем написано, - что будет делать танк, когда догонит свою цель.

Какие еще события есть у объекта? Выделите в редакторе классов раздел Events и нажмите кнопку Add. Вы увидите полный список выбора возможных событий. Если этого Вам недостаточно, можете создавать свои собственные события, используя кнопку "Другое".

Изучаем действие событий Столкновение и Удар. Загрузим файл "Mina" и запустим его. Когда танк взорвется, наехав на мину, загрузим файл повторно и изучим работу примера. Откроем событие Impact для "Мины". Там всего одна строка:

Obj.Fire = True

Этого достаточно, чтобы пример работал! Когда что-то ударяет по мине, возникает событие "Удар" и она "поджигается". Свойство Мины TimeExhaustion = 1. Поэтому горение происходит очень быстро - т.е. со взрывом. Вот и все!

Действие гравитации и других полей.

"Крыло" моделирует гравитацию и любые другие (например, магнитные или электрические) силы. В данной версии эти возможности слегка ограничены. Тем не менее, это не мешает Вам создавать сложные ситуации. Загрузим пример Most.bwl. В нем только два объекта: Солдат и Мост. Вся программа состоит из одной инструкции:

Sub Main
FindO("Man").Begin "R G 0.1 3500 S Fr "
End Sub

Здесь солдату задается направление и скорость движения. Можно было бы это сделать проще - через окно писем. Но для разнообразия в примерах, пусть здесь будет так: Солдат поворачивается в нужную сторону и : начинает взбираться на мост!
Внимательно пронаблюдайте, как он это делает. Это очень хороший пример действия гравитации и столкновений. Здесь участвуют свойства Mass и Elasticity. Суть в том, что солдат постоянно падает к земле, но отскакивает от моста вверх. В реальной жизни происходит нечто подобное, только это не так заметно. Кстати, в конце пути солдат упадет и сгорит благодаря командному слову Fr (из разряда черного юмора).

Вместилища, или как одни объекты могут перемещать другие.

Загрузите пример River.bwl. В нем солдат взбирается на мост. Корабль, находящийся под мостом, ждет некоторое время. Затем, когда солдат прыгает, корабль "вмещает" его и плывет вместе с ним к берегу. Инструкции объектам задаются через уже известное Вам окно писем, хотя можно было бы сделать все на основе событий. Кстати, корабль действительно плывет по воде - его свойство Density меньше плотности воды. Можете потом "подергать" его в режиме Test - утопить не получится! Откроем главную программу и увидим настройку корабля:

Shp.AutoContain = "kkohmk," (классификационный код людей)

Это все, что нужно для того, чтобы корабль мог вместить (взять на борт) любого человека или подобное ему существо!

Что такое классификация?

В примере использован классификационный код - это статья доступная в редакторе классов: раздел Body, отдел Classification. Если щелкнуть по нему, то откроется окно классификаций. Вы можете создавать любые классификации для своих объектов.
Когда объект получил собственный классификационный код, другие объекты могут его узнавать и отличать. Причем, классификация позволяет объектам "понимать", что именно перед ними, к чему это относится, какими свойствами обладает, и т.п.

Создание вспомогательных форм и собственного интерфейса.

Загрузим пример Tank.bwl. В нем с помощью небольшого пульта управления Вы можете направить танк на мину.
Откроем закладку Forms и увидим, что в списке содержится только форма самого пульта управления. Щелчком по списку откроем ее а щелчком по самой форме, откроем ее программу. Это делается правой кнопкой мышки (нужно щелкать по свободной части самой формы). Вы видите, что "Крыло" создает и использует обычные формы, типичные для современных визуализированных программ. Можно иметь несколько форм в программе.
Кстати, в "Крыле" для форм есть несколько очень интересных контроллов. Например "MathText" - специально текстовое окошко, которое может вычислять формулы, обрабатывать обычный текст по словам, символам и по смыслу:

Распространение результатов Вашего творчества.

Эту важную задачу "Крыло" решает для Вас с помощью своих весьма обширных возможностей. Кому нужен результат труда, если его нельзя показать, продать или подарить? Работая с "Крылом" Вы легко можете создавать готовые "изделия", программный код которых закрыт для посторонних глаз. Эти приложения сразу будут запускаться. Вы можете передавать другим пользователям проекты своих Миров, проекты классов, объекты, модели, обученные различным навыкам работы:
Вообще-то, любая программа "Крыла" занимает очень мало места на диске - несколько десятков килобайт. Такой компактный способ записи использует ссылки на все необходимые, стандартные файлы, которые есть у любого пользователя "Крыла". Если же Вы не уверенны в наличие всех нужных файлов или программе нужны Ваши собственные файлы, то используйте встроенный в "Крыло" упаковщик. Он доступен из меню File \ Package :
Там Вы найдете еще и проверочные функции, которые позволят безопасно просмотреть чужую упаковку или проверить свою. Используя упаковщик, Вы получите один большой файл, который гарантированно содержит все необходимое для работы Вашего проекта.
Пожалуйста, возьмите за правило, обязательно заполнять анкету сообщения, прилагаемого упаковщиком к Вашему изделию. Это - правило хорошего тона, отличающее серьезного пользователя, уважающего интересы других. В сообщении укажите основную суть упакованной информации и предупреждения о безопасности. Ваше сообщение станет доступно прежде, чем пользователь распакует файл в свою систему.

Переходим к искусственному интеллекту.
(Немного фантазии)

Все современные представления о разумном поведении автоматов говорят, что, якобы, человек и животные сильно отличаются от всего искусственно созданного. Работая с "Крылом", Вы легко поймете, что можно создать (или скоро это будет возможно!) искусственные существа, и даже ЦЕЛЫЕ МИРЫ, населенные ими, мало чем (ПО СУТИ) отличающиеся от реальных. Кто знает, возможно, некоторые из "продвинутых" существ искусственных миров, однажды придут к идее Творца?.. Все это уже не за горами:

Сложное поведение объектов реализуется через матричную концепцию Искусственного Интеллекта. Объекты могут включать в себя специальный модуль (объект) AI2.
Для этого в событии Initialize напишите:

Set Ai = World.BuildAi(Obj,FileName)

Разумеется, ссылочная переменная Ai должна быть объявлена в разделе Свойств класса. Теперь к методам и свойствам этого модуля можно обращаться, как к обычным методам и свойствам (через точку):

Ai.Property = X

Обратите внимание, что, указав имя файла, Вы создали не пустой, а уже обученный ИИ-модуль. Если такого у Вас нет, то создайте его, открыв в главном меню пункт - AI Wizard. ИИ модуль - это система матриц различного типа и формата, хранящих некоторый опыт, необходимый для принятия решений. Сам ИИ - это только модуль, который будет работать только в контексте имеющихся "реальных" объектов. Его методы и содержащаяся в нем информация - это только система принятия решений и обучения новым решениям, но не программа для объекта. Каждая матрица содержит некоторый опыт в виде суммы строк.
Представим себе матрицу для опознавания животных:
Животное Скорость Рост Длинна Цвет
Птица 10 1 1.7 15
Рыба 0.1 0.5 3 3
Волк 2 3 4 6
Теперь, если вызвать функцию:

Ai.Test("Животное", Array(0.5,1,4,3))

то, скорее всего, получим ответ =2, т.е. - "Рыба"!

Запуск команд по принятым решениям.

Когда фрейм (матрица) совершил свой выбор, некоторые его свойства будут содержать полезную информацию о достоверности и прочих качествах решения (смотри Help).
Однако, есть еще и функция, закрепленная за каждой строкой. Рассматривая Ai Wizard, Вы, конечно, обнаружили окошко "Акция" в закладке управления строками и окошко "Главная акция" в закладке "главные знания". Акции - это произвольные программы (не слишком большие) на языке Basic, которые могут быть автоматически выполнены в соответствии с результатом действия данного фрейма, или глобально - для всего ИИ. Мы надеемся, что примеры позволят разобраться в методике использования этих возможностей.
В общем случае выполнить Акцию можно и для одного отдельно взятого фрейма (матрицы):

X = Ai.Action(Frame, Параметры)

Обратите внимание, что это функция, которая вернет результат Акции (для последующего и, возможно, многоуровневого использования), но можно использовать ее просто как процедуру, если, например, нужно "просто повернуть руку робота".

Что еще могут обучающиеся матрицы? Понятно, что, прежде всего, - самообучаться. Мы можем много раз "показывать" фрейму "Животное" разные параметры РЫБ, до тех пор, пока фрейм не начнет уверенно отличать любых Рыб, даже тех, КОТОРЫХ ОН ЕЩЕ НЕ ВИДЕЛ:

Ai.Training "Животное","Рыба",Array(:..)

Типы матриц.
Матрицы могут иметь произвольное число столбцов и строк. Однако у них есть еще ряд важных параметров - например Mode - тип Логической обработки. Различаются следующие основные типы:
  • Сортирующая матрица (мы ее рассматривали выше)
  • Фантазирующая матрица - строит гипотезы на основе накопленного опыта.
  • Классифицирующая матрица - выбирающая ГЛАВНОЕ из суммы признаков объекта.
  • Обобщающая матрица.
  • Матрица времени - управляет вниманием и сортирует информацию по степени ее случайности и важности.
Многокаскадное соединение матриц.

Понятно, что любой мозг - это иерархия нейронов (иерархия понятий). Точно так же матрицы могут соединяться (ссылаться) друг на друга, образуя многоуровневые системы понятий и системы выработки решений:
Место Обитания
Характер
Подвижность
Форма
Самообучение
> Животное
Для самообучения матриц достаточно, чтобы они имели нужные признаки изучаемого знания.Количество и истинность признаков - главный критерий успешного обучения. Если Вы - преподаватель в школе или в ВУЗе, то, используя "Крыло", Вы можете создавать учебные пособия, наглядно показывающие условия успешного обучения и условия срыва обучения.

Объекты могут выполнять очень сложные инструкции, а, главное - придумывать собственный план действий. Для этого они должны обучаться, изучать Мир в котором находятся, накапливать и обобщать свой опыт. Все это уже возможно в Мирах "Крыла"!
Удачи!
Категория: Движки и Гейммейкеры | Добавил: Linka (13 Сентября 2009)
Просмотров: 9046 | Комментарии: 2 | Рейтинг: 4.5/8 |
Теги: 3D мир, Создание игр, крылом, программа, Modeller, Designer, Программа для творчества, Разработка игр, Крылом мысли, Игрострой
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Крылом мысли - WoT», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 2
+1-
1 Viruz   (26 Сентября 2009 14:46) [Материал]
Viruzвообще непонятное что-то...вроде как все расписано...но и как-то непонятно, а скринов нет? happy

+1-
2 GC-Vic   (01 Октября 2009 23:39) [Материал]
GC-VicWoT, вроде, уже пропал из виду. Этот отечественный конструктор игр был хорош, но автор его забросил. Сейчас уже не знаю, где скачать его.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • RPG Architect
  • Garry's mod
  • Game Hammer 2
  • LKI-Creator 3D
  • Cave Engine
  • WorldSim3D
  • DizzyAGE
  • AresEd
  • Sparrow
  • Twine
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг