Отправляет email-рассылки с помощью сервиса Sendsay

Новости сайта www.dyda.info

  Все выпуски  

DarkBASIC - легко создаем 3D миры и игры!


Информационный Канал Subscribe.Ru


Специальный выпуск для новых подписчиков


Номер 7/август 2002
От редактора

  Теперь нас 406 подписчиков! Ура! :-)

  Информация для новых подписчиков! Если вы "не врубаетесь" о чем идет речь в рассылке - посмотрите предыдущие номера рассылки. И вам станет интереснее! :-) Также светую посетить оффициальный русский сайт www.darkbasic.ru и darkbasic.narod.ru Также для вас, мои новые подписчики, статья, которая введет вас в "курс дела" и даст общие понятия о том, как мы делаем свои вируальные миры и трёхмерные игры...

  Заканчиваю цикл начальных уроков и строю планы на будущее. :-)

astonshell.com

  Ну это информация немного не по теме рассылки, но все же хочу с вами поделиться своим небольшим открытием. Нажав на баннер слева, вы попадете на сайт "наших" программистов, которые сделали замечательные программы Aston и AtlDesk. Первая - заменяет стандартный рабочий стол Windows на свой, очень оригинальный, удобный, а главное очень быстрый. Вторая программа - позволяет вам иметь на мониторе не один рабочий стол, а хоть 80! При этом все работает

чрезвычайно стабильно,без глюков и всё очень красивое - в отличие от серых продуктов Microsoft - да и размер их, что называется "на одну дискетку". Кстати, поддерживаются скины и вы можете сделать их сами (например, в стиле DarkBASIC-а), или скачать с сайта. Да что я тут заговорился! Нажмите на баннер и сами все посмотрите, и прочитаете...

  Замирая в глубоком пардоне, Илья Середа.


Содержание номера:

      1. Новости.

      2. Основы программирования.

      3. Что такое DarkBASIC?

      4. Искусственный интеллект в играх




Новости

  "Пользователи русских лицензионных копий DarkBASIC-а также имеют возможность произвести замену на версию Professional за 69.99$. Но вы получите, естественно, английскую версию пакета." - вот такой оффициальный ответ на свое письмо, я получил от Рика Ванера (коммерческого директора по продвижению и продаже). От компании "Медиахауз" (благодаря стараниям которой появилась руссифицированная версия DB) никаой информации непоступало. Очень надеюсь, что они займуться если не продажей также руссифицированной версии DB Professional, то хотя бы английской версии по традиционно немного низкими ценами.

  Авторитетный журнал "PC Magazine" (Русская редакция) опубиковал статью в июльском номере, о DarkBASIC-е (страницы 100-101). "... В целом DarkBASIC" оставляет очень благоприятное впечатление. Это достаточно мощное, занимательное, "креативное" пособие по программированию - и вместе с тем практически полезный высокотехнологичный инструмент, позволяющий быстро достич наглядного результата. При этом цена программы на удивление невысока." Надо сказать, что случайные статьи в этот журнал не попадают, т.к. он в сновном ориентирован на специалистов, а не на простых пользователей компьютеров. Что и радует! :-)

  25 июля на американском сайте подержки DarkBASIC и DarkBASIC Pro закончился конкурс среди пользователей DB. Было представлено свыше 50 работ со всего мира.
  В категории "Лучшая игра" места распределились так:

  1 место с вручением 100$ и коробки с новой версией DarkBASIC Professional получил некто Zealous с игрой "Perpexed", напоминающая знаменитую игру "Marble Madness". Красивые головоломки, прекрасная графика и удобное управление.

  2 место заняла игра "Hijacker FC". Ее автор получает 50$ и коробку с DarkBASIC Professional. Это - забавная игра! Быстрый геймплей и куча "вкусностей".

  За 3 место db Software получает 50$ за Тетрисо-подобную игру "Marblez" с великолепной графикой, привлекательной музыкой и удобным управлением.

  В категории "Лучшие прикладные программы", первое место разделила программа для создания тестур и великолепный скринсейвер "Калейдоскоп".
  Хитом, конечно же, была признана игра бразильца Henrique Luna под названием "Agora ou Nunca". Это гоночный имитатор с профессиональными уровнями, поездками как днем так и ночью (с фарами!).




