[Burichan] [Futaba] [Photon]  -  [WT]  [Home] [Manage]

[Return]
Posting mode: Reply
Адрес
Тема   (reply to 14022)
Текст
Файл
Embed   Help
Пaроль  (для удаления постов и файлов)
  • Supported file types are: GIF, JPG, MP3, PNG
  • Maximum file size allowed is 4000 KB.
  • Images greater than 200x200 pixels will be thumbnailed.
  • Currently 1112 unique user posts. View catalog

Файл 127148309937.jpg - (481.53KB , 1024x678 , Picture224.jpg ) Thumbnail displayed, click image for full size.
14022 No. 14022
Поговорим о генераторе карт.

Самый большой мир 257 x 257 клеток. Каждый квадрат в этом мире 768 x 768 клеток. Т.е. 257 x 768= 197376 клеток. Если в мире будет 1 слой, то он будет занимать 197376 x 197376 х 1 клеток. В Dwarf Fortress же слоёв гораздо больше. Для простоты возьмём, что в Dwarf Fortress для игры используются реально 33 слоя, таким образом 197376 x 197376 x 33 самый большой мир в Dwarf fortress. Если для хранения одной ячейки брать 1 байт памями, то для хранения всего такого мира потребуется 1197 гигабайт. Вопрос - как же хранится и генерируется мир в Dwarf fortress, раз он занимает всего где-то 5 мб?

Правильность расчётов вроде бы подтверждается этой темой http://www.bay12games.com/forum/index.php?topic=13489.0
>> No. 14024
Насколько я понимаю, точное содержимое тайлов генерируется во время эмбарка. На карте мира же ты видишь общую картину - скажем, справа горы с золотом, слева - река с карпами.
Хотя, конечно, я могу ошибаться.
>> No. 14025
>>14024
Ну в режиме приключенца можно же в теории обойти весь мир? Не представляю даже как в таком случае сделана "подгенерация" участков карты с учётом топологии местности соседных участков.
>> No. 14026
Но ведь в режиме приключенца ты не копаешь, следовательно, вместо обычных 30-40 уровней тебе будут показаны 5-8(с учетом подземки). Хотя и это немало.
В любом случае, эта тема достойна обсуждения.
>> No. 14027
Я думаю суть в подгенерации.
Ибо сейвы расрастаются довольно сильно.
И если ты ембаркнешься на каждом участке он и будет весить в терабайт сейв.
>> No. 14029
>>14027
Хочу такой сейв.
>> No. 14030
>>14027
Ну и как же там подгенерировать новые участки, чтобы если их склеить вместе, то получить цельную картину? Например, река, протекающая через два участка. Или раскол пещеры, который начинается в одном месте продолжается в другой embark карте. Даже в теории не педставляю как это можно реализовать.
>> No. 14035
>>14030
это великая тайна.

например, при ембарке генерируется область заведомо больше максимального ембарка.Или что-то вроде этого.Но на самом деле все это выглядит очень сложно.Тоади чего-то недоговаривает.
>> No. 14040
А о сжатии данных школьники не слышали даже?
>> No. 14041
>>14035
Тебе не кажется что тоади масон?
>> No. 14043
>>14041
А у меня одного дварфы все время делают рисунки величавого храма на стенах?
>> No. 14047
>>14040
сожми 1 гб в 1 мб
>> No. 14048
>>14047
Сжать не проблема, вот разжать потом...
А вообще, все зависит от того, что сжимать. Гигабайт одинаковых символов можно простым RLE и в 4 байта сжать.
>> No. 14049
>>14048
Вся проблема в том, что у нас допущение - 1 байт на ячейку. Реально я думаю там используется гораздо больше. К тому же, чтобы применять алгоритмы генерации к такой карте, нужно держать её всю (или её часть) в памяти. А динамически сжимать\разжимать участки карты, да и применять к ним алгоритмы генерации со сложными задачами (типа провести реку через всю карту) по-моему было бы невозможно сложно. Сдаётся мне, что toady как-то хитрит там.
>> No. 14068
>>14049
Одинаковые камни иногда лежат целыми слоями, так что в таких ситуациях нет нужды описывать каждую ячейку. А вкрапления можно описать школьными методами вроде кода Хаффмана. Подземные слои можно вообще не подгружать, пока до их уровня не докопаешься. Имхо, примитивные алгоритмы сжатия, которые уже выше были упомянуты, должны работать.
>> No. 14075
>>14049
1 байта на ячейку предостаточно, их видов не так много.
>> No. 14086
>>14075
Можно даже меньше, т.е. если у нас слой из базальта, пишем об этом где-нибудь (1 байт) и базальт на слое обозначаем через 0 в один бит, а остальные камни начинаем с 1 в регистре
>> No. 14087
>Насколько я понимаю, точное содержимое тайлов генерируется во время эмбарка.
Кажется нет. Эмбаркнулся один раз, но забыл настроить взятый с собою груз. Покинул крепость, снова эмбаркнулся в той же точке - все было идентично в общем.
>> No. 14092
>>14087
Как можно эмбаркнуться в одной и той же точке? Только reclaim же
>> No. 14093
Кстати.Кто-нибудь практиковал реклайм?
>> No. 14094
>>14093
Да, правда, в заброшенную, а не просранную крепость. Вообще реклейм работает просто — вместо рабочих дварфов ты грузишь солдат и получаешь назад ту же территорию, все вещи и пр. Только прошлое население (если оно не умерло по каким-то причинам) превратится автоматом в трупики
>> No. 14095
>>14094
Так это же загрузка уже однажды сгенерированной области. Это не считается.
>> No. 14097
>>14092
Прибить процесс? Сохранения ведь не будет.
>> No. 14108
>>14092
Я один такой кто во время эмбарка снимок экрана делает, чтоб потом в адвенчур искать легче было? Алсо вполне годный способ эмбаркатся в одном и том же месте.
>> No. 14115
>>14108
Я на бумажку записываю название местности и визуально запоминаю.
Урист МакСтаровер
>> No. 14156
>>14115
Ох, точно...а я и забыл про эдвенчур мод!
ушел откапывать клоунов и делать адамантиновое СЕКИРУЭ


Delete post []
Пaроль