Sidebar

Xash3D Magenta [WIP]

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
А про то, что ты в ксаше больше всего заботишься о фпс, все и так в курсе.
По правде говоря, даже с мои даром убеждения я вряд ли кому-то смогу объяснить, как задрово у меня всё инкапсулировано и полиморфировано супротив железного довода "ТАРМАЗАА-АЗАЗА". Это как раз тот случай, когда любые аргументы бессильны. Или вот взять параною и нашего доктора. Он мне постоянно вменял в вину, что у него видитили баттлфилд работает, а параноя неработает. Что на это можно возразить? Да ничего. Хотя, многие товарищи, у которых параноя изначально неработала, потом обновили драва и она у них всё же пошла. А тут еще вот какое дело - драва кривые какие-то. Они или не ставились с первого раза или что-то ломали, яхз. Да чего за примером далеко ходить? Вот у меня на старой опере перестали работать ролики на ютубе.
Я иду на сайт адобы и качаю онлайн-обновление. Запускаю. Оно мне говорит "а у вас ус отклеился опера открыта - я не могу обновлять флэш". Но мякотка в том, что она еще и сама себя удаляет при первом же запуске. Т.е. приходится скачивать по новой. А после обновления ютуб так и не заработал, хотя опера перестала просить обновить флэш. Я эту задачу сам так и не смог решить, мне друг дал какие-то хитрые обновления флэша, скачанные невесть откуда и только тогда ютуб заработал. Не удивлюсь, если и с дравами на радион складывается аналогичная ситуация. Или вон взять поддержку старого физикса, которая так хитро отвалилась в новых дравах, что теперь зависает на инициализации PhysXLoader.dll. И приводит к зависанию, собственно ксаш-мода.
Я проверял - инициализация по канону сделана, строго как в примерах самого физикса. И эта конструкция успешно работала три года. А потом бац - приехали.
Причём вся эта вкаханалия началась сравнительно недавно.

[ADDED=Дядя Миша]1450733672[/ADDED]
Ты что доказать-то пытаешься?
Я не доказать. Я просто использую открывшуюся возможность для своих целей (см. выше).
 
Last edited:

XaeroX

Crystice Softworks
Sep 5, 2008
9,254
38
Причём вся эта вкаханалия началась сравнительно недавно.
Так всё же, кто виноват в этой вакханалии - рука Кремля или ООП? :)
Я не доказать. Я просто использую открывшуюся возможность для своих целей (см. выше).
По-моему, ты просто стесняешься признаться, что не разбираешься в ООП. Поэтому постоянно переходишь на личности и распространяешь ложные слухи под видом пропаганды. :) Со стороны, безусловно, выглядит забавно. До тех пор, пока не начнёшь вдумываться в смысл постов.
Я, разумеется, "пропаганду" вести не буду, потому что если я что-то про ксаш говорю - то всегда могу подтвердить свои слова, апеллируя к фактам и логике, а не эмоциям. И не собираюсь отходить от этого принципа.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
По-моему, ты просто стесняешься признаться, что не разбираешься в ООП
Вот принципы ООП я как раз хорошо унаследовал. А в С++ действительно стараюсь не углубляться. Не к добру это.
всегда могу подтвердить свои слова, апеллируя к фактам и логике, а не эмоциям
Я уже на фактах тебе показал, как ты "логически" связал два совершенно несвязанных события. Причём похоже так до сих пор этого и не понял.
 

XaeroX

Crystice Softworks
Sep 5, 2008
9,254
38
Я уже на фактах тебе показал, как ты "логически" связал два совершенно несвязанных события. Причём похоже так до сих пор этого и не понял.
"Все" давно поняли, что правильная логика - только у тебя и у Майкла Джексона. Выключай уже свою "раша-тудей", хватит нам пропаганды на сегодня. :)
Вот принципы ООП я как раз хорошо унаследовал.
Перечисли их, пожалуйста. С примерами реализации на Си. Или QC, который у тебя, как выяснилось, тоже объектно-ориентированный (видимо, в рамках той самой "правильной логики", о которой нам, простым смертным, знать не положено).
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Я щас разверну мысль, для наглядности. Каким образом моё утверждение о том, что "все, кому нравится динамический свет - промыли мозги" каким-то образом отменяет желание написать полностью динамический рендерер? Даже если оставить в стороне вопросы образования и самообучения, эти-то с промытыми мозгами - тоже часть аудитории, не?
 

