LINUX.ORG.RU
ФорумTalks

Размеры игрового мира


0

1

В процессе переписывания кода игрушки-платформера-почти-клона-terraria возник вопрос - «какого размера делать карту?»

Из чего исхожу -

  1. Карта должна быть достаточно большой, чтобы
    • Можно было разместить месторождения большинства природных ресурсов\пород.
    • Чтобы игроку хватало места для жизни (не было крика «мало»).
  2. Карта должна занимать не очень много места на диске.

В результате получились такие расчеты:

┌──────────────┬──────────────────────┬─────────────────────────┬───────────────────────────────┐
│ Размер файла │ Размер карты (метры) │ Пешком из конца в конец │ На макс. скорости транспорта* │
├──────────────┼──────────────────────┼─────────────────────────┼───────────────────────────────┤
│ 512 Мб       │ 20 480 х 3 240       │ 5 часов 40 минут        │ 21 минута                     │
│ 1 Гб         │ 29 000 х 4 620       │ 8 часов                 │ 30 минут                      │
└──────────────┴──────────────────────┴─────────────────────────┴───────────────────────────────┘
*В игре планируется транспорт

Что скажете? Хватит? Или думать над сокращением кол-ва информации на блок? В принципе могу попробовать увеличить размеры карты процентов на 50 в ущерб реалистичности.

Ответ на: комментарий от AlexCones

В крафте вроде ограничение на координаты, куда юзер пойти может.

А вообще, смотри в сторону сжатия и минимизации сохраняемой информации.

devl547 ★★★★★
()
Ответ на: комментарий от devl547

В крафте вроде ограничение на координаты, куда юзер пойти может.

У меня их не будет - я имитирую целую планету и подойдя к правому краю, очутитесь на левом.

А вообще, смотри в сторону сжатия и минимизации сохраняемой информации.

В смысле при сохранении на диск?

По сути я использую два поля Int по 4 байта на блок - это тип блока и номер текстуры (каждый тип блока может использовать несколько типов текстур - чтобы не было заметно повторов). В принципе я могу второй Int заменить на Byte - размер файла уменьшится на 40%. Так же скорее всего в игре не будет более 65 000 типов предметов, поэтому первый Int тоже можно заменить на 2 байта - итого уже не 8 байт на блок, а 3. Сейчас проведу новые расчеты.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

>номер текстуры (каждый тип блока может использовать несколько типов текстур - чтобы не было заметно повторов)

Зачем вариант текстуры хранить? Просто вычислять его как f(зерно_карты, x, y). Примерно так поля битв в героях3 выбираются.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

В принципе вариант. Спасибо, учту.

AlexCones ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.