2-рівневий дизайн / редагування / збереження питань [закрито]


12

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

тому мої запитання:
чи є кращі методи для цього?
які професійні методи для цього?
я повинен робити це за допомогою плитки та редактора карт на основі плиток? (чомусь мені цього не подобається, але я гадаю, якщо це найкращий метод, який я б застосував)
із рівнем на основі плитки, як би ви реалізували нахили та як би ви перевіряли їх на зіткнення?

Відповіді:


10

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

Я не впевнений, чи цей підхід чи програмне забезпечення працює для 2D бічного скролера, але, можливо, варто його переглянути.


+1. Це чудовий інструмент. Він також є відкритим кодом, тому ви можете розширити його, якщо цього вимагаєте.
Яніс Кірштейнс

це справді хороший інструмент, я перевірив його, і не було жодної проблеми з імпортом його в мою гру.
Симіїл

1
добре, тому зараз я хочу знати, як зробити рівні на основі плиток, як світи у черв'яків, але, мабуть, я запитаю це в новому питанні колись
Simiil

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. це дасть вам грубу ідею (вона НЕ містить укосів, але подібна річ може бути використана для визначення цього типу корпусу)

З повагою Марк


Це майже так, як "Excite Bike" зробив власні карти назад на Nintendo. vc.nintendolife.com/games/nes/excitebike
Стівен Фурлані

5

alt текст

У багатьох іграх використовується програма з відкритим кодом під назвою Mappy . У нього є власний формат, який підтримує кілька шарів та інші функції. Можливо, ви хочете пов’язати кілька типів даних із заданою плиткою.


Я думаю, що підхід редактора ігрових рівнів дуже поширений. Режим для розробників - це внутрішній виклад того, як були розроблені рівні для дуже популярної гри Braid. У грі є режим розвитку, в якому рівні можна будувати / змінювати. Самі рівні мають шар зіткнення, покритий графічною плиткою:

alt текст


Я особисто не рекомендую цього, але 2D-демонстраційна програма для Allegro використовувала певний тип формату 3D-моделювання та перетворювала його у користувальницький ігровий формат. Перевагою було те, що вона могла моделювати дуже гладкі суцільні поверхні. (Це була двовимірна скейт настільна гра на скейт.)

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

http://blender.org

Ось покрокові інструкції, як це працює:

1) Помістіть файл ademo_export.py у папку сценаріїв Blender. Це експортний скрипт, який перетворить формат .blend у формат .txt, використовуваний демо-гру. Під Unix шлях буде таким:

~ / .blender / script / ademo_export.py

2) Завантажте блендер файлу .blend. Під Unix введіть це з каталогу з файлом level.blend:

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

(-W - це використовувати віконні режими, які я віддаю перевагу.)

3) Відредагуйте рівень. У меню під

Довідка -> Довідник браузера до скриптів -> Експорт -> Ігровий рівень Allegro Demo

ви знайдете кілька корисних порад.

4) Збережіть файл (використовуйте стиснення перед вчиненням). Експортуйте його як .txt з меню експорту, вибравши Allegro Demo Game Level.

5) Оновіть level.dat за допомогою level.txt, у грі повинен з’явитися новий рівень.


2

"Професійні" методи, ймовірно, включатимуть дуже детальний редактор карт, ймовірно, на C #, що дасть їм повний контроль над усім.

Є два основні підходи; один простіше зробити, але не настільки ефективно.

  • Ви можете використовувати редактор карт; або написати свій власний, або знайти вже існуючий, наприклад, mapeditor, про який згадував nhnb. Написання власного було б добре для навчального досвіду, але не стільки для готового продукту.
  • Ви можете просто ввести дані в текстовий файл. Це простіше, але читати ще раз непросто. Можливо, ви могли б отримати те саме з редактора карт, але це було б автоматизовано. Мінусом цього є те, що ви не можете додавати будь-яких спеціальних ефектів, таких як певні плитки (наприклад, не типу плитки , а плитки (13,45)), щоб робити спеціальні речі.

2

У мене були подібні думки (тобто повернутися до написання ігор хобі - робота та інші зобов’язання ...)

Я б серйозно розглядав маршрут розробки "Редактора карт" як частини гри / програми.

Якщо ваша гра коли-небудь вийде за межі вашого власного ПК, то вміст спільноти буде дуже корисним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.