Основы программирования.

  Заканчиваю цикл начальных уроков по программированию. В следующей рассылке мы будем делать свою настоящую трёхмерную игру под "Руководством по созданию 3D-игр". Кроме того, мы научимся делать настоящуюю "Атмосферу" со сменой дня и ночи, а также изменения тумана. Научимся создавать свои "земли и моря" при помощи замечательного редактора территорий (матриц) Magic World.
  Далее последняя пара уроков по ОСНОВАМ ПРОГРАММИРОВАНИЯ. Для более детальной и полной информации - рекомендую обратиться к первоисточникам. А это компания "Медиахаус" и "Руководство пользователя", которое вы получаете в коробке с лицензионным DarkBASIC-ом.

УРОК 9
СОЗДАНИЕ ЛАНДШАФТА

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

rem Загрузить каменное основание в изображение
LOAD BITMAP "floor.bmp",1
GET IMAGE 1,0,0,128,128
DELETE BITMAP 1

rem Включить синхронизацию и скрыть курсор мыши
SYNC ON : HIDE MOUSE

rem Создать трехмерный ландшафт
MAKE MATRIX 1,10000.0,10000.0,25,25

rem Текстурировать ландшафт
PREPARE MATRIX TEXTURE 1,1,1,1

rem Расположить рельеф в случайном порядке
RANDOMIZE MATRIX 1,300.0

rem Включить и определить плотность тумана
FOG ON
FOG COLOR 0
FOG DISTANCE 5000

rem Начало цикла
DO

rem Управление турелью камеры
IF LEFTKEY()=1 THEN angle#=angle#-3.0
IF RIGHTKEY()=1 THEN angle#=angle#+3.0

rem Сделать так, чтобы угол оставался в пределах заданного диапазона
angle#=wrapvalue(angle#)

rem Обновить камеру
YROTATE CAMERA angle#

rem Обновить экран
SYNC

rem Конец цикла
LOOP

Первая часть программы загружает растровое изображение, не выводя его на экран, и перехватывает в память содержимое этого изображения, позже используемое для текстурирования ландшафта. Для создания ландшафта применяется матрица, то есть совокупность ячеек сетки, которые с помощью команд можно поднимать, опускать и текстурировать. Программа создает матрицу размером 10 000 ячеек, поделенную на 625 отдельных квадратов (25x25). Затем на эту матрицу накладывается текстура, и рельеф размечается в случайном порядке, чтобы достичь эффекта скалистых холмов.

Если ваша графическая карта поддерживает эффект тумана, то включается туман, и его плотность устанавливается в соответствии с дальностью отсечения изображения на экране. Туман окрашивается в темно-синий цвет, который затем используется для очищения экрана.

