Показаны сообщения с ярлыком articles. Показать все сообщения
Показаны сообщения с ярлыком articles. Показать все сообщения

четверг, 28 августа 2008 г.

Обзор AI библиотек

Писать свой AI (Artificial intelligence) дело весьма увлекательное и интересное. Или, если сказать по русски, Искуственный Интелект для врагов игрока, которыми управляет компьютер. Однако, всётаки, стало любопытно чем можно поживится полезным и готовым. Не корысти ради, а любопытства для.

Библиотеки
  • OpenSteer - C++ библиотека для реализации автономного поведения персонажей в играх. В комплекте идет дополнение к библиотеке, OpenGL-приложение OpenSteerDemo, в котором продемонстрированно всё что умеет эта библиотека. Документация очень скудная, но исходники демки мне показались весьма увлекательными и познавательными. Имеется много разных вкусностей, таких как захват флага, следование пути и следование по карте с огибанием препятствий, следование за лидером, преследование. В демке даже есть пример реализации игры в футбол автономными персонажами. Авторы намекают что в последующих версиях может измениться API.
  • PathLib - Си библиотека. Поиск пути без излишеств, работает быстро. Засада в том что документация на чешском, но гугл умеет с него переводить и каменты в коде в большинстве своем на английском.
  • MicroPather - Си библиотека для поиска пути. Простой API, легко интегрируется. Не является библиотекой в том плане, что поставляется как исходник который нужно просто прилинковать к проекту.
  • Boost Graph Library - Я думаю что Boost не нуждается в представлениях. Много всякого нужного и не нужного можно в нем найти, но в комплекте имеются в том числе и алгоритмы поиска пути.
  • FANN (Fast Artificial Neural Network Library) - Си библиотека для моделирования нейронных сетей. Поддерживает несколько различных видов обучения. Имеется биндинг с более чем десятком языков программирования. Очень подробная документация.
  • OpenSkyNet - С++ библиотека. На офсайте написано что библиотека создана для мирового господства. Вроде как много в ней всего вкусного, но както руки не дошли посмотреть.

Ресурсы для дополнительного изучения

пятница, 18 июля 2008 г.

Популярно и позновательно о разработке AI в компьютерных играх

Недавно возник спортивный интерес к тому, как реализуется автономное поведение персонажей в компьютерных играх, так называемое "Autonomous Characters". Гуглил и много думал.
Катастрофически мало материала на эту тему на русском языке.
Статья на эту тему, опубликованная Андреем Плаховым в своем ЖЖ и написанная для КРИ, расставила, для меня, много галочек над "Й".
Разработка AI в стратегических компьютерных играх
Разработка AI в стратегических компьютерных играх II
Разработка AI в стратегических компьютерных играх III
за ссылки спасибо Алёне С++

также шедевральная статья на эту тему на английском: Steering Behaviors For Autonomous Characters

понедельник, 7 апреля 2008 г.

тюнинг инета в ubuntu

на некоторых adsl модемах (у меня D-Link 500T), настроенных как роутер возникает проблемма с dhcp при которой все доменные имена ресолвятся как 1.0.0.0.
поиск по форуму дает много топиков в которых людям заявившим эту проблемму рекомендуют сделать несколько действий:
1. в огнелисе на странице about:config изменить значение network.dns.disableIPv6 на false
2. в /etc/modprobe.d/aliases заменить

alias net-pf-10 ipv6


на

alias net-pf-10 ipv6 off
alias net-pf-10 off
alias ipv6 off

и в /etc/modprobe.d/blacklist добавить

blacklist ipv6

я так сделал но нормально с интернетом работает только огнелиса, проблемма с 1.0.0.0 остается в консоли
редактирование /etc/resolv.conf ни к чему не приводит т.к. его постоянно перезаписывает NetworkManager другими параметрами.
я проверил, что ситуацию можно исправить отредактировав файл /etc/dhcp3/dhclient.conf
добавив строку

prepend domain-name-servers xx.xx.xx.xx,yy.yy.yy.yy;

где xx.xx.xx.xx и yy.yy.yy.yy - адреса днс серверов провайдера
после перезагрузки они автоматически появятся в /etc/resolv.conf

воскресенье, 6 января 2008 г.

Хоткеи для eclipse

Сижу значит, тихо работаю, никого не трогаю, осваиваю Eclipse. Думаю про себя, что для полного счастья нужно разобраться какой хоткей переключает закладки с файлами в редакторе.
Сам не разобрался к сожалению. Уже пост на forum.ubuntu.ru написал с вопросом, но решил сперва погуглить.
Выяснилось что всё счастье заключено всего в одном хоткее Ctrl+Shift+L
Он выдает на экран маленькую подсказку с другими хоткеями, повторное нажатие Ctrl+Shift+L выдает диалог с настройкой этих самых хоткеев.

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

воскресенье, 25 ноября 2007 г.

Bakefile - ваш помощник в компиляции проекта

1.
Есть задача - компилировать проект в консоли Линукса, а потом с минимальными изменениями всё тоже самое скомпилировать в Visual Studio.
С исходными кодами на Си проблем не особо много, препроцессор штука мощная. А вот поддержание в адекватном состоянии make-файлов одновременно с *.vcproj это задача, рутинная, регулярно отнимающая много времени и не доставляющая удовольствия от процесса.
Решение нашлось достаточно быстро. Это Bakefile, кросс-платформенный генератор make -файлов для перекрестной компиляции.

2.
Наиболее простой способ создания make-файлов с использованием Bakefile заключается в использовании так называемых пресетов, которые позволяю описать стандартное поведение make-файлов буквально в двух словах.
Возьмем простой пример, программа, написанная на С и сохранена в файле hello.c
#include <stdio.h>
int main()
{
printf("Киса куку!\n");
return 0;
}
Чтобы нам это скомпилировать, напишем небольшой файл hello.bkl (строки пронумерованы для того, чтобы потом на них ссылаться)
1 <?xml version="1.0"?>
2 <makefile>
3 <include file="presets/simple.bkl"/>
4 <exe id="hello" template="simple">
5 <sources>hello.c</sources>
6 </exe>
7 </makefile>
Формат файла в стиле xml. В строке 3 подключаем пресет. В строке 4 говорим что нас интересует исполняемый файл. В строке 5 объясняем где взять исходник. Всё!
Просто, не правда ли?

3.
Создаем make-файлы.

$ bakefile -f msvc hello.bkl

Так мы получим makefile.vc для nmake

$ bakefile -f gnu hello.bkl

А так для GNU Make

$ bakefile -f msvs2005prj hello.bkl

Вот таким не хитрым способом получаем файл проекта для VS2005

Bakefile версии 0.2.2 позволяет создать make-файлы для 14-ти средств компиляции, используемых на различных платформах.
Bakefile активно развивается и используется во многих проектах.

Кто это использует: http://www.bakefile.org/wiki/BakefileUsers
Домашняя страница проекта: http://www.bakefile.org