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#, но в целом это тоже реально.
Добавлено 26-09-2023 в 13:27:
И ещё один момент: в отличие от того же QuakeC, язык не имеет какой-то явной привязки к игровому коду и без проблем может быть использован для любых задач. Так что в дальнейшем есть вероятность появления отдельной реализации самого языка, для тех, кому игры неинтересны.
Дядя Миша писал: Однако в нём устранён один из самых главных недостатков С++ - дебильная работа со строками, которая стабильно фрустирует каждое поколение начинающих программистов.
Вот за это большое спасибо. В c++ это реально напрягает. Порой что даже сам компилятор с ума сходит.
Цитата:
Дядя Миша писал: Так же присутствует мощная система отладки, брэк-поинтов и встроенный профайлер, который рисует визуальные графики нагрузки.
Супер! Шикардос! Хорошие инструменты отладки это залог успеха. Надеюсь так же будут иструменты отладки и для работы с объектами, вывод их списка, поиск, чтение параметров и т.д.
Цитата:
Дядя Миша писал: Из коробки поддерживается сериализация объектов, есть возможность создавать приватные объекты (в которые бакэнд совсем не сможет вмешаться, ни на чтение ни на запись).
Не совсем понял, а разве в c++ этого не было? Я просто не очень хорошо в крестах шарю.
Цитата:
Дядя Миша писал: Так же (ну пока только в теории), этот язык как бы включает в себя разнообразные достижения как низкоуровневых, так и высокоуровневых языков, позволяя портировать их исходники на Шот. В случае с С\С++ потребуются минимальные усилия, более творческий подход потребуется для таких языков, как Delphi, Java, C#, но в целом это тоже реально.
Главное чтобы работу с памятью упростить. В C++ уж оно слишком формализовано, далеко не всегда такое требуется при написании игровой логики. Кстати даю подсказку, для C++ вроде как есть библиотеки которые позволяют юзать на крестах некоторые фичи из C#. Название забыл, если найду, напишу. Да думаю ты и сам такие встречал. Тоже было бы полезно включить в базовый пакет, чтобы каждый раз не писать велосипеды, вроде тех же векторов, кватернионов, листов, карутинов и т.д..
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Надеюсь так же будут иструменты отладки и для работы с объектами, вывод их списка, поиск, чтение параметров и т.д.
Да подключить недолго, просто я пока толком не знаю, что именно вам понадобится. Потом расскажете в процессе тестирования.
Цитата:
FiEctro писал: Не совсем понял, а разве в c++ этого не было?
Сериализации? Откуда же она возьмется изкаропки-то. Каждый сам извращается как может и мета-информацию ручками прописывает.
Это-то, собственно и бесит больше всего. Для Qt вон даже собственный компилятор изобрели, который мета-информацию сам генерирует.
А насчёт приватных объектов - не забывай что речь о виртуальной машине,а значит бакэнд может напрямую вмешиваться в состояние любого объекта и модифицировать его. Так вот у меня существует возможность создания приватных объектов. Причём приватность в данном случае - это не какой-то там флажок, они реально приватные.
Цитата:
FiEctro писал: далеко не всегда такое требуется при написании игровой логики.
Для игровой логики всё это и не потребуется. Но вообще полноценная работа с памятью присутствует.
Цитата:
FiEctro писал: Тоже было бы полезно включить в базовый пакет, чтобы каждый раз не писать велосипеды, вроде тех же векторов, кватернионов, листов, карутинов и т.д..
FiEctro писал: Главное чтобы работу с памятью упростить. В C++ уж оно слишком формализовано, далеко не всегда такое требуется при написании игровой логики.
Играясь с врадом я сначала только мечтал анализировать строки, но в итоге выловил в памяти имена статик пропов и отсортировал те которые мне были нужны и не нужны. А вот сейчас я занимаюсь тем что наверное можно назвать машиной конечных состояний, и это реально тяжко потому что приходится мыслить строго логически как компьютер. Но тут я с трудом представляю какую подсистему ДМ мог бы написать для помощи в таких случаях.
Дядя Миша писал: Та демка, что я выложил 11-го сентября была крайним билдом с возможностью подгружать не только виртуальные машины, но и игровые дллки (как в халфе). Самих дллок я, разумеется, не приложил, поэтому для вас разницы нет. Но в дальнейшем всё взаимодействие пользователя с движком будет только через мой собственный язык программирования Shot (ну или HeadShot), кому как больше нравится.
Дал другим программистам почитать, они говорят что ты изобретаешь заново C# (и в этом нет ничего плохого, даже наоборот). Может имеет смысл его использовать за основу, а не кресты ? Каково вообще твоё мнение о шарпах?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: они говорят что ты изобретаешь заново C#
Это потому что, они ещё не видели сам язык. Это НЕ ШАРП.
Я собственно и хотел уйти от этой порочной схемы, когда всё - объект.
Это очень сильно тормозит работу и по факту не даёт никаких преимуществ.
Моя идея заключалась в том, что С++ по своей природе очень сильно похож на скриптовой язык, особенно когда ты настроишь ему всякие операторы и методы доступа. Значит эту особенность просто надо развить и углубить, сохраняя главный принцип - вы не платите за то, чем не пользуетесь.
Что я, собственно, и сделал.
Проблема явы и шарпов в том, что там каждая переменная это по сути объект, к тому же в этих языках творится какая-то чертовщина со стеком, поэтому о приличной производительности говорить не приходится.
К тому же в природе не существует языка, с синтаксисом близким к С++, который бы позволил на себя полноценно портировать программы с Делфи.
И это тоже было частью задачи.
Занялся рефакторингом ядра движка. Эта задача ждала своего часа с сентября 2019-го года
Как вы наверное помните тогда уже во весь рост встал вопрос, что надо избавляться от дллок и переходить на скрипты. Но реализации скриптового языка на тот момент у меня не было. И я занялся другими, не менее важными задачами, такими как разработка собственного формата уровней, моделей, спрайтов, разработкой системы материалов, написание компиляторов под новые форматы. И вот теперь наконец-то возвращаюсь к исходной задаче. Когда у меня уже есть готовая демка игры, написанная полностью на скриптовом языке и оттестированая вами на предмет боле-мене правильной работы. Теперь это наконец-то стало возможным.
Как вы понимаете, ядро XashNT - это переделанный Xash3D. Всё остальное было написано с нуля, а вот ядро движка в лучших традициях Кармака,я взял от своей преведущей разработки. И соответственно там надо многое переделать. По факту от старого кода ничего не останется с течением времени. Может только какие-то внешние черты сохранятся и названия некоторых функций.
Дядя Миша писал: К тому же в природе не существует языка, с синтаксисом близким к С++, который бы позволил на себя полноценно портировать программы с Делфи.
Тебя спонсируют разработчики Космических рейнджеров?
Добавлено 27-09-2023 в 15:34:
Цитата:
FiEctro писал: Дал другим программистам почитать, они говорят что ты изобретаешь заново C# (и в этом нет ничего плохого, даже наоборот). Может имеет смысл его использовать за основу, а не кресты ? Каково вообще твоё мнение о шарпах?
А можешь скопипастить что там они писали?
Вообще сейчас народ над сишарпом скорее кекает.
Crystallize писал: А можешь скопипастить что там они писали?
Мы в дискорде обсуждали, в голосовом.
Цитата:
Crystallize писал: Вообще сейчас народ над сишарпом скорее кекает.
А че над ним кекать? По крайней мере в отличие от ЖаваСкрипта и Питона там с типизацией всё впорядке.
Цитата:
Дядя Миша писал: Мне хочется иметь возможность портировать интерфейс Кварка.
Это звучит как сценарий к новому фильму по мотивам Зелёного слоника
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!