![]() |
Страницы (255): « Первая ... « 137 138 139 140 [141] 142 143 144 145 » ... Последняя » Показать все 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)
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Пришлось пока что остановить работу над редактором и заняться бакэндом.
А точнее - платформозависимым слоем абстракции. Поскольку движок изначально базировался на коде от Кармака, вы знаете, как там с этим обстоят дела - мультиплатформенность гарантируется только для самого движка, а вот утилиты и особенно редактор - ну как повезёт.
К тому же утилиты использовали собственную файловую систему, упрощённую. Пока я долгое время тешил себя надеждой, что можно будет обойтись сторонним редактором, это всё худо-бедно работало.
Но с учётом новой концепции, это будет единая среда, в которой каждый компонент может запускать другой. Движок из редактора, редактор из движка, утилиты. Неплохо бы предусмотреть гибкий механизм, который позволяет это сделать. Какие-то зачатки были еще в старом ксаше, там как вы помните, движок умел перезапускать сам себя, через хитрозакрученную систему каллбэков, но это не слишком надёжно.
Сейчас я выработал новый принцип для этого дела. Есть некая структурка, которая содержит в себе:
1. путь до загружаемой библиотеки
2. название инстанции (движок, редактор, дедикатед-сервер, компилятор)
3. строку командных параметров
Эта структурка заполняется внутри .exe файла. И передаётся внутрь дллки, которая будет вызвана. Дальше дллка может по собственному усмотрению записать туда новый путь к дллке, новую инстанцию и изменить командную строку. И при выходе из экспортной функции, соответственно, вернуть 0 - завершение работы. Или 1 - рестарт.
А сам вызов этой экспортной функции из дллки оформлен в цикле.
Точнее говоря, не просто функции, а загрузки библиотеки, вызова функции и выгрузки библиотеки. Т.е. мы можем подключать любые части движка по необходимости, минуя классический вызов экзешников с командной строкой, поскольку возникают сложности, с выводом в консоль, например при таком подходе. Там какие-то трубы надо городить.
Опять же смену игровой директории через этот механизм можно делать.
Вторая задача - абстракция платформозависимого кода, вынос его в отдельный класс, не только для движка, а для всей среды. Это будет нечто вроде SDL (для понимания), но для более широкого спектра задач и заточенное именно под XashNT.
Например в любом приложении будет доступна консоль с виндовым окошком, а не только системная.
Отдельно скажу по DLL Hell. В новом ксаше я принял за правило, что ни одно из приложений входящих в среду не может вызвать более одной дллки. Иначе получится натуральный DLL Hell. Т.е. всегда будет работать схема: exe->dll. А дллка будет содержать в себе абсолютно всё необходимое для работы. Конечно она может вызывать еще какие-то дллки, но только системные из папки windows. То есть в такой дллке будет целиком оформлена подсистема движка, но на уровне понятном пользователю. Библиотека - редактор, библиотека - движок, библиотека - компилятор уровней. То что, с точки зрения пользователя делает какое-то завершенное действие. А вот подход, когда у нас в этой библиотеке tier0, tier1, FileSystem, ParticleMan и прочее - такого не будет. Потому что неизбежно получится каша из разных версией с несовпадающими интерфейсами и работать ничего не будет.
Мое допущение заключается в том, что абсолютно у всех библиотек будет единая точка входа, с интерфейсом, описанным в начале этого поста.
И этот интерфейс никогда меняться не будет.
Из любопытного: теперь настройки для конкретного экзешника будут задаваться в командной строке, в которую экзешник будет автоматически добавлять параметры - вот в ту самую структурку. Таким образом пользователи смогут тоже вручную это контролировать в некоторых ситуациях. Довольно гибкий подход получится, я думаю.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
XaeroX
У тебя уже есть полностью рабочий двиг для него рабочий редактор, что еще для жизни надо?!
Дядя Миша
Если не секрет, то сколько часов в день ты тратишь на свой двиг и все необходимое для него?
__________________
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.
http://button.moddb.com/download/medium/125531.png
>> Отдельно скажу по DLL Hell. В новом ксаше я принял за правило, что ни одно из приложений входящих в среду не может вызвать более одной дллки.
Ну можно процесс иницилизации вынести в GameInfo.txt А сами дллки хранить в папках игры или мода, с подписью версии движка. Ну и создать папку base с базовыми библиотеками, на случай если в папке мода вообще ничего нет. В общем всё уже валва придумала за нас.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
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.
http://button.moddb.com/download/medium/125531.png
__________________
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'
Предидущий пост на эту тему: https://hlfx.ru/forum/showthread.ph...&pagenumber=116
Из того что тогда предстояло финализировать, отпишусь по готовности.
1. единый формат хранения геометрии успешно финализирован. Возможно я к нему так же приведу шрифты, для пущей консистентности. DONE
2. компилятор освещения успешно финализирован и радиосити прикручен. DONE
3. Код рендерера с момента того поста практически не менялся. UNDONE
4. Колоизация сделана. Симуляция твёрдых тел еще нет. Partially DONE
5. Момент продуман, сама виртуальная машина уже написана, но пользовательская часть еще не создана. Partially DONE
6. Код сети с момента того поста практически не менялся. UNDONE
7. Просмотровщик в планах, он поделит код вместе с редактором, так что по сути оба появтся одновременно. UNDONE
8. Как раз над редактором я сейчас и работаю. Но я только начал, по сути. UNDONE.
Интересно, как теперь подсчитать процент готовности движка?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
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.
http://button.moddb.com/download/medium/125531.png
__________________
Временная зона GMT. Текущее время 18:38. | Страницы (255): « Первая ... « 137 138 139 140 [141] 142 143 144 145 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024