2D Level Design / редактирование / сохранение вопросов [закрыто]

12

Я думал о создании простой 2D игры Sidescroller, такой как SuperMario. Тогда я задумался о том, как сохранить, загрузить или создать уровни для игры. Первое, о чем я подумал, это нарисовать простой блочный png, который представляет уровень, создавая все части, где игрок может ходить особым цветом (возможно, сиреневым). Я импортировал бы уровень в блоках или плитках, чтобы я мог проверить на столкновение.

поэтому мои вопросы:
есть ли лучшие методы для этого?
Какие профессиональные методы для этого?
Должен ли я сделать это с Tiles и редактор карт на основе плиток? (по какой-то причине мне это не нравится, но я думаю, если бы это был лучший метод, я бы использовал его)
с уровнем на основе плиток, как бы вы реализовали уклоны, и как бы вы их проверяли на столкновения?

Simiil
источник

Ответы:

10

Для 2D MMO мы используем http://www.mapeditor.org/ . Мы используем несколько слоев для фона, оформления фона, объектов на одном уровне с игроками и объектов перед игроком. И дополнительный слой с одним красным квадратом для обозначения столкновений.

Я не уверен, подходит ли этот подход или программное обеспечение для бокового скроллера 2D, но, возможно, стоит взглянуть на него.

Хендрик Браммерманн
источник
+1. Это отличный инструмент. Это также с открытым исходным кодом, так что вы можете расширить его, если вам нужно.
Янис Кирстейнс
Это действительно хороший инструмент, я протестировал его, и у меня не было проблем с импортом в мою игру.
Симил
1
Хорошо, теперь я хочу знать, как создавать уровни, не основанные на тайлах, как миры в червях, но, думаю, когда-нибудь я задам этот вопрос в новом вопросе
Симиил
6

Обычный способ может быть, например, просто строка

0,0,0,0,0,0,1,1,1,0,0,0,2

где 0 будет блоком, по которому можно идти, 1 может быть шипами, а 2 - финишной чертой

вы просто прочитали бы это через текстовый файл (или жестко запрограммировали его в игре) и нарисовали относительный блок, связанный с числом, и имели бы логику коллизии для обработки, как бы она ни была настроена.

Очевидно, вы можете выбрать любой формат, который вы хотите, и, возможно, 0 означает рисовать 5 блоков, которые можно пройти.

Это только один из способов достижения этого.

http://www.smudgedcat.com/tut_tiledlevel.html эта ссылка является примером в c # с использованием инфраструктуры XNA. это даст вам приблизительную идею (она НЕ содержит уклонов, но аналогичная вещь может быть использована для определения этого типа случая)

С уважением Марк

markblue777
источник
Это в значительной степени именно так, как «Excite Bike» делал свои пользовательские карты на Nintendo. vc.nintendolife.com/games/nes/excitebike
Стивен Фурлани
5

альтернативный текст

Во многих играх используется приложение с открытым исходным кодом Mappy . Он имеет свой собственный формат, который поддерживает несколько слоев и другие функции. Возможно, вы хотите связать несколько типов данных с данной плиткой.


Я думаю, что подход в редакторе уровня игры очень распространен. Режим разработчика - это внутреннее описание того, как были разработаны уровни для очень популярной игры Braid. В игре есть режим разработки, где уровни могут быть построены / изменены. Сами уровни имеют слой столкновения, покрытый графическими плитками:

альтернативный текст


И я лично не рекомендую это, но демонстрационная программа 2D для Allegro использовала некоторый тип формата 3D моделирования и преобразовала его в пользовательский игровой формат. Преимущество заключалось в том, что он мог моделировать очень гладкие, непрерывные поверхности. (Это была двухмерная физическая игра на скейтборде.)

Для редактирования данных об уровне демонстрационной игры Allegro мы используем бесплатный инструмент с открытым исходным кодом Blender. Вы можете получить его здесь:

http://blender.org

Вот пошаговые инструкции, как это работает:

1) Поместите файл ademo_export.py в вашу папку скриптов Blender. Это скрипт экспорта, который преобразует из формата .blend в формат .txt, используемый в демонстрационной игре. Под unix путь будет:

~ / .Blender / скрипты / ademo_export.py

2) Загрузите файл блендера .blend. Под unix введите это из каталога с файлом level.blend:

блендер -w level.blend

(-W - использовать оконные режимы, которые я предпочитаю.)

3) Редактировать уровень. В меню под

Справка -> Скрипты Справка Браузер -> Экспорт -> Allegro Demo Game Level

Вы найдете несколько полезных советов.

4) Сохраните файл (используйте сжатие перед фиксацией). Экспортируйте его как .txt из меню экспорта, выбрав Allegro Demo Game Level.

5) Обновите level.dat с помощью level.txt, новый уровень должен появиться в игре.

Leftium
источник
2

«Профессиональные» методы, вероятно, потребуют очень подробного редактора карт, возможно, на C #, который даст им полный контроль над всем.

Есть два основных подхода; проще сделать, но не так эффективно.

  • Вы можете использовать редактор карт; или написать свой собственный или найти уже существующий, такой как mapeditor, который упоминал nhnb. Написание собственного было бы полезно для обучения, но не так много для готового продукта.
  • Вы можете просто ввести данные в текстовый файл. Это проще, но это не легко читать снова. Вы, вероятно, могли бы получить то же самое из редактора карты, но это было бы автоматизировано. Обратной стороной этого является то, что вы не можете добавлять какие-либо специальные эффекты, такие как определенные плитки (не типы плиток, например, плитки (13,45)), чтобы делать специальные вещи.
Коммунистическая утка
источник
2

У меня были похожие мысли (то есть вернуться к написанию игр хобби - работа и другие обязательства ...)

Я серьезно рассмотрел бы путь разработки «Редактора карт» как части игры / приложения.

Если ваша игра выйдет за пределы вашего собственного ПК, то контент для сообщества будет отличным подарком.

меш
источник