Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #64, МАРТ 2006 г.

трехмерные моторы

TONY (PORCO@ARGENTINA.COM)

Спецвыпуск: Хакер, номер #064, стр. 064-080-9


? ВОЗМОЖНОСТЬ ДЕКОДИРОВАТЬ ЗАГРУЖЕННЫЕ РЕСУРСЫ В ФОРМАТЫ, ПОНИМАЕМЫЕ ГРАФИЧЕСКИМИ API, ВВВВВВВВВВВВВВВВВ, ЗВУКИ, ТЕКСТУРЫ И Т.Д. ИЗ ОДНОГО ФОРМАТА В ДРУГОЙ;

? ЗАГРУЗКА РЕСУРСОВ В ПАМЯТЬ ИЗ ФАЙЛОВОЙ СИСТЕМЫ, ИЗ АРХИВА И ИЗ СЕТИ;

? ПАРСИНГ И ИСПОЛНЕНИЕ СЦЕНАРНЫХ РЕСУРСОВ.

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

диагностика

На этапе разработки и, как показывает реальная жизнь, на этапе эксплуатации часто требуется проанализировать ошибки программы. Для решения подобных задач в движке задаются стратегии обработки ошибок, анализа сбоев, ведутся протоколы работы (логи). В некоторых случаях покупатели (!) игр участвуют в поиске ошибок: служба поддержки просит их выслать «некоторые файлики» — протоколы ошибок и всевозможные дампы. Диагностика ошибок игры в целом и движка в частности заметно осложняется условиями работы, а именно тем, что код работает в реальном времени. Именно по этой причине в играх редко используется многопоточность — она содержит потенциальную угрозу безопасной работе.

редактор

Главными инструментами для любого разработчика игры являются всевозможные редакторы игрового контента. Для полноценного создания игры не хватает возможностей 3D Studio, Maya и т.д., в этих трехмерных редакторах создаются только модели и анимация к ним. Для создания игровых уровней, программирования игровой логики, программирования физических моделей, редактирования материалов, доведения до ума анимации, расстановки освещения и теней, создания систем частиц применяются редакторы, встроенные в движки.

коротко о главном

Если тебя вдруг посетила идея взяться за написание движка, подумай сто раз, а лучше двести. Конечно, если ты не ставишь перед собой задач завоевать мир, вполне реально создать движок, а затем и игру на нем. Если ты четко представляешь себе цель (например самообразование, создание движка, который умеет текстурировать модельку и освещать ее непременно одной лампочкой), то ты ее достигнешь. В любом случае сразу забудь бредни по поводу кросс-платформенности кода, независимости от графического API — это нереально. Не думай, что кто-то в индустрии захочет пользоваться твоим шедевром. Пиши шедевр для себя, для удовольствия, для level_up'а наконец. Используй по максимуму готовые решения, не изобретай велосипед, изучи STL, Boost. Если же хочется не возиться с движком, а просто создать свой трехмерный тетрис, используй готовые практически бесплатные решения: движки Orge, Irrlicht или Nebula, звуковую библиотеку OpenAL, простенькую ODE или Tokamak-физику. И тогда вероятность, что твой проект станет завершенным, намного повысится

Назад на стр. 064-080-8  Содержание  Вперед на стр. 064-080-10