HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Страницы (255): [1] 2 3 4 5 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



XashNT: блог разработчика

Разработка движка так или иначе носит характер ключевых звеньев, цепляющихся одно за другое. Одна из фундаментальнейших вещей это организация уровня. Всё остальное так или иначе строится вокруг нее. И от этого естественно вплотную зависит конечный результат. Посмотрим. У меня уже был неудачный опыт в 2015-м году, но ведь на тот момент я во всём этом разбирался гораздо хуже. Это вторая итерация, задача имеет следующий вид:
1. построить формат уровня, отвечающий современным требованиям. То есть как минимум он должен спокойно переваривать детализацию уровня Metro Exodus, ну или что-то в этом духе. Но при этом уметь компилировать и старые-добрые карты, типа ad_sepulcher. Вообщем необходимо достигнуть баланса между брашами и моделями, чтобы каждый для себя мог выбрать оптимальный способ построения левелов. Кому-то нравится делать уровни моделями? Пожалуйста, из брашей будут использоваться только триггеры и водичка. Ну и скайбокс конечно. Нравится кубать брашами - аналогично нет проблем. То есть вот такое на первый взгляд противоречивое требование. Это задел на потенциальное расширение аудитории движка в будущем.
2. Компиляция должна проходить быстро. Чтобы как минимум избежать справедливых упрёков в том, что иные движки вообще начисто её лишены. Сами понимаете если у нас будут уровни, где 5-6 миллионов полигонов в кадре, тут уже старые методы не конают. И уж конечно ни в коем случае не ждать пока лайтмаппер неделю освещает уровни как в Сталкере, я почему-то подозреваю, что в Метро от лайтмап отказались именно из-за калечной запекалки. Никому не охота ждать неделю, например. И кстати это одна из причин, по которой сталкера так долго делали. Ну не единственная конечно. Но компиляция здорово крадёт время у разработчиков.
Ну для начала я полагаю достаточно, поскольку это довольно сложные требования. Посмотрим что из этого получится, в этой теме я буду писать о проделанной работе, а вы будете говорить "автор молодец за нее".

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 180934

Старое сообщение 03-07-2019 11:44
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



Поскольку ожидается большая порция экспериментов связанных с изменением формата карт, моделей и прочего, я решил написать универсальный базовый класс-абстракцию, от которого будут наследоваться все типы моделей. В теории это позволит иметь зоопарк форматов, но у меня несколько иная цель. Кстати говоря этот же механизм может быть использован для бесшовной подгрузки новых уровней.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 180985

Старое сообщение 04-07-2019 13:30
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4571
Возраст: 35

Рейтинг



Цитата:
Дядя Миша писал:
я решил написать универсальный базовый класс-абстракцию, от которого будут наследоваться все типы моделей

Движок будет на Java, как Майнкрафт?

Сообщить модератору | | IP: Записан
Сообщение: 180987

Старое сообщение 04-07-2019 14:31
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34667
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Crystallize
Ты действительно этого хочешь?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 180989

Старое сообщение 04-07-2019 16:23
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13288
Возраст: 33

Рейтинг



Ну вот, а говорите я ваши движки обсираю. Сразу видно прогресс, а то так бы до пенсии на кубсп и сидели.

Цитата:
Дядя Миша писал:
2. Компиляция должна проходить быстро. Чтобы как минимум избежать справедливых упрёков в том, что иные движки вообще начисто её лишены.


Не лишены, и далеко не быстрая, но фишка в том что во время разработки можно загрузить голую модель без компиляции. Вообще в современных движках под компиляцией подразумевается уже финальная обработка локации когда всё готово, а не пересобирать карту каждый раз чтобы передвинуть какой нибудь патч трек.

Цитата:
Дядя Миша писал:
Кстати говоря этот же механизм может быть использован для бесшовной подгрузки новых уровней.


Могу немного подкинуть идей. В том же унити есть такая фигня как сцена, это просто описание где и какие игровые объекты находятся в 3д пространстве, и с каким настройками. Их можно загружать/выгружать как тебе удобно.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 04-07-2019 в 16:39

Сообщить модератору | | IP: Записан
Сообщение: 180990

Старое сообщение 04-07-2019 16:31
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
а не пересобирать карту каждый раз чтобы передвинуть какой нибудь патч трек.

но для этого и не надо пересобирать карту...

Цитата:
FiEctro писал:
это просто описание где и какие игровые объекты находятся в 3д пространстве, и с каким настройками

уровень можно делать незамкнутой моделькой, но тогда не будет виза. Это основная проблема. Я могу нагенерить лод-брашей, основываясь на контурах моделей (невидимых), и эти брашы решат две задачи - коллизию и виз.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 180993

Старое сообщение 04-07-2019 17:17
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34667
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
FiEctro писал:
Сразу видно прогресс, а то так бы до пенсии на кубсп и сидели

