- PVSM.RU - https://www.pvsm.ru -
Мы, команда программистов из украинской софтверной компании, хотим поделиться приобретенным опытом с уважаемыми читателями Хабра. Сейчас в режиме добровольного повышения квалификации ведем разработку игрушки для Windows 8 и в этой задаче все для нас ново: ОС, создание игровых приложений, физика и графика для игр. Чтобы наши поиски, познания и результаты были максимально полезными, мы решили опубликовать на всеобщее обозрение цикл статей-отчетов о процессе разработки. Мы искренне надеемся на диалог с читателями и на то, что описанная нами информация будет полезна и интересна.
Сегодня публикуем стартовую вводную статью о том, как нам пришла идея, какие цели мы ставим, и к чему идем.
Мы решили провести Coding Dojo и выбрали 3D игрушку, сначала это были 3D танки. Проведя 3-4 занятия нам явно стало не хватать организованности и каждый раз мы все сильнее увлекались отдельными задачами. В итоге пришли к самообучению: каждый сидел и писал сам себе.
Теперь стоит сказать отдельное спасибо руководству нашей компании, которое поддержало нашу идею о создании игрушки и дало отмашку на старт этого эксперимента.
Писать мы должны были под Windows 8, так как практическое освоение разработки под эту ОС было одним из условий нашего самообучения. После перебора идей для игры мы опросили многих своих коллег, перебрали варианты и вспомнили про… Колобка. И так, мы решили создать детскую игрушку с рабочим названием «Приключения Колобка».
Сюжет прост: путем нехитрых манипуляций с планшетным ПК нужно провести Колобка по сказочному лабиринту, где на пути его встанут разные преграды и препятствия.
Идея о публикации процесса разработки пришла к нам, к сожалению, не сразу, поэтому на данный момент мы уже выполнили некоторый перечень задач:
Архитектура приложения разделена на два уровня: абстрактный и уровень реализации. Разделение на уровни способствует повторному использованию кода, расширению и сопровождению. Уровень абстракции включает четыре базовые понятия: «Игра», «Физика», «Логика» и «Визуализация». На этом уровне описаны основные принципы взаимодействия этих компонентов:
Уровень реализации в нашем варианте создает конкретные компоненты игры, физику, логику и визуализацию. Здесь учитывается специфика нашей задачи: приложение под Windows Store и особенности игры.
Физика реализована с помощью Bullet Physics – движка для обработки физического взаимодействия игровых объектов. Физический движок, в принципе, можно написать и самостоятельно с нуля, используя существующие алгоритмы и решения, если необходимы какие-то уникальные физические условия, а так же достаточно времени и опыта. В нашей игре есть уникальные физические условия: мы симулируем модель мира, в которой вектор гравитации остается неизменным, а земля (ground) меняет свой наклон по отношению к вектору гравитации (параллельно мы обдумываем реализацию игрового мира с изменением вектора гравитации ). Есть такая реальная детская игра, в которой шарики нужно загнать в определенное место проходя лабиринт. Лабиринт наклоняют в разные стороны, шарик при этом катится и нужно попасть в нужные проходы. Но так как опыта написания такого рода приложений не было и времени тоже было немного, мы решили поискать готовые решения и применить их для данной задачи. После некоторого перебора немногочисленных вариантов мы остановились на переписанном под платформу XNA на C# популярном bullet-движке (http://code.google.com/p/bullet-xna/ [2]). Следует отметить, что движок переписан не полностью, часть функционала отсутствует, но и реализованного вполне достаточно. Нам пришлось удалить все привязки в коде к платформе XNA и убрать полностью отрисовку отладочной информации.
Выбор инструментов визуализации был сделан на основе проведенного обзора возможных вариантов для создания игры в управляемом коде:
Поэтому мы решили использовать чистый SharpDx без всяких движков в качестве управляемой обертки над DirectX и создали подобие своего собственного игрового движка.
И, собственно, будем знакомы
Автор: softindustry
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/windows/26427
Ссылки в тексте:
[1] мозги: http://www.braintools.ru
[2] http://code.google.com/p/bullet-xna/: http://code.google.com/p/bullet-xna/
[3] Источник: http://habrahabr.ru/post/167613/
Нажмите здесь для печати.