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

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

Embed Size (px)

DESCRIPTION

Д

Citation preview

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

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

Android OS

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

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

Концепция

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

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

Архитектура

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

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

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

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

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

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

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

Eclipse Maven Java Android SDK

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

Игровой цикл

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);}

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

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

public interface GameContext {ResourceManager getResourceManager();

SoundManager getSoundManager(); UIEvent getNexEvent();}

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

Сцена

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

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

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

Графика

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

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

Физика

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

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

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

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

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

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

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

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

Инструменты

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

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

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

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

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

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

TODOs

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

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

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

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

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

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

www.youtube.com/watch?v=mghyKWwwWs0

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

Вопросы?