Crystallize ключевое звено нового формата - именованный блок фигурных скобок внутри которого находится пара ключ-значение.
Т.е. никаких больше длинных строк с неизвестным числом аргументов и кучей лишних скобок, как круглых, так и фигурных.
Чтобы было понятнее - теперь геометрия описана таким же образом, как и настройки энтити.
Добавлено 24-09-2023 в 18:40:
Конечно уровни из сталкера в такой формат сохранять не рекомендуется - он распухнет до пары гигабайт. Но это и не требуется - для хранения высокополигональной геометрии есть формат .csm
Добавлено 24-09-2023 в 18:44:
Так же хочу обратить ваше внимание - формат полностью отвязан от размера текстур. И есть возможность сохранять текстурные оси (то что приведено в примере), текстурные вектора, или даже старый способ с оффсетами и вращением - просто используя другие ключи.
Аналогично, вместо ключа "material" можно использовать ключ "texture" или даже "mipmap" для разных способов. Скорее всего в XashNT это не понадобится, но я делаю все эти форматы с дальним прицелом - на стандартизацию.
Добавлено 24-09-2023 в 18:45:
Следующая задача - ревизия интерфейсов виртуальных машин, чтобы потом можно было подключить к ним сетевой интерфейс, не ломая совместимость.
Т.е. интерфейсы которые сейчас в демке скоро станут неактуальными, но пока что это не имеет никакого значения.
Дядя Миша писал: Ты очень невнимательно читаешь. Свой редактор запланирован на будущий год, а пока можно и в Джеке помаппить.
А ну ок, значит просто, что-то не так понял
__________________
Kiss my ass if you don't like my Ford!
------------------------------------------ Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.
Дядя Миша писал: Crystallize ключевое звено нового формата - именованный блок фигурных скобок внутри которого находится пара ключ-значение.
я именно про три буквы эти
Цитата:
Дядя Миша писал: Аналогично, вместо ключа "material" можно использовать ключ "texture" или даже "mipmap" для разных способов. Скорее всего в XashNT это не понадобится, но я делаю все эти форматы с дальним прицелом - на стандартизацию.
Отсутствием мипмапов кстати можно делать переливы воды под солнцем на горизонте.
Та демка, что я выложил 11-го сентября была крайним билдом с возможностью подгружать не только виртуальные машины, но и игровые дллки (как в халфе). Самих дллок я, разумеется, не приложил, поэтому для вас разницы нет. Но в дальнейшем всё взаимодействие пользователя с движком будет только через мой собственный язык программирования Shot (ну или HeadShot), кому как больше нравится.
Про этот язык я уже писал, а кое-кто даже успел пощупать.
Вкратце для тех, кто пропустил - язык ОЧЕНЬ сильно напоминает С++, как визуально, так и по логике работы. Однако в нём устранён один из самых главных недостатков С++ - дебильная работа со строками, которая стабильно фрустирует каждое поколение начинающих программистов.
Так же присутствует мощная система отладки, брэк-поинтов и встроенный профайлер, который рисует визуальные графики нагрузки.
Из коробки поддерживается сериализация объектов, есть возможность создавать приватные объекты (в которые бакэнд совсем не сможет вмешаться, ни на чтение ни на запись).
Так же (ну пока только в теории), этот язык как бы включает в себя разнообразные достижения как низкоуровневых, так и высокоуровневых языков, позволяя портировать их исходники на Шот. В случае с С\С++ потребуются минимальные усилия, более творческий подход потребуется для таких языков, как Delphi, Java, C#, но в целом это тоже реально.
Добавлено сегодня в 13:27:
И ещё один момент: в отличие от того же QuakeC, язык не имеет какой-то явной привязки к игровому коду и без проблем может быть использован для любых задач. Так что в дальнейшем есть вероятность появления отдельной реализации самого языка, для тех, кому игры неинтересны.
Дядя Миша писал: Однако в нём устранён один из самых главных недостатков С++ - дебильная работа со строками, которая стабильно фрустирует каждое поколение начинающих программистов.
Вот за это большое спасибо. В c++ это реально напрягает. Порой что даже сам компилятор с ума сходит.
Цитата:
Дядя Миша писал: Так же присутствует мощная система отладки, брэк-поинтов и встроенный профайлер, который рисует визуальные графики нагрузки.
Супер! Шикардос! Хорошие инструменты отладки это залог успеха. Надеюсь так же будут иструменты отладки и для работы с объектами, вывод их списка, поиск, чтение параметров и т.д.
Цитата:
Дядя Миша писал: Из коробки поддерживается сериализация объектов, есть возможность создавать приватные объекты (в которые бакэнд совсем не сможет вмешаться, ни на чтение ни на запись).
Не совсем понял, а разве в c++ этого не было? Я просто не очень хорошо в крестах шарю.
Цитата:
Дядя Миша писал: Так же (ну пока только в теории), этот язык как бы включает в себя разнообразные достижения как низкоуровневых, так и высокоуровневых языков, позволяя портировать их исходники на Шот. В случае с С\С++ потребуются минимальные усилия, более творческий подход потребуется для таких языков, как Delphi, Java, C#, но в целом это тоже реально.
Главное чтобы работу с памятью упростить. В C++ уж оно слишком формализовано, далеко не всегда такое требуется при написании игровой логики. Кстати даю подсказку, для C++ вроде как есть библиотеки которые позволяют юзать на крестах некоторые фичи из C#. Название забыл, если найду, напишу. Да думаю ты и сам такие встречал. Тоже было бы полезно включить в базовый пакет, чтобы каждый раз не писать велосипеды, вроде тех же векторов, кватернионов, листов, карутинов и т.д..
__________________ Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.
FiEctro писал: Надеюсь так же будут иструменты отладки и для работы с объектами, вывод их списка, поиск, чтение параметров и т.д.
Да подключить недолго, просто я пока толком не знаю, что именно вам понадобится. Потом расскажете в процессе тестирования.
Цитата:
FiEctro писал: Не совсем понял, а разве в c++ этого не было?
Сериализации? Откуда же она возьмется изкаропки-то. Каждый сам извращается как может и мета-информацию ручками прописывает.
Это-то, собственно и бесит больше всего. Для Qt вон даже собственный компилятор изобрели, который мета-информацию сам генерирует.
А насчёт приватных объектов - не забывай что речь о виртуальной машине,а значит бакэнд может напрямую вмешиваться в состояние любого объекта и модифицировать его. Так вот у меня существует возможность создания приватных объектов. Причём приватность в данном случае - это не какой-то там флажок, они реально приватные.
Цитата:
FiEctro писал: далеко не всегда такое требуется при написании игровой логики.
Для игровой логики всё это и не потребуется. Но вообще полноценная работа с памятью присутствует.
Цитата:
FiEctro писал: Тоже было бы полезно включить в базовый пакет, чтобы каждый раз не писать велосипеды, вроде тех же векторов, кватернионов, листов, карутинов и т.д..
FiEctro писал: Главное чтобы работу с памятью упростить. В C++ уж оно слишком формализовано, далеко не всегда такое требуется при написании игровой логики.
Играясь с врадом я сначала только мечтал анализировать строки, но в итоге выловил в памяти имена статик пропов и отсортировал те которые мне были нужны и не нужны. А вот сейчас я занимаюсь тем что наверное можно назвать машиной конечных состояний, и это реально тяжко потому что приходится мыслить строго логически как компьютер. Но тут я с трудом представляю какую подсистему ДМ мог бы написать для помощи в таких случаях.