В качестве значения угла поворота камеры используется специальное вещественное число. На него указывает символ решетки (#), добавленный к имени переменной. Нажатие клавиш СТРЕЛКА ВЛЕВО и СТРЕЛКА ВПРАВО меняет значение этой переменной, а последующие строки кода обеспечивают возвращение значения к исходному, если превышаются максимальная или минимальная величины.

Последняя часть основного цикла обновляет угол камеры с помощью команды ROTATE CAMERA. Для поддержания постоянной скорости используется команда обновления экрана SYNC.

Заключительный шаг. Контрольные задания:

1. Измените программу так, чтобы камера поворачивалась быстрее.
2. Измените программу так, чтобы цвет неба стал красным.
3. Измените программу так, чтобы при нажатии какой-либо клавиши матрица располагалась в случайном порядке.

УРОК 10
ДВИЖУЩИЙСЯ 3D-ОБЪЕКТ

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

rem Сдвинуть камеру от центра
POSITION CAMERA 0.0,0.0,-1000.0
rem Загрузить трехмерный объект и дополнить его данными анимации
LOAD OBJECT "idle.x",1 : APPEND OBJECT "walk.x",1,100
YROTATE OBJECT 1,180 : FIX OBJECT PIVOT 1

rem Создать цикл анимации трехмерного объекта от 0 до 20 (ожидание)
LOOP OBJECT 1,0,20 : SET OBJECT SPEED 1,10

rem Включить синхронизацию
SYNC ON

rem Начало цикла
DO

rem Изменить угол объекта в зависимости от нажатия правой и левой клавиш-стрелок
stage=0
IF LEFTKEY()=1 THEN a#=a#-8.0
IF RIGHTKEY()=1 THEN a#=a#+8.0
a#=wrapvalue(a#)

rem Изменить положение объекта в зависимости от клавиш-стрелок вверх и вниз
IF UPKEY()=1 THEN x#=NEWXVALUE(x#,a#,3) : z#=NEWZVALUE(z#,a#,3) : stage=1
IF DOWNKEY()=1 THEN x#=NEWXVALUE(x#,a#,-3) : z#=NEWZVALUE(z#,a#,-3) : stage=1

rem Если меняется поведение объекта...
IF stage <> oldstage
IF stage=0
SET OBJECT FRAME 1,0.0
LOOP OBJECT 1,0,20
SET OBJECT SPEED 1,10
ENDIF
IF stage=1
SET OBJECT FRAME 1,105.0
LOOP OBJECT 1,105,125
SET OBJECT SPEED 1,40
ENDIF
oldstage=stage
ENDIF

rem Обновить положение и угол поворота объекта
POSITION OBJECT 1,x#,0.0,z#
YROTATE OBJECT 1,a#

rem Обновить экран
SYNC

rem Конец цикла
LOOP

Начиная с шестого урока, вы, наверное, обратили внимание, какую пользу приносят комментарии. Они не только объясняют, что делает та или иная часть программы, но и позволяет разбивать программу на отдельные блоки, выполняющие определенные задачи. Кроме комментариев, DarkBASIC дает возможность получить необходимую информацию по конкретной команде. В редакторе, где вы работаете с программой, щелкните мышью на интересующей вас команде и нажмите клавишу F1. Это называется контекстно-зависимой справкой, в результате вы попадете на страницу, где подробно описана команда и способ ее использования. Более того, на каждой странице справки приведен собственный пример программы и ссылки на глоссарий и другие похожие команды.

Заключительный шаг. Контрольные задания:

1. Измените программу так, чтобы объект ходил быстрее.
2. Измените программу так, чтобы создать рельеф, по которому будет ходить объект.
3. Измените программу так, чтобы камера все время была направлена на объект.

Если вы проштудировали все десять уроков и успешно выполнили все задания, то вы добились значительного успеха. Не беспокойтесь, если чего-то не поняли в примерах. Чтобы глубоко изучить основы языка программирования, требуется время, особенно на ранних стадиях обучения. Поэтому советуем вернуться к тому уроку, в котором вы чувствовали себя уверенно, и внести собственные изменения в программы, чтобы добиться нужного результата. Когда вы полностью освоите урок, можете спокойно переходить к следующему.




Что такое DarkBASIC?

  Этот текст я взял с официального русского сайта. Полный оригинальный текст с оформлением и илюстрациями - здесь. Ниже, вы также можете прочитать мою статью "Что такое DarkBASIC и с чем его едят?" из первого номера рассылки. И в конце - статья "Где приобрести DB и надо ли это делать?".

  DarkBASIC представляет собой уникальную среду программирования для создания 2D и 3D игр, анимации, презентаций, слайд-шоу и даже бизнес-приложений.
  Программа удачно сочетает в себе мощные возможности DirectX и Direct3D и легкость программирования на языке BASIC, доступном каждому современному школьнику. DarkBASIC - это реальная возможность овладеть секретами создания профессиональных программ.
  Отдавая себе отчет в том, что для создания современных 3D игр недостаточно возможностей персонального компьютера и необходимо быть высококлассным программистом, команда разработчиков DarkBASIC постаралась найти оптимальное решение, чтобы даже непрофессионал смог создать на своем домашнем компьютере профессиональную программу. Идея родилась в 1998 году, и вскоре закипела работа.

Почему надо начинать с DarkBASIC?

  Допустим, имея желание реализовать на компьютере свою творческую идею, многие просто не знакомы с основами программирования и даже не имеют намерения осваивать программирование в полном объеме.Даже для них DarkBASIC станет чудесным открытием в мир программирования и позволит воплотить мечту в реальность.
  Когда появились первые компьютерные игры, игрокам приходилось так или иначе знакомиться с основами программирования. Многие ранние компьютерные игры были написаны на языке BASIC, и любой игрок мог легко посмотреть исходный код, а иногда и исправить его так, чтобы получить те или иные преимущества в игре. Из таких игроков нередко вырастали будущие гениальные программисты.
  Пакет DarkBASIC включает в себя не только среду программирования, но и примеры игр, созданных с помощью этой программы. Можно в любой момент посмотреть их исходный код, изменить любые параметры и немедленно увидеть результат на экране. Встроенная система помощи построена таким образом, что пользователь постепенно осваивает основы программирования и новые команды, легко и интуитивно разбирая более сотни учебных примеров.

DarkBASIC - проверенный быстрый путь к успеху.

  Допустим, вы уже достаточно опытный программист, т. е. половину своей сознательной жизни вы уже потратили на изучение С++ и теперь готовы предлагать свои услуги на рынке. Допустим, у вас уже есть супер-пупер движок, способный заткнуть за пояс, например, известных ребят из одного техасского городка. Великолепно! Значит, полпути уже пройдено. Однако вас теперь постоянно мучает один почти философский вопрос: куда уходит время? Почему игростроительство превратилось в долгострой? Конечно, создав библиотеки кода (Software Development Libraries), можно ускорить работу, но сколько времени еще будет потрачено на поиск ошибок и их исправление, на окончательную отладку игры, на восстановление компьютера после сбоя? Спросите себя: вам это надо? А, может, стоит обратить внимание на что-то другое? DarkBASIC специально создан под ваши задачи, его надежность проверена. Команда разработчиков ответственно подошла к делу, чтобы избавить вас от досадных сбоев и ненужной траты времени, чтобы вам оставалось только одно - написать замечательную во всех отношениях программу.

Что такое DarkBASIC и с чем его едят?

  На каком-то этапе развития, простой геймер обнаруживает, что игры не всегда его удовлетворяют. Появляются мысли, что "вот это бы я сделал не так", "да и уровень этот слишком простой" ну или похожие на эти. Его останавливает то, что люди, которые делают игры, это как божество: "куда мне до них!". После чего оставляют желания что-то сделать самому, в основе которого бязнь и незнание "как это делается?". DarkBASIC поможет геймеру своять свой уникальный мир и превратить его в игру! Это будет во-первых - легко! Во-вторых - интересно! А когда вы покажете СВОЮ игру друзьям - интересно будет смотреть на их втянутые от удивления лица. :-)
  Но данная рассылка не только для любителей поиграть. На DarkBASIC-е можно делать много удивительных вещей - мне, например, очень интересно симировать поведение атмосферы Земли, ну или землеподобной планеты. Кое-что я сделал и вы можете это "кое-что" свободно скачать с моего сайта.
  Как будет видно дальше, DarkBASIC ушел очень далеко от того BASIC-а, которому когда-то учили в школах, но и не опустился до примитивного "конструктора 3D-игр". Сохранив лучшие качества BASIC-а, а это простота написания программ и легкость в обучении, как логичное продолжение появился DarkBASIC (далее сокращенно DB). Язык отреагировал на изменившееся положение в компьютерном мире. Если раньше удовлетворялись двухмерными "плоскими" программами и играми, то с изобретением трехмерных ускорителей графики стали де-факто объемные игры в реалистичных мирах. DB отлично работает как с двухмерным "плоским" измерением, т.е. он полностью совместим с BASIC-ом, так и с трехмерными исскуственными мирами. Вот их то, объемные миры и игры в них, мы и будем создавать!

  Несколько технических деталей. Во первых, требования к вашему компьтеру такие: наличие 3D-ускорителя, практически любого, от 3Dfx Banshee до Geforce4, а также операционная система Windows (любая). Что может DB? Все! Он понимает практически все звуковые форматы до mp3 и видео (avi - например), а также графические файлы в форматах bmp, jpg и так далее, и файлы объемных объектов тоже понимает и от 3D Studio Max и DirectX-вые. Короче проблем с совместимостью и непониманием чего нить не возникает. :-) Так что,

  "Добро пожаловать в мир DarkBASIC, самого мощного и самого легкого языка семейства BASIC. Он не требует от вас навыков программирования, знания операционных систем, опыта работы с инструментами и утилитами. Главное, иметь воображение и желание сочинять собственные программы, все остальное, как говорится, приложится.
  DarkBASIC открывает широкий простор для творчества, позволяя написать все, что угодно -- от простой текстовой программы до быстрых полноэкранных 3D игр. С помощью всего одной команды вы удивительно легко сможете получить доступ к звуковым эффектам, музыке, анимации, тексту и графике, а также управлять периферийными устройствами, такими как джойстик с функцией обратной связи и шлем виртуальной реальности. Единственное, от чего зависит ваш успех на поприще создания коммерческих программ - это время и талант."
