Тип: аркадно-логическая игра. Краткое описание - korshu.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Тип: аркадно-логическая игра. Краткое описание - страница №1/1


Тип: аркадно-логическая игра.
Краткое описание: на каждом уровне есть источник лазерного луча, приёмник, зеркала, "фишки", стены и другие объекты. Цель – поворачивая зеркала необходимо "поразить" лучом все фишки (пораженная фишка исчезает с поля), после этого исчезает объект препятствующий прохождению луча к приёмнику. Для завершения уровня необходимо направить луч в приёмник. Сложности: лазер имеет ограниченный заряд (по времени); установка может выйти из строя из-за перегрева (когда отраженный луч возвращается в источник) и другие.
Интерфейс: на основном экране изображена схема установки и параметры (заряд, температура). Можно включить дополнительный экран – "Микроскоп" – на этом экране будет отображаться (render) участок схемы методом трассировки лучей (ray-tracing).
Категория многопоточность: трассировка лучей – ресурсоёмкая задача, которая получает огромный выигрыш при использовании многоядерных систем. Для реализации многопоточной обработки используется библиотека Intel TBB.

Задействованы неделимые (atomic) операции для синхронизации данных основного цикла игры и главного потока визуализации.

Параллельные потоки занимаются визуализацией строк, память под строчки результатов выделена с выравниванием на строки кэша (cache aligned). Таким образом, выполнение потоков не сопровождается накладными расходами на поддержание когерентности кэша.

Для уменьшения времени "холостого хода" (когда нет новых задач, и некоторые потоки уже закончили работу) использована особенность "микроскопа". Микроскоп имеет круглое поле отображения. То есть строки имеют длину. Если раздавать задачи потокам в порядке уменьшения длины строки (и, в среднем, объёма вычислений), то разброс времени окончания вычислений заметно сокращается.

Для поиска объектов пересекающихся с лучом отображения использована особенность расположения объектов. Объекты располагаются в одномерном слое смежных кубов, что даёт хорошее разбиение пространства даже без построения дополнительных структур (kd-tree, …).

Библиотека Intel TBB скомпилирована и слинкована статично, чтобы избежать зависимостей выполняемого файла от других продуктов (MSVC redistributable).


Категория мобильность: для уменьшения энергопотребления устройства – "Микроскоп" будет отключаться отключении питания ноутбука от сети.

Изначально предполагалось использование Intel TDK, но анализ исходного кода показал, что требуемые функции не содержат специфических вставок кода и являются лишь обёрткой для Windows API.


Установка: игра не требует установки, можно запускать сразу после распаковки. Для работы не требуется наличия DirectX, OpenGL и других дополнительных библиотек.
Оптимизация: в основном меню игры, в схематическом отображении поля, в таблице рекордов, на экране "о лаборатории" используются различные графические эффекты (полупрозрачность, "частицы"). Процесс оптимизации показал, что чёткое указание компилятору к использованию "неотрицательных" (unsigned) типов и объединение однотипных операций в группы (когда в одной переменной хранятся более одного результата) позволяет добиться 20-кратного прироста производительности.
Процесс разработки:

Разработка была начата 9 июня, велась, в основном, по вечерам после работы. На разработку “микроскопа” ушло всего 5 вечеров. Как рабочие инструменты использованы Intel C++ Compiler, FAR Manager, MSVC, Paint.Net, Blender, Adobe Audition. Использованы звуковые материалы с сайта freesound.org и композиции группы Pink Floyd (что придаёт особый колорит).


О технологии:

Главным желанием в процессе разработки было продемонстрировать технологию ray-tracing (которая используется при создании мультфильмов и спецэффектов в кинофильмах), и проверить, готовы ли современные процессоры к широкому её внедрению. Оказалось, что для несложных сцен (как в данной игре), процессорной мощности современных компьютеров вполне достаточно. Основной плюс технологии – реалистичное освещение, блики и тени, корректное отображение прозрачных (линз) и зеркальных тел (обязательно нажмите F1 для переключения в режим отображения прозрачных объектов!).


Что дальше:

В плане развития игры:

– отображение недостающих объектов, имеющих в своём составе тор;

– сглаживание (anti-aliasing), для улучшения картинки на мощных системах;

– управление светом и опциями отображения.




Материалы для скачивания.
Последняя версия игры: ray-trace-010709.exe (1.6 Мб)
Видео демонстрация: ray-trace-demo (swf + html, 30 Мб)

В концовке видео продемонстрирована ситуация отключения сетевого питания ноутбука и обратное подключение.
Инструкция: manual.doc (135 Кб)
Изображения:

Схема: http://software.intel.com/file/20697

Взрыв установки: http://software.intel.com/file/20698

Схема и микроскоп: http://software.intel.com/file/20702



http://software.intel.com/file/20706

Микроскоп – блики и тени: http://software.intel.com/file/20699

Микроскоп – "фрактал" и его тень: http://software.intel.com/file/20700

Микроскоп – зеркальный сферы: http://software.intel.com/file/20701

Микроскоп – "портал": http://software.intel.com/file/20703

Микроскоп – зеркала и лазерный луч: http://software.intel.com/file/20704

Микроскоп – "поляризатор": http://software.intel.com/file/20705

Микроскоп – прозрачная сфера и лазерный луч: http://software.intel.com/file/20856

Микроскоп – прозрачная сфера и прозрачная сфера: http://software.intel.com/file/20857

Микроскоп – прозрачная сфера и "фрактал": http://software.intel.com/file/20858



Микроскоп – прозрачная сфера и зеркало: http://software.intel.com/file/20859

Микроскоп – прозрачная сфера издалека: http://software.intel.com/file/20860