Ты сильно не переживай, в Волатиле такого "прогресса" не будет. Убивать Юнити и уеч придётся кому-то другому.
Цитата:
Дядя Миша писал:
но для этого и не надо пересобирать карту...

Только не рассказывай ему про -onlyents.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 180995

Старое сообщение 04-07-2019 18:21
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13288
Возраст: 33

Рейтинг



Цитата:
XaeroX писал:
Только не рассказывай ему про -onlyents.


Как бы это тоже компилятор делает

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 180998

Старое сообщение 05-07-2019 05:50
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4174

Рейтинг



Цитата:
Дядя Миша писал:
я решил написать универсальный базовый класс-абстракцию, от которого будут наследоваться все типы моделей. В теории это позволит иметь зоопарк форматов, но у меня несколько иная цель

Какая же?

Сообщить модератору | | IP: Записан
Сообщение: 181017

Старое сообщение 05-07-2019 21:28
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13288
Возраст: 33

Рейтинг



nemyax
Наши цели ясны, задачи определены, за работу, товарищи!

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 181018

Старое сообщение 06-07-2019 07:54
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



В какой-то мере вышеозвученная идея реализована в том же даркплейсе, но поскольку он на чистом Си, там конечно нет никаких виртуальных методов, там указатели на функции. Идея в том, чтобы не просто сделать такие загрузчики, а чтобы разместить в наследуемых классах абсолютно все методы взаимодействия с загруженными ресурсами, выведя за скобки лишь описания текстур и материалов. То есть вот у нас стандартные методы, LoadModel, DrawModel, CollideModel и через них осуществляется взаимодействие. А внутри может быть как BSP, там и студиомоделька. Што немаловажно, подобный подход, позволит, например иметь в качестве мира эту студиомодель. Или загружать одновременно следующий уровень, не выгружая преведущего, а в момент чейджлевела, просто поменять местами указатели. Ну и разумеется зоопарк форматов. Но повторюсь, зоопарк мне больше нужен для изолированного тестирования новых фичей, чтобы не вносить изменения в уже отлаженную ветку одного формата, а сделать рядом аналогичный и спокойно сравнивать регрессии. Есть у подхода и два минуса, точнее даже не совсем минусы, а потенциальные UB. Во первых как это подружить с кэшированной информацией для каждого эдикта, во вторых - отрисовка полупрозрачных объектов, которая как известно требует сортировки. Впрочем эти две проблемы остаются в любом случае, независимо от архитектуры.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 181764

Старое сообщение 20-07-2019 08:18
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 585

Рейтинг



На данный момент я так понимаю, XashNT еще только в стадии проектирования?

Отредактировано SNMetamorph 20-07-2019 в 09:37

Сообщить модератору | | IP: Записан
Сообщение: 181765

Старое сообщение 20-07-2019 09:35
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



На данный момент XashNT под угрозой срыва. Буквально час назад выяснилось, что на умирающем винте всё-таки повредились бэкапы и часть текущих исходников. Бэкапы повреждены с начала февраля, а в исходниках client.h и cl_frame.cpp. Не знаю удастся ли это восстановить. Все три резервные копии повреждены, архивы не восстанавливаются.

Добавлено 20-07-2019 в 12:43:

Но покрайней мере остальные части движка компилируются, только ядро не собирается.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 181766

Старое сообщение 20-07-2019 09:43
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4174

Рейтинг



Дядя Миша
Понятно, что поздняк и советы постороннего, но попробовал бы бакапиться на bitbucket-е. Там есть приватные репозитории забесплатно. Я пользуюсь, нравится.

Сообщить модератору | | IP: Записан
Сообщение: 181769

Старое сообщение 20-07-2019 11:42
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32682
Нанёс повреждений: 392 ед.

Рейтинг



проблема в том, что бэкапов минимум шесть источников и абсолютно повезде битые архивы. И как битые - наглухо. Они солидные и без информации для восстановления, когда-то очень давно, в 2007-м году, я поленился прописать этот ключик. Я пытаюсь спасти эти архивы с абсолютно любого диска и абсолютно везде они битые. Одному богу известно когда это вообще началось, ведь диск умирает достаточно давно. Но есть и хорошая новость - client.h и cl_frame.cpp всё таки удалось спасти в целости со старого диска с рабочего компьютера с отформатированного раздела. Таким образом я восстановил работоспособность актуальной копии исходников. А плохая новость заключается в том, что потеряны абсолютно все бэкапы новый ветки, начиная с февраля этого года.

Добавлено 20-07-2019 в 16:32:

Ура. Удалось спасти еще два бэкапа за 24-е и 25-е марта этого года. Если учесть, что апрель-май были отданы работе над параноей, то это почти-что средняя точка, для отладки пригодится. Ну хотя бы не пустое место.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 181771

Старое сообщение 20-07-2019 13:32
-
Тема закрыта Дядя Миша 04-08-2024 в 10:49
Временная зона GMT. Текущее время 00:36. Новая тема    Ответить
Страницы (255): [1] 2 3 4 5 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024