Самый эффективный способ сделать карты в 2D? - PullRequest
1 голос
/ 09 мая 2011

Мне было интересно, какой самый эффективный способ сделать карту в 2D для Java-игры?

Я знаю, что это зависит от того, как игра будет видна и сделана, поэтому я включил информацию об этом.

Вид: сверху игрока

Тип игры: 2D Shooter

Игровая камера сфокусируется на игроке.

Я собираюсь создать своего собственного "создателя карты", но мне было интересно, должен ли он храниться в XML или что-то еще. Не совсем уверен, как это сделать. Есть ли хорошие книги по этому поводу? Я читал «Убийственные Java-игры», но это не очень хорошо освещало эту конкретную тему.

Теперь, чтобы показать вам, что я думал ...

Я думал, что лучшим способом будет .xml

Вот пример:

e = вход / выход

b = блок

. = открытое пространство

<?xml version="1.0" encoding="UTF-8"?>
<info>
    <name>Crack House</name>
    <date>9:49PM 5/8/2011</date>
    <level>Easy</level>
    <rows>10</rows>
    <colums>7</colums>
</info>
<map>
    <row1>bbbebbb</row1>
    <row2>b.....b</row2>
    <row3>b..bbbb</row3>
    <row4>b.bb..b</row4>
    <row5>b.....b</row5>
    <row6>b..b..b</row6>
    <row7>b..b..b</row7>
    <row8>b..bbbb</row8>
    <row9>b.....b</row9>
    <row10>bbbbbbb</row10>
</map>

Ответы [ 3 ]

1 голос
/ 09 мая 2011

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

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

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

1 голос
/ 09 мая 2011

Это зависит от того, какой тип эффективности наиболее важен для вас:

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

Это также зависит от ваших навыков разработчика и других характеристик проблемы, которые вы не изложили.

Но сутьв том, что ваша лучшая стратегия, вероятно, состоит в том, чтобы просто реализовать ее простым способом для начала и потом беспокоиться об эффективности ... если это окажется НАСТОЯЩЕЙ проблемой.


Один совет.Попробуйте спроектировать / структурировать свое программное обеспечение так, чтобы вы могли без особых усилий изменить способ хранения карт.

0 голосов
/ 21 мая 2011

Я использовал для 2D-стратегии простой текстовый файл. Файл выглядит так:

00000000000
00111111100
00111111100
00222222200
00111221100
00000000000

0 = заблокированная плитка
1 = травяная плитка
2 = дорожная плитка

Я думаю, что это действительно компактный метод. Моя реализация парсера работает очень быстро, и после анализа я получаю 2-мерный массив -> плитка [столбец] [строка]

...