Первичную имплементацию вы все видели в Xash 0.56, полной совместимости там конечно нет, но довольно близко к оригиналу.
Собственно полную совместимость я делать и не хочу - как уже говорилось, хочется добавить новых bonecontroller ов в entvars_t,
кол-во блендингов увеличить, итд.
Так же планируется расширить структуру с движковыми функциями.
Пишите сюда, чего вамне хватает на клиенте и на сервере.
С большей долей вероятности оно уже есть в движке, просто не выведено в пользовательские дллки.
Добавлено 09-03-2009 в 14:16:
Да и еще такой момент - я хочу причесать клиент, на манер того, что вы видели в Xash 0.56. Насколько это для вас критично?
>> Да и еще такой момент - я хочу причесать клиент, на манер того, что вы видели в Xash 0.56. Насколько это для вас критично?
Непротив, даже наоборот .
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Во-первых: одинаковые названия движковых функций, ну чтобы были инлайновые функции типа MESSAGE_BEGIN() одинаковые и на сервере и на клиенте. И чтоб сами функции были одинаковые(сравним GET_GAME_DIR или как она называется на сервере и gEngfuncs.pfnGetGameDirectory на клиенте. Первая работает так:
C++ Source Code:
GET_GAME_DIR(gamedir);
А со второй надо сделать так:
C++ Source Code:
strcpy(gamedir, gEngfuncs.pfnGetGameDirectory());
Так вот хочется, чтобы таких различий не было, чтоб и на клиенте было так же как и на сервере).
Во-вторых: чтобы и на сервере и на клиенте были доступны одни и те же движковые функции, а то в хл есть только серверные и только клиентские. Например функция сравнения времени файлов(бсп файл карты и нод файл) есть только на сервере.
В-третьих: возможно ли, чтобы и на сервере и на клиенте были одни и те же структуры типа pEfxApi, pEventApi, pTriApi? Хотя, нет, на сервере они не к чему, лучше увеличить количество передаваемых параметров в event'ах.
В третьих:
Цитата:
как уже говорилось, хочется добавить новых bonecontroller ов в entvars_t,
кол-во блендингов увеличить, итд
И чтобы полигонов в субмодели можно было больше делать, чтоб не резать целую модельку на бодигруппы из-за того, что компилятор ругается. И чтобы размер текстуры в модели был больше.
В четвёртых: Больше насчёт функциональности дллок не знаю что сказать, но некоторые вещи из спирита/ксаша(мод) хотелось бы видеть. Parent System и некое подобие Locus System, только чтобы эти локусы были понятны простым смертным, а то я до недавнего времени вообще не имел о представления о том, как они работают =)
З.Ы. На мой взгляд совместимость вообще не нужна(в смысле запихнул в Ксаш халфовскую дллку, и она работает). Намного лучше сделать копию дллки оригинальной хл для ксаша, чтобы все брали её за основу(так сказать хл на новом движке =)) Естественно, эта дллка будет иметь упорядоченную структуру как дллки ксаша(мод), не будет такой путаницы с классами и энтитями как в хл.
Ku2zoff писал: чтобы и на сервере и на клиенте были доступны одни и те же движковые функции
Я думаю, ты сам понимаешь, почему это невозможно.
Ну со сравнением файлов да, возможно. А взять уже упомянутый MessageBegin?
Цитата:
Ku2zoff писал: возможно ли, чтобы и на сервере и на клиенте были одни и те же структуры типа pEfxApi, pEventApi, pTriApi
И что же будет делать на сервере pTriApi? Мне сложно даже представить
Не, сервер и клиент уравнивать нельзя. Люди должны понимать принципиальную разницу между ними. Даже TraceLine на сервере и клиенте разные, не говоря уже о более специфичных функциях.
Цитата:
Ku2zoff писал: чтобы эти локусы были понятны простым смертным
Почему-то мне, чтобы понять, как работают локусы, достаточно было посмотреть оригинальные карты-примеры. Но вообще - локусы от лукавого, не нужны они совершенно. Все подобные вещи можно закодить за две минуты.
Цитата:
Дядя Миша писал: можно вообще ничего не менять и поиметь те же глюки и ограничения обычной халфы. Тогда какой смысл в альтернативном движке?
Да такой же смысл, как в поддержке движком Дум3 вадов первого дума. То есть никакой Единственное оправдание - что юзеру не придется ничего заново компилить. Тогда я и говорю - нужно чтобы изменений был минимум.
одинаковые названия движковых функций. И чтоб сами функции были одинаковые
А не запутаетесь потом? это ж сколько туторов сразу потеряет актуальность.
Цитата:
чтобы и на сервере и на клиенте были доступны одни и те же движковые функции
Ну как ты понимаешь, появление на сервере функции V_CalcRefdef невозможно в принципе. Но обычные движковые функции я добавлю - проблем нет. Можешь посмотреть SDK для нового ксаша - это и есть вариант переработанного клиента и сервера.
Цитата:
И чтобы полигонов в субмодели можно было больше делать
Давно уже реализовано.
Цитата:
только чтобы эти локусы были понятны простым смертным
Веришь - нет, первое что я сделал в ксаше - выкинул нахрен эти локусы.
Локусы - это костыли, которые родились от недоделанного мовевитча.
И алиасы - тоже. Сравни лифт, построенный на ксаше (тот самый, который ездит между уровнями) и лифт из спирита 1.0 (тот самый, который ломается через 8-10 поездок). Насколько мой лифт устроен проще и понятнее.
Цитата:
Намного лучше сделать копию дллки оригинальной хл для ксаша, чтобы все брали её за основу
Кстати не хочешь заняться?
А мы тебя в кредитсы добавим.
Дядя Миша писал: Лукавый Ангел уже тысячу раз писал - в энтварсах у нас 4 бонеконтроллера и два блендинга.
Попробуй увеличить их кол-во, сохранив совместимость.
а
pev->iuser1
pev->iuser2
и прочая канитель на что?
__________________
- Это правда?
- Да.
- Такая злая?
- Это злая прадва.
- Соответственно есть и добрая?
- Вы задаёте много вопросов...