XaeroX

Crystice Softworks
Sep 5, 2008
9,254
38
Даже если оставить в стороне вопросы образования и самообучения, эти-то с промытыми мозгами - тоже часть аудитории, не?
Оффтоп . А всё-таки, давай про унаследованные тобой принципы ООП.
 

GNU/Hurt

Maïté
Mar 5, 2014
1,094
23
0
>хитро отвалилась в новых дравах
бахаха! превратили венду в прыщебл-дикс.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Первое и главное правило ООП - не лепить его там, где оно по смыслу не нужно.
На просторах интернета мне довелось встречать людей, которые падали в обморк при слове "жопа"виде глобальной переменной. Т.е. для большинства объектно-ориентированное мышление почему-то выглядит непременно как попытка натянуть сову на глобус Украины любой ценой. Сама мысль о том, что не следует использовать объекты там, где их нет повергает их в тихий ужас. Ничем иным кроме как разжижением мозга подобное поведение обусловлено быть не может.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Ну и чтобы было нагляднее, поясню на пример с рендером второй паранои, где я там использовал объекты. Во первых класс матриц сделал. Точнее я его еще для ксашаиксти написал. По аналогии с векторами, ящитаю это весьма удобная штука.
Во вторых написал класс фруструма. Тоже в парадигму вполне укладывается.
И еще написал класс фреймбуффера. Ну главным образом для того, чтобы в деструкторе сбрасывать FBO на ноль :)
Всё остальное заворачивать посчитал излишним. Ну была еще теоретическая мысля завернуть мультпроходный рендерер в CViewPass какой-нибудь, но по здравом размышлении я отказался от этой пагубной, хотя и вполне соблазнительной идеи.

[ADDED=Дядя Миша]1450735966[/ADDED]
Кстати, из той же халфы прекрасный пример чего бывает когда бывшего сишника заставляют писать на крестах:
Code:
void CHud::Think( void )
{
	HUDLIST *pList = m_pHudList;

	while( pList )
	{
		if( pList->p->m_iFlags & HUD_ACTIVE )
			pList->p->Think();
		pList = pList->pNext;
	}
}
я каждый раз вздрагиваю когда это вижу.
 
Last edited:

XaeroX

Crystice Softworks
Sep 5, 2008
9,254
38
Ну и чтобы было нагляднее, поясню на пример с рендером второй паранои, где я там использовал объекты.
Осталось добавить - "и вот поэтому она у всех глючит, тормозит и рисует цветные пиксели вместо стен". И сюда проклятая рука Кремля ООП дотянулась! %)

[ADDED=XaeroX]1450736142[/ADDED]
я каждый раз вздрагиваю когда это вижу.
А что конкретно тебе не нравится в этом коде?
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
"и вот поэтому она у всех глючит, тормозит и рисует цветные пиксели вместо стен
Tovarisch! Obnovi metodichku! :drink:
Давно уже не глючит, не тормозит, а цветные пиксели вместо стен рисует лишь у тех... впрочем не будем показывать пальцем.
А что конкретно тебе не нравится в этом коде?
Зачем односвязный список насильно завернули в классы?
В худе нет базового объекта, который бы занимался рисованием. И не в последнюю очередь потому, что все элементы худа не содержат в себе повторяющихся конструкций, они зараза все слишком разные. Т.е. человеку, который бы попытался написать худ с соблюдением парадигмы пришлось бы заново изобретать некие базовые функции отрисовки, которые бы пересекались с явным множеством определенных элементов и от них уже наследовать.
Т.е. фактически - создать себе проблему на ровном месте, чтобы "всё было красиво".

