воскресенье, 26 августа 2012 г.

Теория и практика создания игр (часть 3)

Продолжим рассмотрение этапов создания игры:

4. Разработка редактора уровней.
5. Рисование всех графических элементов.

4. Разработка редактора уровней.
В принципе этот этап можно и вообще пропустить, если ваша игра будет генерировать сама уровни или будет состоять всего из одной локации (например стрельба из лука, футбольный симулятор). Конечно можно использовать и обычный Блокнот, но написание уровней (+ их редактирование) займет много времени, особенно если уровней 50 или 100+. Также можно использовать растровый графический редактор (суть метода в том, что мы рисуем уровень, где каждый пиксель обозначает определенный объект или его отсутствие на уровне), но это уже другая история, так как работа с данными графического объекта подразумевает использование низкоуровневого языка программирования (или использование готовых кодов для определенного формата рисунка).
Дальше я приведу пример моего редактора уровней для Gravity Booster`a и самих уровней.
Вот так выглядит сам редактор уровней:
Справа сверху сама игровая область на которую мы и размещаем наши объекты. Все объекты (рисунки) загружаются с папки и размещаются в правом верхнем углу экрана. Внизу находятся разные параметры игры и объектов (от номера уровня до типа гравитации на нем). Все очень просто, но реализация такого редактора требует времени и терпения.

Дальше я приведу пример самого уровня ( как он выглядит в файле):



///// Начало

1:1:1
100
0
100:309:20.000000:22.000000:0.000000:0.400000:15:2:3:2
101:319:52.000000:6.000000:0.000000:0.500000:15:1:2:2
102:310:373.000000:255.000000:0.000000:0.900000:16:1:2:4
103:319:36.000000:111.000000:90.000000:0.400000:15:1:2:2
104:319:106.000000:34.000000:0.000000:0.500000:15:1:2:2
105:318:86.000000:125.000000:45.000000:0.400000:15:1:2:2
106:319:219.000000:202.000000:0.000000:0.400000:15:1:2:2
107:319:106.000000:242.000000:90.000000:0.500000:15:1:2:2
108:320:360.000000:247.000015:0.000000:0.400000:15:1:2:2
109:320:415.000000:144.000000:90.000000:0.600000:15:1:2:2
110:318:150.000000:153.000000:0.000000:0.500000:15:1:2:2
111:319:152.000000:3.000000:90.000000:0.400000:15:1:2:2
112:319:51.000000:199.000000:0.000000:0.500000:15:1:2:2
113:319:292.000000:75.000000:21.000000:0.500000:15:1:2:2
114:319:195.000000:52.000000:45.000000:0.600000:15:1:2:2
115:318:320.000000:52.000000:0.000000:1.000000:15:1:2:2
116:317:238.000000:7.000000:0.000000:0.500000:15:1:2:2
117:319:106.000000:160.000000:90.000000:0.400000:15:1:2:2
118:318:208.000000:279.000000:0.000000:0.600000:15:1:2:2
119:317:247.000000:162.000000:45.000000:0.500000:15:1:2:2
120:319:166.000000:194.000000:-90.000000:0.500000:15:1:2:2
121:320:320.000000:173.000000:39.000000:0.600000:15:1:2:2
122:301:0.000000:6.000000:0.000000:0.700000:14:1:3:1
123:301:70.000000:204.000000:0.000000:1.000000:14:1:3:1
124:301:391.000000:11.000000:0.000000:1.000000:14:1:3:1
125:301:396.000000:95.000000:0.000000:1.000000:14:1:3:1
126:301:222.000000:79.000000:0.000000:1.000000:14:1:3:1

//// Конец

Первые три строки описывают общие параметры уровня. Все остальные - объекты на уровне и их параметры (положение, поворот, масштабирование, контур, картинку и т.д).

А вот так выглядит тот же уровень, но уже в игре:


Представьте сколько времени уйдет на подгонку каждого уровня и каждого объекта на нем без редактора уровней!!! Конечно нужно потратить много времени на создание редактора, но оно того стоит  +  этот же редактор можно будет использовать в других играх (с небольшой модификацией).


5. Рисование всех графических элементов.
На этом этапе нужно будет много рисовать, а после еще и перерисовывать. Я всем рекомендую рисовать все объекты в векторном редакторе, а потом конвертировать (или экспортировать) в растр. Этот способ позволит вам быстро и без потери качества изображения изменять разрешение картинок. Желательно нарисовать все картинки, которые вы будете использовать в игре, так как у вас еще будет много работы по созданию самой игры ( я думаю, что переходить от программирования к рисованию и обратно (несколько раз) никому не хочется).

Результат своей работы нужно оформить в файл размером 256х256, 512х512 или 1024х1024. Размеры изображения должны быть степенью 2. Так как некоторые Андроид устройства не смогут прочитать (и загрузить в память) изображения произвольного размера (напр. 135х422) (но на практике, сначала я все-таки делал рисунки произвольных размеров и все работала на моем телефоне, но работоспособность на остальных устройствах не гарантировалась и мне от этой затеи пришлось отказаться). 
Потом это изображение уже в самой игре разрезается на части и мы получаем готовые элементы.


Комментариев нет:

Отправить комментарий