- из руководства пользователя.

Где приобрести DB и надо ли это делать?

  Кроме традиционного магазина, коробку с DB вы можете приобрести через Интернет, что называется, не поднимая "очка с дивана". Сейчас много кто занимается торговлей через Интернет, но я им не доверяю. ;-) Хотя нет, есть одно место в Интернете, где за более чем 2-х летнюю практику покупок, меня ни разу не обманули, что заказывал все присылали, и даже более того - присылали точно то, что я заказывал. :-) Я говорю про магазин "Болеро". Вот там то я и приобрел свою коробку с лицензионным DarkBASIC-ом. Если у вас демо-версия DB или вы являетесь "счастливым" ;) обладателем пиратской копии, или просто хотите приобрести DB - совету покупать именно лицензионную версию! Почему? Сейчас объясню. На это есть, как мне видиться, две причины. Если коротко, то назову их так: Поддержка и Комплектация.
  Поддержка. Часто ли вы видели, что-б наши локализаторы брались за подобные проекты, как продвижение на русскоговорящий рынок подобного пакета программ? Я не видел. Сейчас модно переводить игры, как результат производства, и торговать ими как семечками (на рынке их так много и так мало стоящих нашего внимания), чем продвигать средство производства самих этих игр. Да и конкурента DB среди подобных программ на русском языке просто нет. Стоимость DB за бугром составляет более 40$, у нас же не более чем 22$. DB стоит этих денег, вы же не отказываетесь его использовть - значит все же стоит. Фирма "Медиахаус" - это не Microsoft и больших прибылей на этом проекте она не сделает, поэтому, ребят НАДО поддержать в их начинании. Иначе ни патчей, добавляющих новые фичи, ни долгожданного DarkBASIC Pro на русском языке, мы так и не дождемся. Не всегда российская любовь к халяве стоит того.