[ADDED=Дядя Миша]1450736848[/ADDED]
Если для различения клиентских и серверных кваров ДМу нужно именно унаследовать их от базового квара, то это явно говорит о том, насколько "хорошо" он знает ООП
Иными словами ты точно так же хочешь завернуть динамический односвязный список в классы и потом всем говорить, смотрите это ООП у меня. Я правильно понимаю?
 
Last edited:

Raid

VIP
Jul 11, 2006
8,308
33
220
0
CSM-чат
А у меня такой вопрос: почему п2 так долго грузит меню? Ну ёмаё. Статичная картинка же. Ежели запускать карту с параметрами сразу - всё ок, как в обычном ксаше.

З.Ы. Рад, что двум титанам рестлинга больше не с кем, пардон, спариваться в технических деталях. Это даёт некую такую нейтральную, дипломатическую зону дискуссии.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
А у меня такой вопрос: почему п2 так долго грузит меню? Ну ёмаё. Статичная картинка же.
Ну вообще-то там заставочная карта. А к любой карте, понятное дело идёт прекэшинг оружия. А текстуры пушек в параное весят как вся первохалфа.
 

XaeroX

Crystice Softworks
Sep 5, 2008
9,254
38
Давно уже не глючит, не тормозит, а цветные пиксели вместо стен рисует лишь у тех...
Не только лишь у всех? :) Нуясно.
Зачем односвязный список насильно завернули в классы?
Тебе не нравится структура-враппер для контейнера списка? Или что?
это явно говорит о том, насколько "хорошо" он знает ООП
Я хочу отделить его эпатажные и провокационные высказывания (вероятно, с целью самопиара) от старых заблуждений и негативного опыта общения с людьми, извращавшими суть ООП. Если первое в нём уже не исправишь, то второе - вполне можно попробовать. Если, конечно, он снизойдёт до того, чтобы нас послушать. Мы ж, чай, не Боресковы. И даже воровать, как Васильева, не умеем.
 

Raid

VIP
Jul 11, 2006
8,308
33
220
0
CSM-чат
2 Дядя Миша:
Ну вообще-то я не заметил заставочной карты, есичестно. Ну да завтра (вернее - сегодня) посмотрим. Шейдертайм!
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Тебе не нравится структура-враппер для контейнера списка?
В идеале у нас каждый объект должен знать только родителя и детей. И общаться только с ними. Если где-то есть вот такой большой цикл - всё, это уже не ООП.
Это мы взяли сишный код и зачем-то обернули его в классы.

[ADDED=Дядя Миша]1450738228[/ADDED]
Был у нас Cvar_Get стал Cvar::Get. Ах да и сразу же возникла проблема на ровном месте - список сам себя перебирать будет, например для Cvar::FindVar или выделить какой-то над-класс под это дело? Могут ли равнозначные объекты иметь доступ к соседям? Или нам Cvar::FindVar объявить статиком, что по сути вообще костыль. Но по другому никак.

[ADDED=Дядя Миша]1450738409[/ADDED]
Заглянул в хл2 - просто песня: static CCvar s_Cvar;
И назвать модным словом "фабрика". Ну да, были функции беспонтовые, а теперь вона - фабрика! :drink:
 
Last edited:

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Ну если у нас CVar - это фабрика с массивом элементов внутри, то оно еще более или менее ложится в схему, хотя главный вопрос остается - зачем еденичный экземпляр делать классом? Ответа на этот вопрос не знает никто. Подозреваю, что даже Страуструп не знает. В doom3 сделано красивее за счёт умножения сущностей. Там есть собственно класс квара и класс квар-системы.
Инициализация понимаешь гадит в душу перфекциониста! Ну что это такое:
Code:
idCVarSystemLocal			localCVarSystem;
idCVarSystem *				cvarSystem = &localCVarSystem;
Нельзя глобальные объекты в С++. Не по феншую это :)
Надо обязательно через new где-нибудь создать.
 

Game Server

CSM TV

Page QR Code

QR Code

Donate Campaign

Total amount
$0.00
Goal
$25.00

Latest profile posts

TestUser wrote on TRUP@C's profile.
Master?
TestUser wrote on TRUP@C's profile.
Hello Father

Members online

No members online now.

Discord