2д-платформер с полной разрушаемостью мира, вплоть до отдельного пикселя. Разработка приостановлена.
19 10 459
24
alexprey, к сожалению, подумываю о снятии с конкурса - очень тяжелый месяц на работе выпал. Продолжать разработку буду, но сперва нужно на работе разгрести завал - спать то тоже когда-то надо.
24
Эльрат, завал на работе он такой - вечно возникает в самый неподходящий момент. По плану у меня уже должна была быть готова базовая генерация мира, нормальный чанк-менеджмент, выгрузка карты на диск, кисти для редактирования мира, один игровой персонаж и физика столкновений. Вот когда будет работать хотя бы это - будут и скриншоты.
37
prog, порадуй нас новыми ресурсами - только со скринами. Если будет норм выглядеть - добавим на главную.

29.05.2014

  • реализован прототип выгрузки фрагментов карты на диск
4 1 591
33
Ну и напоследок - зачем нужна приоритезированная выгрузка чанков? Ради возможности иметь работающие машины или еще что-то, требующее наличия загруженного чанка на большом расстоянии от игрока. Например, представь себе вагонетку, которая ездит по рельсам и перевозит грузы. Если выгружать все, что слишком далеко от игрока, то вагонетка уткнется в край и просто остановится до тех пор, пока не будут загружены чанки дальше, а если в наличии будет интеллектуальная система выгрузки чанков, то для вагонетки будут загружаться чанки по пути ее следования и если вагонеток по этому пути будет ездить много и часто, то система не будет пытаться выгрузить эти чанки без крайней необходимости.
Да, я вот в Майнкрафте как-то делал электрички — обнаружил, что там эта система работает плохо. На определённом расстоянии механизмы начинали рассинхронизироваться.
24
ZLOI_DED, не переживай, большая часть концепций и алгоритмов уже продуманы и часть даже расписана на бумаге. Просто все делается шаг за шагом и постепенно улучшается - вчера был прототип, едва справляющийся со своими функциями, а дальше его модули будут постепенно заменяться на нормальные.
Делать чанки больше нельзя по нескольким причинам, в первую очередь это связано с особенностями передачи данных на GPU, но не только. Вместо этого в один файл будет записываться много чанков - в начале таблица смещений, по которой можно найти нужный чанк, а дальше сами чанки. Для начала сойдет, а потом надо будет заменить на еще более интересную штуку, слегка похожую на виртуальную файловую систему.
А вот хранить список сохраненных чанков это уже немного лишнее - карта ведь бесконечная и список этот будет расширяться до бесконечности - есть смысл хранить только список загруженных чанков и флаг наличия в них изменений чтобы не выгружать на диск чанки, которые не изменились в сравнении с сохраненной версией.
Что касается создания радиуса вокруг игрока, в котором хранятся загруженные чанки это мало чем принципиально отличается от видимых камерой чанков, если только не заниматься загрузкой-выгрузкой в отдельном потоке - тогда действительно имеет смысл хранить буфер чанков вокруг области видимости чтобы не тормозить передвижение камеры на время загрузки новых чанков.
Ну и напоследок - зачем нужна приоритезированная выгрузка чанков? Ради возможности иметь работающие машины или еще что-то, требующее наличия загруженного чанка на большом расстоянии от игрока. Например, представь себе вагонетку, которая ездит по рельсам и перевозит грузы. Если выгружать все, что слишком далеко от игрока, то вагонетка уткнется в край и просто остановится до тех пор, пока не будут загружены чанки дальше, а если в наличии будет интеллектуальная система выгрузки чанков, то для вагонетки будут загружаться чанки по пути ее следования и если вагонеток по этому пути будет ездить много и часто, то система не будет пытаться выгрузить эти чанки без крайней необходимости. Аналогично для любых других действий, происходящих на границе загруженной области - принудительная выгрузка всего, что находится вне области приведет к загрузке-выгрузке активных чанков на границе каждый такт до тех пор, пока не закончится процесс, требующий загрузки дополнительных чанков или не выгрузятся все чанки, связанные с этим процессом (тогда процесс будет заморожен и возобновится после загрузки).
10
Ну ты блин даёшь... Столько заморачиваться над этим... ты же игру сделать не успеешь. Делай чанки больше, клади их в один файл через байтовую запись команд (т.е. вначале хедер, чтобы идентифицировать карту, потом - команда (1byte) и параметры). Не бери в голову все эти свои приоритеты - ни к чему хорошему это не приведёт. Вот храни в памяти список id или координат сохранённых чанков (чтобы каждый раз не загружать). Вот ты загрузил чанк в память, как только игрок из него вышел - проверяй его на наличие в этом списке и если его там нет - добавляй туда и на диск. Соответственно, те что за n-чанков - просто удаляй из памяти, а когда оно потребуется (а требоваться оно должно не при появлении в границе обзора, а за n-чанков до этого) - загружай с диска, но не удаляй. Вот и всё.
24
Надеюсь мне простят этот небольшой абуз, призванный противодействовать исчезновению ресурса из ленты в никуда после ухода с первой страницы.

24.05.2014

  • добавлена заготовка для будущих средств массового разрушения рельефа, посмотреть можно там.
  • обновлен шейдер поверхности: в альфаканал запекаются дополнительные данные для экранного фильтра.
  • небольшой прогресс по экранному фильтру и выгрузке фрагментов карты на диск.
1 729