Лицензионный DarkBASIC: 2CD в коробке с документацией и
кучей бесплатных фенечек. Купить сейчас!

  Коплектация лицензионного DB - это песня. В красивой коробке, на фото она выглядит не так привлекательно как в реальности, кроме регистрационной карточки вы получите ДВА компакт диска с DarkBASIC-ом и кучей-кучей программ к нему: например, альтернативный редактор на русском языке, которым я настоятельно рекомендю пользоваться, вместо стандартного; программы демонстрирующие возможности языка, исходные тексты игр и сами игры! Отдельное спасибо ребятам из "Медиахауса" за отлично переведенную и составленную книгу - руководство пользователя. Поверьте, очень многие вопросы поднимающиеся в форуме, легко решаются, если заглянуть в это руководство! Кроме справочного материала по всем командам языка, вы там найдете учебник, как сделать свою игру!
  Итак, если вы готовы приобрести лицензионный диск DarkBASIC, то

нажимайте сюда и вы окажитесь на страничке формирования заказа. Пишите свой адрес, выбирайте способ доставки и оплаты (рекомендую предоплату через банк - быстрее пришлют). Ждать не долго - я заказывал доставку по почте и получил коробку через две недели.
  Можно купить и через "Медиахаус". Правда я не пробовал. Но по стоимости, насколько я знаю - никакой разницы с "Болеро".




