![]() |
Страницы (255): « Первая ... « 164 165 166 167 [168] 169 170 171 172 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
О каком портировании идёт речь, не понял.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
На ведроид например, или макось.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
ну вообще-то наоборот, виртуальная машина везде будет работать без портирования. В этом и смысл.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Традиционно подведу итоги уходящего года.
Наверное это был самый неинформативный год в плане разработки Ксаша.
Ну что поделать? Мои планы не поменялись, я по прежнему считаю, что графический интерфейс следует размещать внутри виртуальной машины.
Разумеется это не я первый придумал, это давно практикуется с явой и шарпом. Вот только ни один из уже существующих скриптовых языков меня не устроил. Я бы мог пуститься в пространные рассуждения почему сложилась такая ситуация, но не стану. Вы всё равно ничего не поймете. Не потому что глупые, а потому что вам это абсолютно неинтересно. Но если всё же кому-то будет интересно, я распишу дополнительно ниже. Пока что отмечу тот факт, что собственный скриптовой язык открывает замечательные возможности. недоступные ни на Яве ни на Шарпе, поскольку в этих языках обязательно не будет того, что нужно, и придётся ждать, когда оно там появится, неизвестно в какой форме оно там появится и как после этого сломается совместимость. В качестве примера могу привести тот же Unity, где смена мажорного номера версии ознаменовала собой переход на новую версию Шарпа. То есть разработчики целиком и полностью зависят от сторонних библиотек, сужая и без того невеликое пространство решений.
Впрочем даже выбирая Lua или AngelScript вы всё равно оказываетесь в зависимости от авторов этих библиотек. Были, как вы знаете два движка с собственными скриптовыми языками - это Unigine и Godot. Первый пытался частично эмулировать функционал С++, но к сожалению использовал порочную модель Шарпа и Явы (всё - объект), что разумеется сказалось на его производительности. Поэтому большой объемный код на таких скриптах не напишешь. Впрочем в Unreal до третьей версии включительно сохранялась та же самая ситуация. Скрипты есть, а их производительность не годится для написания чего-то боле-мене серьезного. У Годота язык старался быть похожим на Питон, который использует ту же самую объектную модель со всеми вытекающими. И с той же низкой производительностью. Как итог все движки предлагают альтернативу - использование С++ библиотек, что полностью ломает первоначальную задумку и вносит элемент хаотичности.
В Ксаше я поступил иначе. Мой язык изначально планировался как скриптовой и с высокой нагрузочной способностью. Грубо говоря это песочница с синтаксисом и поведением С++, но при этом имеющая такие возможности, которые в самом С++ реализованы не будут никогда. А если и будут, то очень коряво и неудобно. Разумеется всё это успешно обходят - прописывая подобные вещи вручную. Но ведь смысл как раз в том и заключается, чтобы автоматизировать очевидное, получив при этом новые возможности. Практически весь 2022-й год я и бился над решением этой задачи. Пока ещё рано говорить с полной уверенностью, но мне определённо нравится то, что у меня получилось.
И теперь я наконец-то смогу вернуться к своей изначальной цели - написанию универсального редактора и универсального вьювера, интерфейсы которых будут реализованы на том самом скриптовом языке, а значит смогут быть отредактированы юзерами, если им вдруг захочется поменять расположение контролов или вообще создать новые окна.
Но, как вы понимаете, сам скриптовой язык предлагает куда более широкие возможности, нежели правка исходного кода таких меню. Теперь так же будет доступна возможность редактирования внешнего вида из текстовых файлов, причём изменения в исходном коде потребуются минимальные - т.к. сама виртуальная машина уже обеспечивает весь необходимый функционал. Да и сохранение абсолютно всех настроек как редактора, так и вьювера теперь стали весьма простым делом.
Язык создавался не только для меню. На этом же языке будет написан и игровой код движка. И здесь я вижу одну потенциальную возможность, которой лишены как Юнити, так и Унреал с КрайЭнджином.
В Юнити фактически нет игрового кода. Там есть сэмплы-примеры, написанные на скорую руку и крайне неоптимально. Предполагалось, что для реального проекта их перепишут правильно. Однако, как вы понимаете, те, кто пытался создавать свои проекты на Юнити поверили рекламным обещаниям, что там вообще не придётся писать код. В результате похабные примеры из сэмплов перекочевали в реальные игры и мы с удовольствием наблюдаем "фирменную" физику Юнити - да-да, тот самый мешок с гамном на пенсии. В Унреал и Крае строго обратная проблема - игровые библиотеки из коробки умеют практически всё, но разобраться в десятках мегабайт этих абстракций мало кому под силу. Без обучающих курсов тут делать просто нечего. Кажется я придумал весьма оптимальный способ решения этой проблемы.
Ну а в наступающем 2023-м я надеюсь у меня для вас будет куда больше различных новостей и планируется очередная бета-версия. Ориентировочно в мае-июне.
Ещё раз всех с наступающим!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Так товарищи, я наконец-то добрался до той части работы в процессе которой мне будет о чём с вами поговорить и надеюсь вам будет интересно.
А именно: портирование игрового кода на мой новый язык. Этот процесс обратный тому, что когда-то сделали Valve, когда перенесли свой игровой код с QuakeC на С++. И вот теперь настала пора сделать наоборот - перенести код с С++ на скритовую машину. Конечно её функционал превышает таковой не только у QuakeC, но и у самого С++ (уступая лишь по быстродействию), иначе бы вся эта затея попросту не имела смысла.
На первый взгляд это кажется несложной задачей, однако я напомню - 80% глюков GoldSource как раз и обусловлены этой спешной заменой виртуальной машины на библиотеку. Кармак, к слову, проделал тоже самое в Quake2, из-за чего добавление новых полей в объект для сохранения превратилось в жуткую боль, ну кто пробовал тот знает. Да и сам код объектов на чистом Си весьма неудобен и не располагает к пониманию. В Source из-за отсутствия в языке встроенных способов задания мета-информации код превратился в нагромождение каких-то адских таблиц и абстрактных классов, в которые без подготовки соваться страшно. Игровой код Unreal - ну там тоже вся мета руками прописана. Unity... На мой взгляд СиШарп для игровых объектов вообще не годится. Не для этого он создавался. Ну вообщем изучив основные проблемы и разработав собственный язык, я теперь готов вам предоставить своё виденье того как это должно выглядеть. Фронт работ следующий:
1. Новый механизм сейв-рестора. В отличие от халфовского классического, где надо было постоянно прописывать какие-то таблички, здесь от пользователя не требуется ничего. Максимум - пометить переменную-член класса, которую не надо сохранять.
2. Новый физический движок. С парент-системой, рагдоллами, катающимися бочками, машинками, полной предиктабельностью по сети и возможно с надувными коровами (???), впрочем насчёт последнего я не уверен. Но нечто вроде матрасов из хл2 будет. Так же будут возможны деформабли и разрушабли. Но это попожжы.
3. Новый дельта-калькулятор. Больше не будет никаких загадочных структур entity_state_t, clientdata_t и weapon_data_t, в которых вечно не хватает места, а изменить их нельзя. Новый сетевой движок будет строить индивидуальные дельта-таблицы автоматически для всех типов энтить, вот только ему не придётся прописывать жуткие таблицы-подсказки, как это сделано в сорсе.
4. Новая система предиктинга. В идеале - всех объектов, которые видны и осязаемы. Логика, понятное дело, на клиент передаваться не будет.
Впрочем в этом аспекте у меня еще нет чёткой картинки как тут всё будет устроено, детали будут уточняться по ходу разработки, т.к. надо будет провести ряд экспериментов.
5. Собственно портирование игровых энтить на новый скриптовой язык. На данный момент, как вы наверное уже догадались будет портирован весь набор энтить из ксаш-мода 0.82. Но вообще энтити могут быть из любой игры.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 11:48. | Страницы (255): « Первая ... « 164 165 166 167 [168] 169 170 171 172 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024