PDA

Просмотр полной версии : Как обычно делают редактор уровней?


Division
04.12.2008, 23:25
Тема ни к AS2, ни к AS3 особо не относится, так что даже не знал куда запостить (: Представим себе игру платформер. Нужно как минимум порасставлять платформы, врагов и бонусы на каждый уровень, которых может быть много. Следовательно нужен редактор карт. Ну во всяком случае я привык писать редакторы для своих игр. Итак, как это обычно делается во флешь? Я вижу несколько вариантов.
Вариант1 - пишем редактор на флешь, уровни грузим в XML. Мне не особо нравится идея писать редактор на флешь (: Хотя могу заблуждаться.
Вариант2 - пишем редактор на любом универсальном ЯП(я бы на Delphi писал). Допустим, во время разработки карты, редактор сохраняет её в свой бинарный формат, а для флешки уже генерит XML.
Вариант3 - то же самое, что вариант2, но для флешки генерит не XML, а классы ActionScript, которые, допустим, в конструкторе инициализируют уровень и все нужные объекты. То есть каждый уровень - отдельный класс, сгенерированный редактором ( не забываем, что редактор сохраняет файлы в свой бинарный формат, так что чтоб изменить карту парсить сам класс не придётся (: )

Как вообще обычно это делается? Если я назвал нереальные варианты, прошу поправить.

zurkis
05.12.2008, 00:09
как по мне варианты 1 и 2 вполне подходят для редактора уровней + серверная часть

Division
05.12.2008, 00:34
UPD: Видать я не совсем правильно тебя понял, так что растолкуй подробней к чему там серверная часть (:

Волгоградец
05.12.2008, 10:46
Что ты имеешь ввиду под словом "редактор"? Визуальный редактор? Т.е. ты хочешь создавать вручную уровни и чтобы они сохранялись? Если да, то полистай книгу Джоуба Макара - там есть что-то похожее. А вообще проще в XML все хранить, имхо.

Division
05.12.2008, 11:17
Да, я имею в виду визуальный редактор.
Т.е. ты хочешь создавать вручную уровни и чтобы они сохранялись
Ну вообщем-то да. Ты спрашиваешь, потому что так обычно не делают? Насчёт XML - оно конечно проще на первый взгляд, но насколько мне известно, в AS3 есть ByteArray, то есть можно использовать бинарный формат карт. Ведь так? Размер уменьшится плюс избавляем редактор от дополнительного этапа генерации XML.
полистай книгу Джоуба Макара - там есть что-то похожее
Попробую глянуть. А вообще она о чём примерно?

Волгоградец
05.12.2008, 11:51
Ну она не особо информативная, и к тому же старая, но алгоритмы то они везде одинаковые. Там как раз есть пример про tile-based world с визуальным редактором уровней. Если честно, я ее купил давно, но не читал, поэтому точно не скажу. А xml можно генерировать заранее, и использовать в игре готовый, дабы убрать лишнюю нагрузку.

Division
05.12.2008, 12:02
Наверно перефразирую. Я имел опыт делания и редакторов, и tile-based world'ов. Но не во флешь. Хотелось бы узнать, применительно к флешь как это делают? Описанные мной способы не являются извращеньем? Кто-то делал бинарный формат карт в играх? Если я выкладываю игру на портале, я могу где-то рядом ложить файлы с картами? Ведь если нет, тогда придётся хардкодить уровни во флешку и третий вариант из первого поста на мой взгляд подойдёт(хотя XML данные с уровнями тоже никто не запрещает зашить во флешку). И вообще где-то можно глянуть на редактор карт к флешь игре? От профессионального геймдевелопера (: Просто что-то я не слышал разговоров о редакторах. Всё об играх, да об играх.

Волгоградец
05.12.2008, 12:15
Про бинарный формат ничего не скажу - не знаю что это. Но главная проблема, что флэш не умеет сохранять файлы - поэтому в любом случае нужно писать отдельный генератор карт для того, чтобы сгенерировать тот же xml и использовать в игре уже готовый. Вот пример от профессионала:
http://www.emanueleferonato.com/2008/10/08/basic-level-editor-for-a-tile-based-game/
Там у него хорошие примеры про tile-based.

Division
05.12.2008, 12:45
Бинарный - значит не текстовый. То есть пишем в файл сначала заголовок фиксированного размера - сколько чего будет, а потом и сами данные в определённом порядке. Читаем аналогично.
Я не говорю, что обязательно буду писать tile-based платформер, редактор может понадобиться для почти любого жанра. А тот пример редактора по твоей ссылке делается за 20 минут, ИМХО это довольно оторванный от реальности пример.

VovkaMorkovka1
05.12.2008, 13:12
По поводу редактора, я вот пишу на java с использованием Eclipse RCP платформы, фишка его в том, что он будет настраивающийся, т.е. можно будет настраивать под конкретную игру. Кстати, был - бы кому интересен такой редактор за небольшую денежку порядка 20 - ти баксоф, я по окончанию хочу его на плимус выложить.

Division
05.12.2008, 13:23
Как по мне, единственным более-менее универсальным редактором можно назвать 3D-Max(быть может Maya и Blender, но с ними не работал) (: Для флешь по-моему вообще тяжело написать универсальный редактор, так как скриптовую систему туда впихнуть нереально. Всё равно придётся под каждый конкретный случай переписывать. Да и формат карт универсальным быть не может. Или же превратится в гору лишнего хлама. ИМХО.
Кстати, VovkaMorkovka1, ты в каком формате карты собираешься хранить?

VovkaMorkovka1
05.12.2008, 14:38
Как по мне, единственным более-менее универсальным редактором можно назвать 3D-Max(быть может Maya и Blender, но с ними не работал) (: Для флешь по-моему вообще тяжело написать универсальный редактор, так как скриптовую систему туда впихнуть нереально. Всё равно придётся под каждый конкретный случай переписывать. Да и формат карт универсальным быть не может. Или же превратится в гору лишнего хлама. ИМХО.


Скриптовая система для редактора УРОВНЕЙ вполне реальна, вопрос нужна - ли она, на первых порах хватит просто XML - настроек.
Имеется ввиду, что основных типов карт не так уж много. Если задать способ представления каждой карты + возможность редактируя файл конфига добавлять неограниченное количество собственных обьектов, то получится весьма секси.


Кстати, VovkaMorkovka1, ты в каком формате карты собираешься хранить?

В ХМЛ естественно + для каждой игры создаем отдельную ХМЛ - ину в которой специфицируем типы данных. Можно конечно DTD создавать для опредления подтипов, так более православно, но и более сложно

Division
05.12.2008, 15:34
Скриптовая система для редактора УРОВНЕЙ вполне реальна, вопрос нужна - ли она
Для редактора не нужна) От неё мало(читай нету) толку, если скриптовую логику нельзя перенести в игру. Я это имел в виду.
Основных типов это каких? ИМХО никогда не угадаешь (: Если мне надо сплайны? Это будет предусмотрено?
Желаю удачи в разработке)

VovkaMorkovka1
05.12.2008, 21:27
Основных типов это каких? ИМХО никогда не угадаешь (:

Ну в основном флешовые игры плоские, иногда изометрия или 2.5D. Соответственно, карты делятся на сплошные и разделенные на клеточки.
Т.е. ты набросал/нарисовал объектов на карте, какое будет их текстовое представление и что у объектов будет внутри ты определяешь с помощью ХМЛ.

Если мне надо сплайны? Это будет предусмотрено?

Почему нет? Но не скоро, я думаю делать так: сделал игру - сделал редактор для неё. Начал - же с редактора потому, что собираюсь делать 2D аркаду с видом сбоку. Для нее нужно уровень нарисовать, рисовать удобнее редактором, чем ручками.

mixery
09.12.2008, 14:08
В конторе Electrotank делали так - редактор на флеше, генерирует XML в трейс =) Нужно тупо оттуда копировать и делать XMLку самостоятельно. Но это было очень давно, сейчас можно что-нибудь придумать для уменьшения геммороя.

в окне trace:
<level flagx="188.65" flagy="344" ><blocks></blocks><grounds><ground xstart="0" xend="4800" /></grounds><baddies></baddies><collectables></collectables></level>

LegendMAN
12.12.2008, 15:13
можно попробовать воспользоваться уже готовыми редакторами и найти более подходящий для своих нужд:
http://www.google.ru/search?hl=ru&q=tile%20map%20editor&lr=
наверное будет быстрее, чем писать с нуля.

Chas
12.12.2008, 15:59
а пофиг на чем делать. Это же для личного пользования. с каким языком больше дружишь - его и бери. Другое дело, что если сваять редактор на флеше, то можно его включить в игру, немного поднапрячься и сделать возможность создания новых уровней пользователями и сохранения их на сервере.

Division
12.12.2008, 16:15
mixery
Этим мне и не нравится вариант с флешем.
Chas
Ну я тоже склоняюсь к тому что пофик) Создание уровней пользователями сделать конечно можно, но что-то мне кажется, что этим пользоваться никто не будет. Хотя конечно от игры зависит.
Хотелось бы ещё узнать насчёт бинарного формата карт - так кто-то делал?
Ну и можно ли ложить карты рядом с игрой, при выкладывании игры на порталах? Или нужно уровни внутрь зашивать?

Chas
12.12.2008, 16:36
ты что. редактор карт - это бомба. вот например http://www.kongregate.com/games/Edmund/meat-boy-map-pack - набор дополнительных карт для meat-boy, почти все карты присланы посетителями.

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