трехмерные моторы TONY (PORCO@ARGENTINA.COM) Спецвыпуск: Хакер, номер #064, стр. 064-080-9 ? ВОЗМОЖНОСТЬ ДЕКОДИРОВАТЬ ЗАГРУЖЕННЫЕ РЕСУРСЫ В ФОРМАТЫ, ПОНИМАЕМЫЕ ГРАФИЧЕСКИМИ API, ВВВВВВВВВВВВВВВВВ, ЗВУКИ, ТЕКСТУРЫ И Т.Д. ИЗ ОДНОГО ФОРМАТА В ДРУГОЙ; ? ЗАГРУЗКА РЕСУРСОВ В ПАМЯТЬ ИЗ ФАЙЛОВОЙ СИСТЕМЫ, ИЗ АРХИВА И ИЗ СЕТИ; ? ПАРСИНГ И ИСПОЛНЕНИЕ СЦЕНАРНЫХ РЕСУРСОВ. В зависимости от используемых сценарных языков, реализуются различные механизмы передачи данных в движок и обратно. Кроме загрузки ресурсов, подсистема менеджмента должна контролировать правильность выгрузки ресурсов и освобождения памяти, иначе оперативная память будет исчерпана в рекордно короткие сроки. диагностика На этапе разработки и, как показывает реальная жизнь, на этапе эксплуатации часто требуется проанализировать ошибки программы. Для решения подобных задач в движке задаются стратегии обработки ошибок, анализа сбоев, ведутся протоколы работы (логи). В некоторых случаях покупатели (!) игр участвуют в поиске ошибок: служба поддержки просит их выслать «некоторые файлики» — протоколы ошибок и всевозможные дампы. Диагностика ошибок игры в целом и движка в частности заметно осложняется условиями работы, а именно тем, что код работает в реальном времени. Именно по этой причине в играх редко используется многопоточность — она содержит потенциальную угрозу безопасной работе. редактор Главными инструментами для любого разработчика игры являются всевозможные редакторы игрового контента. Для полноценного создания игры не хватает возможностей 3D Studio, Maya и т.д., в этих трехмерных редакторах создаются только модели и анимация к ним. Для создания игровых уровней, программирования игровой логики, программирования физических моделей, редактирования материалов, доведения до ума анимации, расстановки освещения и теней, создания систем частиц применяются редакторы, встроенные в движки. коротко о главном Если тебя вдруг посетила идея взяться за написание движка, подумай сто раз, а лучше двести. Конечно, если ты не ставишь перед собой задач завоевать мир, вполне реально создать движок, а затем и игру на нем. Если ты четко представляешь себе цель (например самообразование, создание движка, который умеет текстурировать модельку и освещать ее непременно одной лампочкой), то ты ее достигнешь. В любом случае сразу забудь бредни по поводу кросс-платформенности кода, независимости от графического API — это нереально. Не думай, что кто-то в индустрии захочет пользоваться твоим шедевром. Пиши шедевр для себя, для удовольствия, для level_up'а наконец. Используй по максимуму готовые решения, не изобретай велосипед, изучи STL, Boost. Если же хочется не возиться с движком, а просто создать свой трехмерный тетрис, используй готовые практически бесплатные решения: движки Orge, Irrlicht или Nebula, звуковую библиотеку OpenAL, простенькую ODE или Tokamak-физику. И тогда вероятность, что твой проект станет завершенным, намного повысится |