Иструментарий для быстрой разработки игр с 2 d физикой

Preview:

DESCRIPTION

Д

Citation preview

Инструментарий для быстрой разработки мобильных 2D игр

Android OS

Виталий Цаплин

Концепция

Универсальный редактор Исполняющая машина + скрипт DLC?

Архитектура

Дерево сцены = Композиция изображений + (узлы + физические объекты) Игровой цикл: AbstractGame Игровой контекст: GameContext

Структура игры

Игровой проект (не зависит от платформы)

Обертка (зависит оп платформы)

Средства разработки

Eclipse Maven Java Android SDK

Игровой цикл

public interface AbstractGame { void onStartup(GameContext context,

int width, int height); void onCleanup(); void onThink(float delta); void onRender(Graphics gfx, float delta); void onResize(int width, int height);}

Игровой контекст

public interface GameContext {ResourceManager getResourceManager();

SoundManager getSoundManager(); UIEvent getNexEvent();}

Сцена

Отображение + анимированные декорации

Поддержание структурной целостности SceneReader -> SceneDefenition SceneBuilder -> Nodes Узлы: Body, Helper, Sprite, Joints

Графика

OpenGL ES 1.1 … void drawSprite(); void drawString(); void flush();

Физика

Box2D: Swig+JNI Сборочные скрипты для NDK, MinGW,

VisualStudio NMake Состояния vs. Обратные вызовы Разрушаемые объекты: setDamageMax(),

setDamageThreshold(), setDamageFactor(), setBreakable(), getDamage(), isBroken()

jBox2D – НЕ для мобильных

Структура инструментария

scene-editor sprite-compiler font-compiler game-commons game-engine-commons game-engine-box2d game-engine-tester game-engine-android

Инструменты

Редактор игровой сцены Утилита для создания анимированных

изображений Утилита для формирования шрифтов

Редактор игровой сцены

Изображения Физические тела Полигоны, прямоугольники, окружности Сочленения: Revolute, Prismatic, etc. Групповое редактирование свойств Ссылки на объекты Композитные сцены XML

TODOs

Доработка UI Оптимизация графики Перенос основной части кода в С++ Поддержка Python, LUA… Поддержка iOS (Marmalade?)

Скриншоты среды разработки

www.youtube.com/watch?v=13kJcIXcXKA

Игровой процесс

www.youtube.com/watch?v=mghyKWwwWs0

Вопросы?