Искусственный интеллект в играх

  Эту небольшую статью я нашел когда-то в Интернете. К сожалению, ни автора, ни ссылки на сайт откуда это взял, у меня не сохранилось.

  Итак, искусственный интеллект. Пожалуй, это один из тех вопросов, о котором нельзя сказать немножко и кратко. Если все-таки попытаться рассказать о нем в двух-трех словах, то лучше просто промолчать. Потому что сказать, что это определенные правила, согласно которым компьютер самостоятельно может принимать те или иные решения - это значит ничего не сказать. Наверное, любой, кто хотя бы немного знаком с компьютером где-нибудь уже сталкивался с разными реализациями компьютерного разума. Причем в качестве примера достаточно взять любую игру, где Вам противостоит компьютер. Так что же это такое, искусственный интеллект? Прежде, чем ответить на этот вопрос, рассмотрим простенькие примеры.

  Как всегда, начнем двигаться от простого к сложному. Первая модель - это два объекта, роль которых в нашем случае будут играть точки. Первая из них управляется человеком, вторая компьютером. Одна из них убегает, другая догоняет. Причем поле действия ограниченно некоторой, наперед заданной областью. В нашем случае это будет прямоугольник. Банально, неправда ли? И алгоритм действий компьютера тоже лежит на поверхности. Кротчайшее расстояние между двух точек - прямая. Поэтому двигаемся по этой прямой в направлении второй точки. Ну а теперь самую малость усложним эту модель. Пусть некоторые области служат препятствиями на пути наших точек. Движение через них невозможно. Что меняется в этом случае? Рассмотрим ситуацию, когда на пути догоняющего, т.е. на прямой между двумя нашими точками, возникает какое-то препятствие. С какой стороны его лучше обойти? Ответ на этот вопрос в общем случае дать нельзя. Все зависит от конкретной ситуации. Вот, уже здесь у нас возникает ситуация, когда от компьютера требуется принять какое-то решение. Каким оно должно быть? Во-первых правильным. :) Но пока что критерия правильности у нас нет, попробуем сформулировать наши требования к принятому решению на простом и очень доступном языке. У нас цель - минимизировать расстояние между двумя точками. В такой постановке задача решается путем расчета двух огибающих траекторий, для последующего их сравнения. Далее идти по кратчайшему пути, а в случае, если они равны, то по любому, случайно выбранному. Да, в такой постановке ответ очевиден. Но здесь стОит проявить немного творчества. Вспомним, какие у нас были первоначальные требования. Одному объекту нужно догнать другой. Причем догнать означает сближаться с ним до тех пор, пока расстояние между ними не будет меньше наперед заданного числа. Итак, задача догнать. Теперь попытаемся немного отвлечься и посмотреть на все происходящее глазами игрока. Он, видя направление, выбранное компьютером, тоже, в свою очередь, попытается изменить направление движения. Не исключено, что после этого кратчайшим направлением обхода препятствия будет уже другое. Поэтому даже в этой безобидной ситуации наш первоначальный алгоритм не подходит. Поэтому попробуем сформулировать некоторые правила, которые нам помогут в дальнейшем при составлении программ. Для того чтобы с компьютером было интересно играть, потребуем выполнение первого, может быть не самого важного с точки зрения программиста, но необходимого, с точки зрения пользователя. Итак:

  1. Действия компьютера должны быть непредсказуемыми.

  Попробую пояснить, что это значит. В нашей первой модели без препятствий, алгоритм всегда сходился. Т.е. по истечению какого-то времени алгоритм успешно завершиться. Во втором случае этого уже нельзя сказать. Поэтому, почему бы не просчитать некоторые действия игрока наперед? В динамической игре это очень важно. Например, если объект движется какое-то время прямолинейно в заданном направлении, то велика вероятность того, что еще какой-то промежуток времени он будет двигаться в этом же направлении. Рассуждая также, получим, что если объект движется уже очень долго, что велика вероятность того, что в ближайшее время он сменит направление. Причем "очень долго" обычно не фиксированное время, зависящее от конкретной модели. Теперь попробуем получить информацию от модели. У нас есть препятствия, значит, при приближении к любому из них есть вероятность изменения движения. Причем чем расстояние до препятствия меньше, тем больше эта вероятность. Далее, смотрим на положение догоняющего. Убегающий, т.е. игрок, при смене своего направления движения будет руководствоваться еще и положение компьютера. И, с большей вероятностью, продолжит движение от компьютера, хотя и другой вариант полностью исключать нельзя. Поэтому при выборе траектории движения вокруг препятствия следует, также, руководствоваться направлением движения игрока. Таким образом, решения, принимаемые компьютером, должны быть непредсказуемыми для игрока. Теперь самое время еще немного усложнить модель. Сделаем препятствия разными. Одни будут снижать скорость объекта при взаимодействии с ним, другие увеличивать, третьи необходимо обходить. Например, если попытаться "оживить" нашу модель, можно провести аналогию с детворой, играющей в салки на коньках. Тогда первый тип препятствий будет снегом, а третий прорубем. Для второго типа в данном представлении аналогии нет. Кстати, в книжке "Си для профессионалов" был разобран пример игры салочки. Причем очень даже неплохо все объяснено.

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


Выпуск закончил 01 августа 2002 года в 13:55 мск


(C) 2002 Илья Середа
http://darkbasic.narod.ru - это и так понятно :-)
    http://virland.narod.ru - "Домашняя киностудия"
     http://sereda.narod.ru - "ВАЗ 1111 ОКА"

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное