На конференции разработчиков игр (Game Developers Conference - GDC), компании Valve и Nvidia выступили с докладом, посвященным портированию игр под Linux. Презентация с данного мероприятия доступна (https://developer.nvidia.com/sites/default/files/akamai/game...) на сайте Nvidia.
Наиболее интересные моменты:
- В качестве мотивов почему следует портировать игры на Linux, упоминаются:
- Открытость операционной системы Linux и экосистемы.
- Довольно быстрый рост популярности Linux в качестве игровой платформы.
- Логичный промежуточный шаг при портировании игр на мобильные платформы, где также доминируют стандарты семейства OpenGL
- Производительность.
- Под Linux официально доступен Steam.
- GL предоставляет доступ к возможностям оборудования, оперируя при этом сугубо возможностями оборудования, а не версиями ОС или чем-либо еще. В частности, в Китае в данный момент все еще очень много пользователей с ОС семейства Windows XP, которые не могут пользоваться DX10/11. Тем не менее, при использовании OpenGL будут доступны полные возможности оборудования, в том числе и в данной версии ОС. Это позволит использовать возможности современного оборудования даже указанным пользователям.
- Публично доступные спецификации стандарта.
- Спецификации развиваются комитетом, в котором может принять участие любая заинтересованная сторона, для этого не требуется огромные суммы денег.
- GL проще расширять, любой вендор может предложить свои расширения.
- GL очень богат по своим возможностям.- Для управления окнами настоятельно рекомендуют использовать SDL, относительно небольшую и кроссплатформенную библиотеку на Си. SDL берет на себя все что касается работы с окнами, независимо от ОС, в том числе и на мобильных платформах. Valve пользуется данной библиотекой при портировании своих проектов, что доказывает пригодность библиотеки для достаточно требовательных применений. Кроме того, основной разработчик libsdl в настоящее время работает в Valve.
- Проблемы с которыми столкнулись в Valve:
- Файловые системы в unix-подобных ОС по умолчанию чувствительны к регистру имён файлов, тогда как в Windows файловые системы по умолчанию игнорируют регистр. Для игр это, как правило, не является проблемой так как игровые ресурсы обычно поставляются в платформо-нейтральных контейнерах. Тем не менее, в процессе разработки это может быть проблемой. Наиболее простым решением является перевести имена всех ресурсов в нижний регистр.- Ошибочные define'ы, например предполагающие, что на Linux может быть только выделенный игровой сервер и более ничего.
- Проблемы с локалью могут вызывать проблемы в функциях printf/scanf. Решение: установить локалью en_US.utf8, а локализацию предоставить самому приложению. Так как в некоторых случаях локаль en_US.utf8 в системе может отсутствовать, следует предусмотреть вывод предупреждения в данном случае.- Шрифты: рекомендуется использовать библиотеки freetype и fontconfig. Тем не менее, может потребоваться пересчет размера шрифтов.
- Использование RDTSC (прецизионный таймер, основанный на счетчике тактов современных CPU х86). Вместо него рекомендуется использовать вызов clock_gettime(CLOCK_MONOTONIC), не зависящий от архитектуры процессора.
- Использование raw mouse input, когда весь ввод мыши монопольно отправляется одной программе. Это очень хорошо работает для игр, однако некоторые оконные менеджеры при этом также перенаправляют и весь клавиатурный ввод. Это, в частности, может отключить работу alt-tab или аналогичных по смыслу горячих клавиш для переключения задач, что способно вызвать неудовольствие пользователей в некоторых ситуациях.
- Более шероховатая поддержка многомониторных конфигураций. Тем не менее, libsdl способна взять бОльшую часть проблем на себя.- Инструментарий:
- Steam Linux Runtime и SDK предоставляют разработчикам игр бинарно-совместимый ABI, не зависящий от дистрибутива.
- Компилирование и отладка:
- gcc - для компилирования.
- gdb - для отладки.
- cgdb - интерфейс на основе curses
- ldd - отслеживание зависимостей бинарного файла от библиотек (эквивалент dumpbin).
- nm - предоставляет информацию о символах, используемых программой.
- objdump - дизассемблер и инструмент для просмотра подробных деталей о бинарных файлах.
- readelf - инструмент для получения подробной информации об ELF файлах (основной формат исполняемых файлов в Linux).
- make - средство сборки проекта.
- Анализ производительности - CPU:
- perf - свободный профайлер под Linux, использующий performance counters (https://perf.wiki.kernel.org/index.php/Main_Page) современных процессоров
- vtune - инструмент от компании Intel, также существующий и в версии под Linux.
- Telemetry - многие коммерческие разработчики игр уже и так используют данный инструментарий.- Примерное соответствие OpenGL и DX:
- DX9 примерно соответствует возможностям GL2. Начиная с этой версии доступны шейдеры.
- SX10 примерно соответствует семейству GL3, появилось более актуальное API. Реализованы геометрические шейдеры.
- DX11 примерно соответствует GL4. Поддержка тесселяции и произвольных вычислений на шейдерах.
- Ключевые отличия DX от GL с точки зрения разработчика:
- В GL у потоков есть локальные данные, поэтому:
- У потока может быть только один текущий контекст.
- Контекст может являться текущим только для одного потока.
- Вызовы в GL из потока без текущего контекста согласно спецификации не должны иметь никакого эффекта.
- GL основан на си. Объекты передаются хэндлами.
- Многие функции вообще не требуют указания хэндла и оперируют на выбранном в данный момент объекте.
- Как правило хэндл имеет тип GLuint.
- GL поддерживает расширения.
- Несмотря на то что GL довольно многословен и на первый взгляд требует больше вызовов, он показывает впечатляющую эффективность и производительность.
- В OpenGL отсуствуют проблемы с потерей устройств.- Расширения OpenGL:
- Есть специфичные для поставщиков расширения с префиксами NV|AMD|APPLE. Тем не менее, ряд из них был реализован сразу несколькими поставщиками. Например, NV_bindless_texture.
- Расширения с префиксом EXT реализуются сразу многими поставщиками. Например, EXT_separate_shader_objects
- Расширения с префиксом ARB были рассмотрены и приняты комитетом развивающим стандарт. Например, ARB_multitexture.- Базовые расширения (Core extensions): базовые возможности из более поздних версий стандартов GL представляются как расширения относительно прошлой версии стандарта.
- Есть зависящие от специфики платформы расширения: WGL, GLX, AGL и EGL.
- Советы разработчикам:
- Поиск в интернете имеет смысл делать как с префиксом GL_ или gl у соответствующего вызова так и без него.
- Чтение спецификаций стандарта себя оправдывает многократно.
- Если вам не нравится текущее направление развития GL, присоединитесь к Khronos Group и постарайтесь оказать влияние на развитие стандарта. Лучше всего определять свое будущее самому.- Core vs Compatibility: Некоторые производители утверждают что использование core-профайлов будет быстрее чем compat-, однако по факту подтверждение данного тезиса обнаружить не удалось. Поэтому можно пользоваться тем, что проще и удобнее конкретному разработчику.
* Наиболее полезные расширения GL по мнению разработчиков:
EXT_direct_state_access, EXT_swap_interval (и EXT_swap_control_tear), ARB_debug_output, ARB_texture_storage и ARB_sampler_objects. Кроме того отмечаются NVX_gpu_memory_info и GL_ATI_meminfo позволяющие получить информацию о использовании памяти GPU.
- Самые проблематичные места в плане производительности:
- Вызов MakeCurrent очень дорогой. Следует избегать его вызова даже 1 раз на кадр.
- Современные драйвера как правило используют более 1 потока. Программа по факту взаимодействует с относительно тонкой прослойкой которая может распределять рабо...URL: http://www.phoronix.com/scan.php?page=news_item&px=MTM0MzU
Новость: http://www.opennet.me/opennews/art.shtml?num=36597
насчет Alt-TAB - это пять. Отсутствие переключения бесит невыносимо. И не надо мне рассказывать про запуск второго x-сервера. Спасибо
А под виндой не меньше бесит нажатие на Win и .. ага, вылет из DX окна. И вернуться в него вообще не факт что получится. В общем, у медали есть 2 стороны...
Очевидно, что это проблемы DX. Заставить DX снова показать окно - те ещё пляски, а вот в OpenGL такой проблемы изначально нет:
>В OpenGL отсуствуют проблемы с потерей устройств.Правда это не касается мобилок...
> Правда это не касается мобилок...Ну еще бы: там OpenGL повально :)
>> Правда это не касается мобилок...
> Ну еще бы: там OpenGL повально :)Там OpenGL ES.
> Там OpenGL ES.Практически те же яйца, вид в профиль.
>>> Ну еще бы: там OpenGL повально :)
>Там OpenGL ES.который отличается от старшего брата только кастрированными шейдерами.
в общем сабж, в частности:
>В OpenGL отсуствуют проблемы с потерей устройств.справедлив и для ES.
зыж
>который отличается от старшего брата только кастрированными шейдерами.ну не только, но остальное это мелочи.
в любом случае opengl es — это подмножество opengl.
в частности opengl 4.1 полностью совместим с API opengl es 2.0.
плюс то что сказал выше.
Далеко не всегда и не везде, если у разработчиков руки прямые, то alt-tab и win не сносят приложение.
это не (не_столько) от разрабов зависит, а от конфигурации вашего железа, винды и dx.зыж
>В OpenGL отсуствуют проблемы с потерей устройств.…
перевожу — а в dx эта проблема есть.ззыж
хотя, по с старой традиции, у мс всегда субподрядчики виноваты.
у них даже с продажами вин8 вендоры-железячники виновны по всем статьям.
> alt-tab и win не сносят приложение.Не знаю как там насчет пряморукости, но помню что это порядком бесило в виндовых гамезах.
> И не надо мне рассказывать про запуск второго x-сервера.Настрой утилиту actkbd, она захватывает комбинации клавиш даже тогда, когда клавиатуру захватило приложение. Лично я настроил Alt-Tab, Alt-F4 и Windows-M, мультимедийные клавиши не настраивал. http://steamcommunity.com/app/221410/discussions/0/846939071...
> After restarting computer the result of these actions will be lost, so before the game
> it should be repeated.Я конечно подозревал что зенитар овощ, но чтоб не допереть это внести в какой-нибудь стартовый скрипт и написать вместо этого такое - гмм, даже виндузятники умеют автозагрузкой пользоваться обычно.
Он никогда не перезагружает систему.
у него вполне может быть внешняя клавиатура, которую он включает/выключает (например, на ноуте на работе/дома).
логично как бы, чтобы демон вешался сам при плагНплэй.
так что вопрос закономерен в общем то.
>насчет Alt-TAB - это пять. Отсутствие переключения бесит невыносимо. И не надо мне рассказывать про запуск второго x-сервера. СпасибоНе знать работу своего ДЕ — вот это бесит.
Я к примеру пользуюсь xfce. Там Alt-F11 — выход из полноэкранного режима.
И Alt-tab у меня в играх используется, пока она активна. Чтобы была не активна достаточно выдти в меню игры (обычно esc).
Зыж
>GL предоставляет доступ к возможностям оборудования, оперируя при этом сугубо возможностями оборудования, а не версиями ОС или чем-либо еще.ыж
Когда с виды на линух перешли, позаботьтесь узнать его интерфейс хоть.
Вам вон итак какой бонус упал.
И не нужно покупать навязанную вам винду, т.к. игра требует новый дх100500, корорый только на вин666, которая только на уефи, который только на новом ноуте.
При этом сама ваша видео-карта вполне могла бы работать по требованиям игры.
А может, у него голые Иксы с Xterm'ом и Xclock'ом?
А в пути никто кормить и не обещал.Зыж
Хочешь что-то своё, уникальное? Разбирайся сам. Можешь спросить совета. Но спросить, а не требовать.Ззыж
Голые иксы, это как винда без эксплорера (не путать с ие).
Пусть без него попробует альт-табы понажимать.
> Хочешь что-то своё, уникальное? Разбирайся сам. Можешь спросить совета. Но спросить, а не требовать.Ваш объем апломба не соответствует квалификации, урежьте осетра. Советовать не работающий в упомянутой ситуации шорткат - изрядное ламерство, я бы сказал.
> А-у-у! Ламерюга! explorer.exe позиционируется производителем… как файловый менеджер.Это лишь одна из его функций, официально... ламерюга. То, что здесь сайт об открытых технологиях, не отменяет необходимости разбираться в вопросе.
А кто сказал, что я не разбираюсь,.. ламерюга?
Альт-таб будет без него работать или нет? Все его функции можешь перечислить?
И почему мс-овская dwm, которая таки wm это не обеспечивает?
У вас тут соц-соревнование "кто кого переламерит"? Woot! :)
> Альт-таб будет без него работать или нет? Все его функции можешь перечислить?да запросто. alt-tab — это автодополнение в midnight commander. таки работает, когда фокус ввода на окне терминала с mc. в чём проблемы?
В windows alt+tab работает и без него. Проверьте.
да?! :D
ну предоставь методику.
Никакой методики. Всё работает как обычно и с выгруженным explorer.exe (как минимум в xp)
вот-вот, как выгружал?
а то он, сцуко, в винде (как минимум в xp) не выгружается. :D
его можно заменить (хакерскими методами) на другой, можно подвесить, а выгрузить — низя-я-я.
в хп - контрал-альт-делит, и выгружается, и загружается, и снова выгружается, попробуй на чистенькой системе, а то видимо твой майлагентики и прочий шлак его роняют и срабатывает штатная перезагрузка его при падении, которая кстате в гуи отключается, короче не пори чушь.
> вот-вот, как выгружал?
> а то он, сцуко, в винде (как минимум в xp) не выгружается.
> :D
> его можно заменить (хакерскими методами) на другой, можно подвесить, а выгрузить —
> низя-я-я.Для Windows XP выгрузить explorer.exe:
Пуск->Выключение, Ctrl+Shift+Alt (держать), ->Отмена.Загрузить можно через Диспетчер задач, выполнив новую задачу explorer ;)
Из 3-х вменяемых — при этом играешь в игре?
:D
в диспетчере задач убиваешь и все.
> Я к примеру пользуюсь xfce. Там Alt-F11 — выход из полноэкранного режима.Запусти ну хоть тот же xonotic в фулскрине. А теперь расскажи там как дела с разрекламированным тобой alt-F11 :). Вот после этого ты поймешь что имеется в виду. Да, я лично проверил. Таки ты должен понять в чем прикол. Или я что-то сильно упустил...
>Запусти ну хоть тот же xonotic в фулскрине.не могу найти в стиме.
а то запустил бы.
>>Запусти ну хоть тот же xonotic в фулскрине.
> не могу найти в стиме.
> а то запустил бы.Скорее всего есть в репах. А зачем именно в стиме?
а затем, что новости читать нужно:
>Использование raw mouse input, когда весь ввод мыши монопольно отправляется одной программе. Это очень хорошо работает для игр, однако некоторые оконные менеджеры при этом также перенаправляют и весь клавиатурный ввод.…однако некоторые оконные менеджеры…
…некоторые оконные менеджеры…а xonotic перехватывает не только raw mouse input.
> а затем, что новости читать нужно:Новость - о портировании игр и граблях на данном пути. Стим тут так, весьма сбоку. Так что нефиг отмазываться.
> а xonotic перехватывает не только raw mouse input.
Он ведет себя как обычная типовая гамеса, не больше и не меньше. Потому что он - вполне себе такой нормальненький шутер, ага :)
>> а затем, что новости читать нужно:
>Новость - о портировании игр и граблях на данном пути. Стим тут так, весьма сбоку. Так что нефиг отмазываться.больной на голову?
речь в этой ветке исключительно про альт-таб при использовании raw mouse input в различных wm.то что кто-то умудряется (с дури, не иначе) ещё и клаву на себя переключить, не показатель.
иначе отмажься-ка за «разблокирование за смс» вначале. (есть такая игра в лохотрон в винде).зыж
>Он ведет себя как обычная типовая гамеса, не больше и не меньше.все 26 програм из стима переключаются по alt-f11 в xfce.
типовым тут является только ваша попытка троллинга.
> больной на голову?Вопрос только в том кто.
> речь в этой ветке исключительно про альт-таб при использовании raw mouse input в различных wm.
Речь в этой ветке - о том что в комплект к raw mouse input попутно чаще всего получается и перехват клавиатурного ввода. Даже если его явно и не просили. А вот DEшные шорткаты при этом предсказуемо отваливаются, ага.
> то что кто-то умудряется (с дури, не иначе) ещё и клаву на себя переключить, не показатель.
А ты походу тупее чем ожидалось. Грабли как раз в том что клава переключается в комплекте с мышом, даже если разработчик и не просил о такой услуге. Она "бонусом" приезжает, при том бонус - достаточно сомнительный. Запусти какую-нибудь иную SDLную полноэкранную гамезу и вкуси. Ну вон BfW например. Такая же фигня с шорткатами. И так - практически в каждой первой фулскрин гамезе.
> иначе отмажься-ка за «разблокирование за смс» вначале. (есть такая игра в лохотрон в винде).
Шиза косила наши ряды...
> все 26 програм из стима переключаются по alt-f11 в xfce.
А ты что, думаешь что разработчики в стиме - такие же stubborn bastard как и ты, которые упираются рогом и стоят до последнего? Они то судя по опубликованному документу умеют выводы делать. В отличие от тебя, упертого барана.
>Вопрос только в том кто.
>> речь в этой ветке исключительно про альт-таб при использовании raw mouse input в различных wm.
>Речь в этой ветке - о том что в комплект к raw mouse input попутно чаще всего получается и перехват клавиатурного ввода.врать изволите.
ибо 26 стимовских игр перехватывают только мышку и в новости:
>однако некоторые оконные менеджеры при этом также перенаправляют и весь клавиатурный ввод.не стыдно?
(вопрос риторический. видно что не стыдно. врёте в_наглую)
> ибо 26 стимовских игр перехватывают только мышку и в новости:А что, до вас действительно так туго доходит что если уж грабли задокументированы - было бы на редкость тупо на них при этом встать? А вот другие игроделы зато на них встают в полный рост. По поводу чего и написана сабжевая дока...
> (вопрос риторический. видно что не стыдно. врёте в_наглую)
Скорее, искренне удивляюсь уровню stubborness конкретного индивида.
>что если уж грабли задокументированы - было бы на редкость тупо на них при этом встать?Т.е. "разблокировать за смс" — это штатная работа винды?
Зыж
Да аы больны. И серьёзно.
> Т.е. "разблокировать за смс" — это штатная работа винды?Т.е. есть разные уровни работы обработки клавиатуры. "Гарантированно" не перехватываются только die-hard шорткаты, реализованные особым образом в ядре и обрабатываемые самим ядром. По поводу чего апликухи в принципе без шансов ему помешать. Перехватить alt-sysrq-key в лине таки обычно софту не удается. По крайней мере, кернел на это реагирует практически всегда, покуда он не сдох окончательно. Остальное - зависит от. И то что игре должно быть (не)льзя получить нормальное управление клавой - зависит от.
Если говорить о штатных возможностях, то даже dd if=/dev/random of=/dev/sda - является вполне штатной возможностью системы (при условии что на нее хватит прав). В лине тут вылезает тот момент что оконный менеджер - это такой же кусок софта как и все остальное. Он ничем таким не особенный. Особых прав относительно других - у него нет. Ну вот и получите результат.
А в винде, кстати, винлокеры довольно извратно обычно делаются - путем написания аддона к так называемой GINA. Это штатный механизм расширения логон-скрина, позволяющий софту например реализовывать иные методы входа в систему. Ну там по отпечатку пальца, фотографии рожи или там еще чего. А то что оказалось что молотком можно не только гвозди забивать но и соседей по черепушке долбать - так это вина тех кто долбается, а не инструмента. По вашей логике в ОС вообще не должно быть системных вызовов - а то вдруг троянец тоже чем-то из них попользуется?!
> Да аы больны. И серьёзно.
Оно и видно кто тут болен.
> stubbornessstubbornness. :)
>>насчет Alt-TAB - это пять. Отсутствие переключения бесит невыносимо. И не надо мне рассказывать про запуск второго x-сервера. Спасибо
> Не знать работу своего ДЕ — вот это бесит.
> Я к примеру пользуюсь xfce. Там Alt-F11 — выход из полноэкранного режима.
> И Alt-tab у меня в играх используется, пока она активна. Чтобы была
> не активна достаточно выдти в меню игры (обычно esc).Сильно зависит от игры. Именно это и бесит - не должны стандартные комбинации перехватываться приложением!
а что плохого в запуске отдельного х-сервера для игры?
> а что плохого в запуске отдельного х-сервера для игры?тушканчики ниасиливают.
> тушканчики ниасиливают.За что ты так тушканчиков не любишь, что сравниваешь их с одноклеточными? :(
> За что ты так тушканчиков не любишь, что сравниваешь их с одноклеточными?
> :(хомячков ещё жальче просто.
в компизе можно использовать ctrl+alt+стрелочки
> Эх если б... всех заставлялиНе-не, заставлять не надо. Зачем нам труд из-под палки? Он качеством не отличается.
Полностью поддерживаю, пока такого замечено не было в играх source, такое было замечено ещё в старом UT2004 нативной под линь, и всех игр на этом движке, таких как Postal2. Из этих игр невозможно "временно выйти на рабочий стол".Мало того, в убунте почему-то из Postal2 мне не удалось переключиться на консоль Ctrl+Alt+F1, когда тот съехал за экран из-за стартового низкого разрешения. Пришлось РЕБУТИТЬ по-жёсткому.
> в убунтекажется, я нашёл источник твоей проблемы.
>> в убунте
> кажется, я нашёл источник твоей проблемы.Скорее всего, ибо в Debian-е и Gentoo всё нормально работает.
> Пришлось РЕБУТИТЬ по-жёсткому.Только не говори что постал has gone postal и пришиб die-hard шорткаты типа alt+sysrq+key. Хотя они больше для аварийного слива буферов и прочая.
Спасибо автору за перевод!Если кому-то интересно, дальше переведённого места следует подробный разбор расширений OpenGL с примерами кода, а также средств отладки. Никакой зауми (формат презентации), но и никаких упрощений "чтобы было понятнее", когда теряется смысл того что хотели сказать.
> Если кому-то интересно, дальше переведённого места следует подробный разбор расширений
> OpenGL с примерами кода,Ну я надеюсь что те кого заинтересовало - таки скачают презентацию с сайта нвидии и прочтут целиком. Все-таки полностью ее переводить в новость было бы крайне негуманно.
Объясните мне кто-нибудь, зачем нужен Raw Input для мыши? Раньше в средствах настройки KDE указываешь скорость мыши и потом во всех играх работает именно нужная мне скорость мыши. А теперь что? А теперь не работает, потому что все начали внедрять этот Raw Input!
> настройки KDE указываешь скорость мыши и потом во всех играх работает
> именно нужная мне скорость мыши.Вот только игры бывают разные и в одних хорошо одно а в других другое. И как бы для руления мышкой по десктопу и для шутера оптимальные настройки могут заметно отличаться.
* Довольно быстрый рост популярности Linux в качестве игровой платформы.А что, кто-то уже себе поставил линукс, чтобы поиграть в игры :) ?
У Nvidia и Valve только одна цель - это заработат денег. Не нужно думать, что они такие все хорошенькие и решили обратить свое внимание на линукс-пользователей.
> У Nvidia и Valve только одна цель - это заработат денег.А какой ещё должна быть цель? Посмотри определение "коммерческого предприятия".
NVIDIA делала проприетарные драйверы для Linux, FreeBSD и Solaris уже тогда, когда под Linux ровно одно приложение использовало OpenGL - Quake2, а под остальные ОС их вообще не было. Тем не менее, драйвер уже тогда выдавал 100% производительности и функциональности Windows-версии.
Вот-вот, "уже тогда"-то она делала, а щас чо-то время от времени заявляют, что оптимус типа будет, но когда он будет - хз)
Даже если оптимус(прайм) появится, буду пользоваться бумблеби(примусом).
Т.к. в такой конфигурации на нвидиа работает игра, а ДЕ остается на интеграшке.
В оптимусе либо то, либо то.
Дались нвидии ваши игрулечки в те лохматые годы. Драйвер был изначально выпущен для рабочих станций предназначенных для 3D-моделирования.
Под никсы?
Да. Возможно. Всякие айриксы тогда ещё процветали.
При этом сама карты изначально именно для массового (игрового) рынка были сделаны.
Что и позволило относительно долго существовать всяким матрасам.Зыж
А они уже могут аппаратно больше чем треугольные полигоны? Или там срезы в любой плоскости?
И тд.
Не, правда интересно. Как то не задавался ранее этим вопросом. Ибо нет служебной надобности.
> При этом сама карты изначально именно для массового (игрового) рынка были сделаны.Почему ты решил, что драйвер делался нвидией в первую очередь для GeForce, а не для Quadro?
> Зыж
> А они уже могут аппаратно больше чем треугольные полигоны? Или там срезы
> в любой плоскости?
> И тд.
> Не, правда интересно. Как то не задавался ранее этим вопросом. Ибо нет
> служебной надобности.Не знаю. Мне просто показалось странным мнение, будто драйверы делались в первую очередь для запуска на unix игр, которых тогда еще почти не было.
> Мне просто показалось странным мнение, будто драйверы делались в первую
> очередь для запуска на unix игр, которых тогда еще почти не было.Зуб не дам, но когда у меня работали свежевыпущенные нвидиевские 1.0-7xx/9xx и 1.0-1251, игр под Linux было уже довольно много разных -- от Tuxracer и BZFlag до кучи стрелялок, вон с альтовским Spring 2001 на последнем диске шла подборка демок (Shogo и ещё что-то).
Ради какого именно рынка делались -- потребительского или профессионального -- не знаю. Думаю, можно поднять из архивов те пакеты и посмотреть, поддержка каких чипов заявлена.
>> Мне просто показалось странным мнение, будто драйверы делались в первую
>> очередь для запуска на unix игр, которых тогда еще почти не было.
> Зуб не дам, но когда у меня работали свежевыпущенные нвидиевские 1.0-7xx/9xx и
> 1.0-1251, игр под Linux было уже довольно много разных -- от
> Tuxracer и BZFlag до кучи стрелялок, вон с альтовским Spring 2001
> на последнем диске шла подборка демок (Shogo и ещё что-то).Все равно, по моему, потенциал нишы игр под linux в то время был мелковат для того, чтобы озабочиваться написанием драйверов для них.
Дорогие графические станции для профессионального использования - это уже совсем иное дело.
> Ради какого именно рынка делались -- потребительского или профессионального -- не знаю.
> Думаю, можно поднять из архивов те пакеты и посмотреть, поддержка
> каких чипов заявлена.Учитывая то, что чипы для обоих сегментов практически одинаковы (нередко они отличаются только прошивкой и логикой в драйверах), а также то, что кодовая баз драйверов для всех платформ одинакова, я не удивлюсь, есть поддерживались сразу все чипы.
Похоже, что так оно и есть
http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9639/REA...
http://us.download.nvidia.com/XFree86/Linux-x86/1.0-7185/REA...
>> но когда у меня работали свежевыпущенные нвидиевские 1.0-7xx/9xx и 1.0-1251(2001, кажется)
> http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9639/REA...
> http://us.download.nvidia.com/XFree86/Linux-x86/1.0-7185/REA...Это 7xxx/9xxx (четырёхзначные номера сборок), бишь гораздо позже :)
>>> но когда у меня работали свежевыпущенные нвидиевские 1.0-7xx/9xx и 1.0-1251
> (2001, кажется)
>> http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9639/REA...
>> http://us.download.nvidia.com/XFree86/Linux-x86/1.0-7185/REA...
> Это 7xxx/9xxx (четырёхзначные номера сборок), бишь гораздо позже :)Более старые на сайте нвидии найти не удалось.
>> Это 7xxx/9xxx (четырёхзначные номера сборок), бишь гораздо позже :)
> Более старые на сайте нвидии найти не удалось.Ммм... заглянул в исошку альтового Junior 2.0 (2002 год) -- там 1.0-2960: http://ftp.linux.kiev.ua/pub/Linux/ALT/old/historic/
Дык у всех цель - денег заработать... Без этого кушать никак не получается, если конечно не заниматься по ночам нарушениями УК :)
> Дык у всех цель - денег заработать... Без этого кушать никак не
> получается, если конечно не заниматься по ночам нарушениями УК :)Путаете цели и средства.
> Путаете цели и средства.У малоразвитых существ заработок денег - единственная цель. Без этого возникают проблемы с комфортным существованием. Что логично. А поскольку такое существо все-равно ничего сверх унылого существования не умеет - ну вот и получается что заработок денег становится самоцелью. А единственным пузомером - "кто больше захавать смог".
проблема в том, что шибко развитые всё равно не могут питаться солнечным светом. даже те, которые в результате шибкого разума стали «растениями» на каталках.а ещё шибко развитые тоже — ВНИЗАПНА! — любят комфорт. а комфорт стоит денег. потому что без денег это уже не комфорт, а просто борьба с бытовыми трудностями.
и да: с некоторого момента «деньги начинают делать деньги».
> проблема в том, что шибко развитые всё равно не могут питаться солнечным
> светом. даже те, которые в результате шибкого разума стали «растениями» на каталках.
> а ещё шибко развитые тоже — ВНИЗАПНА! — любят комфорт. а комфорт
> стоит денег. потому что без денег это уже не комфорт, а
> просто борьба с бытовыми трудностями.Ну разумеется. Совсем бабла - некомфортно. Просто получение бабла само по себе - довольно странная самоцель. Обычно бабло надо на реализацию хотелок, комфортное окружение и прочая. При этом бабла должно быть достаточно для того чтобы не было дискомфорта. Но возводить его загрeбание в рамки культа? А нафига? Вот я и издеваюсь над примитивными существами у которых это осталось единственной целью в их примитивной амебной жизни.
"Совсем бабла" - имелось в виду "Совсем без бабла". Чтоб меня за криворукость.
Ошибка ещё глубже.
Ошибка приписывать компании человеческие черты и качества.
Нет в коммерческих компаниях ни чувств, ни человеческих потребностей... даже периода жизни нет.Зыж
Хотя сильная личность может придать компании человеческие качества (и пороки. Куда уж без них).
Тогда компания становится "легендарной".
Как бы это не звучало, но именно это произошло с мс в 90-е, с яблоком в 80-е и в 2000-е, с гуглом,..
Вот может произойти с валве.
Но а) это единицы на фоне остальной массы и б) со временем это пропадает (человек смертен. Более того, как у классика, внезапно смертен) и, если компания набрала обороты, то она начинает просто пожирать более мелкую рыбёшку.
Так вот, умно ли приписывать канибалам "человечность"?
ну, есть теория, что организации со временем превращаются в монстриков, которые желают ЖРАТ и РАСТИТ. проявляя при этом вполне забавные черты организмов.
если поговорить о теориях, то вот ещё одна из них — коммерческие компании, как единый субъект — это не "живое" создание. по-крайней мере не разумное.
(по своему поведению. по одной из теорий конечно)
но у них есть инстинкты, в частности инстинкт самосохранения.
есть мнение, что появление различных фондов, сообществ и тд (именно в коммерческом плане), есть процесс эволюционирования коммерческих предприятий (т.е. оказывается не обязательно жрать себе подобных, чтобы существовать).
раньше такую «созидательную» роль играли всё больше торговые палаты, гильдии, гос.заказы (где порой конкуренты вынуждены сотрудничать, как пример — проекты NASA) и тд, теперь вот умудряются само-организовываться и фондов таких на порядок больше, чем в 20-м веке.зыж
ну и типа «доэволюционируют» до идей коммунистов эволюционным, а не революционным путём. :D
мы думаю точно не доживём, чтобы проверить.
> и да: с некоторого момента «деньги начинают делать деньги».Эту иллюзию сейчас успешно пытаются подпереть уже за счёт БВ (а предыдущие двадцать лет -- за наш с вами счёт)... недаром ростовщичество запрещено во всех трёх монотеистических религиях.
> У Nvidia и Valve только одна цель - это заработат денег. Не нужно думать, что они такие все хорошенькие и решили обратить свое внимание на линукс-пользователей.А какая ещё может быть цель у коммерческой компании? Главное чтобы они производили качественный продукт за адекватные деньги.
> У Nvidia и Valve только одна цель - это заработат денег.Открытые лицензии не запрещают заработок денег. Вообще совсем. Поэтому сам по себе этот goal ничему особо не противоречит. И таки благодаря этим гражданам у нас выправится ситуация с инструментами и драйверами в еще +1 области. Еще один маленький но уверенный шажок к захвату мира :)
> А что, кто-то уже себе поставил линукс, чтобы поиграть в игры :)Как бы это сказать? Теперь будет еще -1 барьер на данном пути. А это хорошо.
> * Довольно быстрый рост популярности Linux в качестве игровой платформы.
> А что, кто-то уже себе поставил линукс, чтобы поиграть в игры :)
> ?Я, например, с выходом стима для линукс начал покупать в нём игры.
>У Nvidia и Valve только одна цель - это заработат денегУжас-то какой! А я-то надеялся, что корпорации возьмут да и начнут облагораживать Линукс просто так, во имя высоких идей и всё такое.
> У Nvidia и Valve только одна цель - это заработат денег.
> решили обратить свое внимание на линукс-пользователей.Одно другому не мешает.
Ну таки да. Мну контру начал играть на старости лет под линуксами. :)
> А что, кто-то уже себе поставил линукс, чтобы поиграть в игры :) ?Вы не поверите, но я такое наблюдал ещё в 2002. Причём далеко не единичные случаи.
>GL довольно многословенДа ладно? Вы directX константы видели?
> Да ладно? Вы directX константы видели?Да ну нафиг - вломы. Будем GL учить. Актуальнее как-то. Подерживается на куче платформ, все дела.
спасибо за перевод
мне как начинающему геймдеву было очень интересно про инструменты разработки почитать
Ещё бы Нвидия объяснила, почему у меня их видяха на Лине отказывается работать.
В NVidia при недавней реорганизации отдел телепатов разогнали, %аноним%.
Оно и с ними не работало.
Потому и разогнали )))
ОН никогда ещё не был так близок!
>>> Файловые системы в unix-подобных ОС по умолчанию чувствительны к регистру имён файловСтолкнулся с этим явлением, когда долго не мог понять, почему в Linux игра Sacred Underworld не видит мои сохранения, сделанные когда-то в Windows. А нужно то было всего лишь поставить нижний регистр в названиях файлов сохранений. Сделал это очень быстро благодаря функции пакетного переименования файлов в программе Double Commander.
> файлов в программе Double Commander.А уж сколько всего можно в баше напрограмить... вы удивитесь, узнав сколько нудных и геморных операций оказывается можно бессовестно сбагрить на машину! :)
Имел бы баш Си-подобный синтаксис, цены бы ему не было :) А все эти отступы...
Можно взять rc как годный шелл с си-подобным синтаксисом.
>все эти отступы...А что отступы? Они в shell значения не имеют.
Угу.$ if [ 1 = 1 ]; then echo "1"; fi;
1
$ if [1 = 1 ]; then echo "1"; fi;
[1: command not found
$ if [ 1 = 1]; then echo "1"; fi;
bash: [: missing `]'
$if [ 1 =1 ]; then echo "1"; fi;
bash: [: 1: unary operator expected
$ if [ 1=2 ]; then echo "1"; fi;
1
Если Вы путаете пробелы с отступами, Вам даже оболочка с синтаксисом Си не поможет, скорее всего.
>[оверквотинг удален]
> $ if [ 1 = 1 ]; then echo "1"; fi;
> 1
> $ if [1 = 1 ]; then echo "1"; fi;
> [1: command not found
> $ if [ 1 = 1]; then echo "1"; fi;
> bash: [: missing `]'
> $if [ 1 =1 ]; then echo "1"; fi;
> bash: [: 1: unary operator expected
> $ if [ 1=2 ]; then echo "1"; fi;
> 1Блин, когда ж вас, грёбаных школьных "теоретиков", каникулы законяатся?!
> Имел бы баш Си-подобный синтаксисНу, блин, програмьте на си. Есть даже интерпретер запускающий си. Можно юзать туеву хучу си-образных языков и их интерпретеров. Баш вообще был сугубо как пример.
Просто используя такие штуки в гуйной программе вы однажды наткнетесь на тот факт что нужной фичи там нет. Конечно, можно взять ее сорец. Но что проще: достроить этаж в дачном домике или промежуточный этаж в 100-этажном небоскрeбе? Вот навороченная гуйная программа по сложности - скорее как небоскреб. Т.е. допилить можно, но сил на разбирательство "блин, как же это сделать?" уйдет порядочно.
> Имел бы баш Си-подобный синтаксис, цены бы ему не было :)Цену csh знаете? То-то.
> А уж сколько всего можно в баше напрограмить... вы удивитесь, узнав сколько нудных и геморных операций оказывается можно бессовестно сбагрить на машину! :)Yes, we can ;)
\\Косо смотрю на тех, кто вручную выполняет то, что можно сделать автоматически.
> \\Косо смотрю на тех, кто вручную выполняет то, что можно сделать автоматически.а зря. это ж отличный метод ИБД.
> а зря. это ж отличный метод ИБД.Скучновато для существ с мозгом. Это по вкусу только "операторам ПК" и прочим эникеям.
> Скучновато для существ с мозгом.нормалёк. скрипт всё уже давно сделал, конпелятор конпелирует, а человек Работой Занят. и все довольны: начальство не чувствует себя дураками («у нас тут пять девочек месяц корячились, а он за час сделал! где-то нас обманули!»), пять девочек не чувствуют себя дурами (а жаль), умный человек при деле (при своём, но это уже нюансы).
> при деле (при своём, но это уже нюансы).Ну так я на это и намекал :). Человек Разумный делает как-то так.
А вы не допускаете такой мысли, что Nvidia+Valve, в конце концов запилят свой дистрибутив, под свою консоль и будут выпускать игры ТОЛЬКО под нее, и пошлют лесом всех простых пользователей линукса, винды и мака ?
Сейчас все пользователи линукса, использующие Steam - не то чтобы бесплатные бета-тестеры, а еще и бета-тестеры, которые платят деньги за свою работу :)
>и будут выпускать игры ТОЛЬКО под нее, и пошлют лесом всех простых пользователей линукса, винды и мака ?Типа, а вот хрен я тебе продам?
Интересная бизнес-модель.Зыж
А та за нас (бета-тестеров) не переживай. Всё по обоюдному желанию.
Народный защитник нашёлся.
Вон, 26 игр уже. Все работают. Как хл2 и ещё пару выйдут, так валве мегапак куплю (1499рупий)Ззыж
И у стима покупаешь один раз, а потом играешь на той платформе, каторую захотел.
Выйдет их консоль, тоже куплю. Потом просто войду на ней под своим аккаунтом и этот мега-пак будет работать.
>>и будут выпускать игры ТОЛЬКО под нее, и пошлют лесом всех простых пользователей линукса, винды и мака ?
> Типа, а вот хрен я тебе продам?Нет, типа никаких гарантий, что оно под вашим велосипедным дистром заработает.
ну и сократят рынок до исключительно тех, кто специально под игры покупает приставку. и лишатся тех, кто играет на ПеКа.
>Нет, типа никаких гарантий, что оно под вашим велосипедным дистром заработает.Типа под вашу асфальто-укладочную винду гарантии есть.
Всё идёт аз ис.Зыж
По линухом я хоть ядро, хоть месу, хоть иксы, хоть ДЕ,... могу поменять.
При чём в любую сторону. И на новую версию, и на старую. Снёз г3, поставил г2.
А под виндой как пришло обновление 100500 уязвимостей безопасностей, так ах... переставляй систему, отрубай тырнет.
>асфальто-укладочнуюили плитко-укладочную... что там сейчас в трэнде продаж "не_нужного"?
Под моим велосипедным дистром работает. У валве очень грамотный подход, единственный проблемный момент - это то, что glibc должна быть достаточно свежей.
> glibc должна быть достаточно свежей.Necromancy is a forbidden art (c).
> А вы не допускаете такой мысли, что Nvidia+Valve, в конце концов запилят
> свой дистрибутив, под свою консоль и будут выпускать игры ТОЛЬКОВообще, вы знаете, попахивает маразмом если капиталист начинает кочевряжиться при желании продать товар. Генри Форд на своей шкуре узнал чем это заканчивается. Да-да, с тех пор Форд как максимум только второй в мире. И что-то уже не рискуют вякать что-либо про только черный.
> Да-да, с тех пор Форд как максимум только второй в мире.
> И что-то уже не рискуют вякать что-либо про только черный.Я бы вот выпустил свою консоль, на видеокарточке Nvidia и процессоре ARM, и игры бы только под ARM собирал :)
ARM даст более низкое энергопотребление --> более низкое тепловыделение, и как следствие отсутствие вентиляторов, или их наличие, но очень-очень тихих.
В качестве плюшек - я бы запилил на ней полноценный десктоп с офисом, скайпом, аськами и прочим, чтобы юзвери могли пользоваться моей консолью "как компом", и как мультемедийным центром, чтобы блю-реи всякие были.
Чтобы не было зоопарка дистрибутивов, нескольких архитектур процессоров, видеокарт, звуковых карт, установленных шрифтов и прочее.
Ну как-то так, потребителям в массе своей сейчас нужно:1. Играть в игры
2. Сидеть в интернетах / аськах / скайпе
3. Смотреть фильмы / слушать музыкуИ чтобы все было просто, и не выносило мозг.
> Я бы вот выпустил свою консоль, на видеокарточке Nvidia и процессоре ARM,...видимо нвидия что-то такое подозревает и потому пилит свои тегры. Тем более что на х86 ее все-равно обули.
> и игры бы только под ARM собирал :)
Проприетарщики. They never change. Всегда пытаются навязать всем свое видение счастья. Не понимая что некоторое количество народа воспримет такое "счастье" как элементарную тиранию. Каковой оно и является [при отсутствии выбора].
> ARM даст более низкое энергопотребление --> более низкое тепловыделение, и как
> следствие отсутствие вентиляторов, или их наличие, но очень-очень тихих.Спору нет. Но без конкуренции развитие процессорной линейки зачахнет. А зачем что-то улучшать, если конкурентов нет? Поэтому видеть мир через призму "только ARM" - величайшая глупость.
> В качестве плюшек - я бы запилил на ней полноценный десктоп с
> офисом, скайпом, аськами и прочим, чтобы юзвери могли пользоваться моей консолью
> "как компом", и как мультемедийным центром, чтобы блю-реи всякие были.К счастью, есть ключевое слово - "бы". Но если бы у вас это получилось - я бы вас искренне ненавидел. И с упоением высылал бы пули в вашу сторону с другой стороны баррикад, ибо...
> Чтобы не было зоопарка дистрибутивов, нескольких архитектур процессоров, видеокарт,
> звуковых карт, установленных шрифтов и прочее....ибо для логического завершения картины осталось разве что согнать всех в единый концлагерь и раздать одинаковую униформу. Для логического завершения картины.
> Ну как-то так, потребителям в массе своей сейчас нужно:
Ну как бы даже валв понимает что потреб-ди - это плохо. И заметьте, они активно стимулируют тех кто генерит контент.
> А вы не допускаете такой мысли, что Nvidia+Valve, в конце концов запилят
> свой дистрибутив, под свою консоль и будут выпускать игры ТОЛЬКО под
> нее, и пошлют лесом всех простых пользователей линукса, винды и мака
> ?А зачем им идти по граблям MS (с их программы только под последнюю версию виндов)?
В условиях, когда платформ несколько, а у пользователя может быть уже несколько устройств (компьютер, планшет, мобильник, игровая приставка и т.д.) на рынке выигрывает тот, кто лучше будет поддерживать весь этот зоопарк.Хотя это совсем не отрицает возможность продавать свои программы в том числе и со своей же железкой. Пример google намекает.
У стима изначально другая бизнес-модель. А именно доход с оборота.
К примеру у сони(а также мс хыбокса) — доход с продажи.
И знаете чем это потенциально грозит?
Тем, что у валве всё может получиться. При чём так, что сони/мс/.. на этом рынке может не оказаться места.
Как открытие супер-маркета (с оборота) приводит к закрытию соседних мелких магазинчиков (с продажи).
> А вы не допускаете такой мыслиДопускаем, но мы же не "адекваты" от некрософта, а трезво мыслящие люди. Поэтому вероятность такого находим пренебрежимо малой.
Много криков, а толку мало.
> Много криков, а толку мало.Так зачем кричите?
> В OpenGL отсуствуют проблемы с потерей устройств.Это чего такое?
Вообще, список "проблем" заставил улыбнуться.
>Советы разработчикам:
> Поиск в интернете имеет смысл делать как с префиксом GL_ или gl у соответствующего вызова так и без него.
> Чтение спецификаций стандарта себя оправдывает многократно.И все прочее - заставило испугаться.
> И все прочее - заставило испугаться.Правильно боитесь. Видимо, понимаете куда смещается фокус развития и что вы уже ничего с этим сделать не сможете. Да-да, майкрософт более не центр вселенной и не задает погоду в отрасли. Появляются вот такие вот прикольные гайды, при том от крупных грандов индустрии, со вполне разумной аргументацией, а не просто какого-то там В. Пупкина.
>В частности, в Китае в данный момент все еще очень много пользователей с ОС >семейства Windows XP, которые не могут пользоваться DX10/11. Тем не менее, при >использовании OpenGL будут доступны полные возможности оборудования, в том числе >и в данной версии ОСэто конечно классно, но разговор был про линукс. куда-то не туда докладчика понесло...
> это конечно классно, но разговор был про линукс. куда-то не туда докладчика понесло...Ну как, нвидии главное видеокарты продать. И тут им MS подгадил, сократив аудиторию. А они прозрачно намекнули что есть воркэраунд: юзать стандарты которые не развиваются одним вендором.
Да уж.
Не каждый согласится покупать к карте для новой игрушки ещё и новую винду с новым системником (а именно этого и хочет... не-не, требует со своим уефи мс).
Как следствие — карты не продаются, игры тоже.
Вот валве с нвидией и сошлись на этой почве.
> Вот валве с нвидией и сошлись на этой почве.Ну так капиталисты. Дружба дружбой, а деньги врозь.
> Наиболее простым решением является перевести имена всех ресурсов в нижний регистр.Valve ниасилила strcasecmp/strcasestr :D
> Проблемы с локалью могут вызывать проблемы в функциях printf/scanf.
Проблемы, могут вызывать проблемы. :) Ваш К.О.
> Valve ниасилила strcasecmp/strcasestr :DСделать ls, сделать сравнение для всех, перейти в каталог, сделать ls, сделать сравнение, перейти в каталог, сделать ls...
Лучше уж действительно перевести всё в нижний регистр, и не заниматься извращениями.
>> Valve ниасилила strcasecmp/strcasestr :D
> Сделать ls, сделать сравнение для всех, перейти в каталог, сделать ls, сделать
> сравнение, перейти в каталог, сделать ls...
> Лучше уж действительно перевести всё в нижний регистр, и не заниматься извращениями.alias ls='ls | tr [:upper:] [:lower:]'
---
Если совсем феншуить - то имена файлов нужны операционной системе и системным программам.
А прикладушки должны считывать заголовки из этих файлов.И грубо говоря, файл карты уровня с именем "Sand map Dark Arena №15" вааааще фиолетово
какое будет иметь имя на FS.Это большой и жирный косяк всех проприетарастов - привязка объектов к именам файлов,
а не к его содержимому! Особо касается фимварей - любой бытовой девайс можно похерачить
засунув на диск/флеху файл с именем install.dat/install.img/update.dat и т.п.
> alias ls='ls | tr [:upper:] [:lower:]'Ты что, своего фирменного чая с грибочками сегодня перепил? Ты давно видел программы, которые при работе с своими ресурсами вызывают внешние утилсы а не сисколы оси?
>> alias ls='ls | tr [:upper:] [:lower:]'
> Ты что, своего фирменного чая с грибочками сегодня перепил? Ты давно видел
> программы, которые при работе с своими ресурсами вызывают внешние утилсы а
> не сисколы оси?Чувак написал про ls, про него ответ и получил.
> любой бытовой девайс можно похерачить засунув на диск/флеху файл с именем install.dat/install.img/update.dat и т.п.А вот это интересно. Ну ка, угадай, что нужно засунуть на флешку для похерачивания телевизора Supra? Маленькая подсказка: телевизор может читать с флешки фото/аудио/видео/*.txt, а в инструкции ни слова про возможность обновления прошивки
и тут ты тоже не прав. тебя мягко предупредили, что с квантором всеобщности можно крупно пролететь. как-никак, а ресурс всё-таки технарский. не стоит окончательно уподобляться гсм-щикам, где «говорим 'жопа' — подразумеваем 'роза'».
> 'роза'».(ехидно поглядывая на u-boot, с чтением MMC карточек) Эй, павлин, расскажи мне что ты там класть собираешься на карточку, чтобы заапдейтить это. Чтоб я знал какой файл читать, а то в мире будет как минимум одна железка где описанный тобой номер не катит :). Чего достаточно для выставления тебя балаболом :P.
А при чём тут strcasecmp/strcasestr? Проблема ведь в том, что делая fopen("path/to/file", "r"); файл pAtH/tO/fIlE не откроется. А обегать каждый раз список директорий сравнивать строки - это маразм. Переименовать файлы в нижний регистр - самое простое и логичное решение.
ну дык… переопределить fopenзыж
к тому же
$ ldd steam
…
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/32/libstdc++.so.6 (0x42003000)т.е. а напуркуа они тогда в основном плюсами пользуются, чтобы вот так костылять?
>переопределить fopenСразу видна работника завода по производству костылей.
сразу видно недоученного олуха, прости господи.
вот определение fopen в stdio.h
__BEGIN_NAMESPACE_STD
#ifndef __USE_FILE_OFFSET64
extern FILE *fopen (__const char *__restrict __filename,
extern FILE *freopen (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream) __wur;
#else
# ifdef __REDIRECT
extern FILE *__REDIRECT (fopen, (__const char *__restrict __filename,
__const char *__restrict __modes), fopen64)
__wur;
extern FILE *__REDIRECT (freopen, (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream), freopen64)
__wur;
# else
# define fopen fopen64
# define freopen freopen64
# endif
#endif
если у «себя» добавить
#ifndef __USE_FILE_VALVESTEAM
то таким олухам, как ты, будет сухо и спокойно в своём аквариуме.
Предлагаю #define true false - так будет интереснее :)
как бы то там ни было, а данный механизм условной компиляции — очень мощный, штатный и часто используемый механизм языка С, который отчасти и сделал С таким популярным.
штатный, но очень кривой костыль, доставшийся нам в наследство вместе с сями. потому что метапрограммирование per se не лезло, а очень, очень хотелось. получился огуречик. как обычно.p.s. хотя, конечно, самый эпический костыль — это непременное требование tab-ов в makefile.
> штатный, но очень кривой костыль, доставшийся нам в наследство вместе с сями.
> потому что метапрограммирование per se не лезло, а очень, очень хотелось.Да ладно, нормальный механизм. Позволяющий просто решить не самые тривиальные грабли. Например в винде юзать одни функции а в лине другие. Это, конечно, не особо портабельно, но вот кто виноват что в разных осях разные апи для разных вещей? Костыльной проблеме - костыльное решение. Все логично вроде.
> Да ладно, нормальный механизм.…был бы, если бы макросы могли определять другие макросы или переопределять себя. а без этого — унылый и бесполезный. использование же разных функций решается как обычно: враперами и созданием os-dependent реализаций.
> как в исходник не глянешь, так везде куча бесполезных.а другого нет ничего, вот и всё. язык замороченый, внешний массажёр писать — геморрой. а метапрограммирования нет.
> ты пример то приведи, как вот это предлагаешь разруливать:
google://wrappers
> вместо одного наглядного файла предлагается править десяток других. и компилячить их
> по-отдельности (с раздуванием ещё и мэйк-файлов и/или их аналогов)юноша. нормальная система сборки без проблем сгенерирует нужный makefile по несложным исходным правилам. а вот говнозаголовки, обсыпаные ifdef'ами, как дурак стекляшками — это и есть атомный ужас.
к сожалению, тяжёлое наследие тёмных времён (в виде cpp и make, например) так просто не аннигилируешь. когда-нибудь поймёшь. до тех пор можешь продолжать невозбранно оргазмировать от недомакрокостылей. только очень тебя прошу: не лезь пока во взрослые разговоры. не то, чтобы ты сильно мешал, но детсад в другом месте.
давай конкретней (а то я молодой, не опытный)чем заменишь (и как. включая сборку):
># else
># define fopen fopen64
># endifтак чтобы и символов было не больше (чем больше, тем больше возможность ошибиться. известный факт), и наглядно, и в одном месте, и до компиляции для целевой платформы (чтобы памяти не жрало и быстро работало), и тд, и тп.
а абстрактных меринов в вакууме (типа «нормальная система сборки», «метапрограммирование» и прочие короткие замыкания моСКа) оставь таким же пердунам-пенсионерам, философам на пенсии.
> …был бы, если бы макросы могли определять другие макросы или переопределять себя.ОЙ, да ну нафиг. Макросы - не для упражнений в концептуальном программировании а всего лишь для условной компиляции да определения некоторых сущностей которые могут сделать синтаксис полаконичнее. Они с этим справляются - ну и зашибись.
> решается как обычно: враперами и созданием os-dependent реализаций.
Тем не менее, макросы вполне себе юзают для OS-dependent реализаций платформозависимых функций или их кусков. Вполне нормально катит в общем то.
>> …был бы, если бы макросы могли определять другие макросы или переопределять себя.
> ОЙ, да ну нафиг. Макросы - не для упражнений в концептуальном программировании
> а всего лишь для условной компиляции да определения некоторых сущностей которые
> могут сделать синтаксис полаконичнее. Они с этим справляются - ну и
> зашибись.ну так это потому, что ничего сложнее они не умеют. а вот иногда, например, надо в макросе уникальный идентификатор сгенерить. да, есть __COUNTER__. но без анусной магии всё равно не получится. потому что макросы очень дурные и ограниченые.
а переопределение себя, например, было бы удобно для регистраторов всяких штук. например, консольных команд. то есть, пишешь нечто вроде:
CONSOLE_COMMAND(god) {
god_mode = !god_mode;
}
а няшный макрос ведёт списочек "жертв". а потом делаешь REGISTER_ALL_COMMANDS, например, и они все скопом регистрируются. а то ломает же руками их перечислять, это как раз место, где автоматика рулит.ладно, у gcc есть __attribute__((constructor)), при помощи лома и какой-то матери получилось даже удобней, чем вышеописаное. но только вот… а что делать, если захочется собрать компилятором, который не поддерживает атрибуты? или конструктор не поддерживает? всё, приехали. а были бы нормальные макросы — проблема бы вообще не появилась.
>штатный, но очень кривой костыль, доставшийся нам в наследство вместе с сями.Это по меньшей мере наивно.
Во-первых — сам по себе комп и есть костыль.
Во-вторых — это не костыль языка, это костыль архитектуры.Вы что ж полагаете, что какая-нибудь жаба(можно подставить любую панацею неосиляторов) магическим образом заменит вот это ограничение архитектуры:
># define fopen fopen64
># define freopen freopen64на тру-пацанский_языко_слэнг? который к тому же ещё и длиннее раз в дцать получится.
не, для трёхэтажных матов это хорошо, а вот читать вместо 5-и строчек несколько файлов с исходными классами для каждой архитектуры… никакой айзен не убедит к этой секте присоединиться.ну не может 32-битная программа адресовать также как 64-битная.
НЕ МОЖЕТ. шина адреса меньше. шаулинь не тот. «кунг-фу» у 64-битной круче.
зыж
как сделаешь лучше, так приходи, посмотрим, пощупаем,… и выкинем.
а то только из подворотни «айзенить», а операционки как писались на С, так и пишутся.
и будут писаться.
отчасти и потому что есть условная компиляция (и нет запрета на указатели. и вообще — нет запретов).
> данный механизм условной компиляции — очень мощный, штатныймеханизм механизмом, но это не повод городить новые костыли, и терять производительность читая лишние данные с диска. Прямее поменять регистр имен файлов и жить без костылей.
Попутно надо накостылять тем, кто создает файл в одном регистре, а потом открывает в другом, за генерацию г*внокода и отсутствие строковой константы.
Какие такие лишние данные?
Аб чём вы, господин?
Условная компиляция на то и условная, что до компилятора не доживает.зыж
>Попутно надо накостылять тем, кто создает файл в одном регистре, а потом открывает в другом, за генерацию г*внокода и отсутствие строковой константы.Дык… это. Идите костыляйте.
Адрес известен — майкрософт.ком
Валве тут потерпевшая сторона, была вынуждена использовать этот г*внокод.
Есть 2 решения на пути с условной компиляцией, так как вы своё не озвучиваете, придется додумать за вас. Моё другое.Если вы надумали абсолютно все имена преобразовывать в нижний регистр в функции fopen, то у меня для вас плохие новости, файлы с именами в верхнем регистре может тоже понадобится открывать. И тогда костыли породят костыли.
>>Попутно надо накостылять тем, кто создает файл в одном регистре, а потом открывает в другом, за генерацию г*внокода и отсутствие строковой константы.
> Дык… это. Идите костыляйте. Адрес известен — майкрософт.ком Валве тут потерпевшая сторона, была вынуждена использовать этот г*внокод.Майкрософт лишь предоставила возможность писать г*внокод, Валве этой возможностью воспользовалось.
>Есть 2 решения на пути с условной компиляцией, так как вы своё не озвучиваете, придется додумать за вас. Моё другое.моё мнение озвучено — вон исходник stdio.h с кучей переопределений fopen/fopen64/…
>Если вы надумали абсолютно все имена преобразовывать в нижний регистр в функции fopen, то у меня для вас плохие новости, файлы с именами в верхнем регистре может тоже понадобится открывать. И тогда костыли породят костыли.С чего вдруг игре, портированной с винды (где, напомню, регистр НЕ важен), ВДРУГ потребуется регистр? Аргумент из носа?
К тому же, это не я планировал «абсолютно все имена преобразовывать в нижний регистр», это предложение из сабжа (см. новость. читать то умеете?).
Моё предложение проще — открывать файл независимо от регистра, переопределив fopen (в steam-sdk) и включая эту функциональность флагом (например #ifdef _STEAM_CASESENS…).При этом предположение возможности встретить 2-а и более одинаковых файла с разным регистром отметается, т.к. для этого пользователь должен САМ, ВРУЧНУЮ их скопировать (это в стиме то? ха :D) в разных регистрах (и собственно это его дело развлекаться так, как он хочет), при этом в переопределённом fopen учесть эту возможность существования >2-х файлов (открывая первый попавшийся в нижнем/верхнем/по_дате_доступа/как_угодно)
>Майкрософт лишь предоставила возможность писать г*внокод, Валве этой возможностью воспользовалось.Правда что ли? Т.е. таки есть механизм под виндой, когда можно окрывать файлы с учётом регистра? Может там даже прямой доступ к ФС есть (/dev/sda1)? А может даже и спеки этой ФС есть?
Нет? Т.е. выбора под виндой нет? Или есть и вы можете показать как?
> моё мнение озвучено — вон исходник stdio.h с кучей переопределений fopen/fopen64/…это не мнение, а намёки на то что ты там себе думаешь, и если ты не видишь, как твои слова можно интерпретировать по-другому, это не значит что их нельзя интерпретировать по-другому.
сказать "использовать условную компиляцию" с fopen не значит выразить своё мнение, ибо использовать условную компиляцию можно с абсолютно разными подходами.
> С чего вдруг игре, портированной с винды (где, напомню, регистр НЕ важен), ВДРУГ потребуется регистр?
Потребуется открыть файл созданный пользователем в другой программе, или скопированный из этой же программы из под винды - регистр может быть любым.
> Моё предложение проще — открывать файл независимо от регистра, переопределив fopen (в steam-sdk) и включая эту функциональность флагом (например #ifdef _STEAM_CASESENS…).
Каким образом переопределить ? Алгоритмы можно разные придумать на эти слова.
fopen("UserSetting.txt",..) - что будет делать под линуксом по-вашему ?>> Майкрософт лишь предоставила возможность писать г*внокод, Валве этой возможностью воспользовалось.
> Правда что ли? Т.е. таки есть механизм под виндой, когда можно окрывать файлы с учётом регистра?Есть возможность не создавать в своей программе файлы в разных регистрах и не писать быдлокод который открывает свои файлы не в том регистре в котором они созданы.
>это не мнение, а намёки на то что ты там себе думаешь, и если ты не видишь, как твои слова можно интерпретировать по-другому, это не значит что их нельзя интерпретировать по-другому.не предмет разговора.
изволите юлить.зыж
>Есть возможность не создавать в своей программе файлы в разных регистрах и не писать быдлокод который открывает свои файлы не в том регистре в котором они созданы.есть возможность слетать на Луну и Марс.
удачи.
(а тут всё про реальную ма-а-а-аленькую проблемку)
Сэр, вас что-то в последнее время на агрессивное ламерство прошибло. Может, побольше RTFM и поменьше снобизма, а? А то вы и других до кучи на такой стиль поведения провоцируете. А оно нам всем тут надо?
Хм. Линусу скажите.
Зыж
Заипали ламерюги.
Зачем пишу? Есть промежуточное время.
> Хм. Линусу скажите.Ему не требуется.
> Заипали ламерюги.
Вы кроме всего прочего пару раз к оным даже автора новости причислили.
> Зачем пишу? Есть промежуточное время.
Это не повод слить свою репутацию махровым ламерством, почем зря обозлив участников.
>>Есть возможность не создавать в своей программе файлы в разных регистрах и не писать быдлокод который открывает свои файлы не в том регистре в котором они созданы.
> есть возможность слетать на Луну и Марс.вместо признания своей неправоты ты решил отвлечься разговором о космосе ?
Юлить не надо.
На вопрос по алгоритму fopen не ответил => слив тебе засчитан.
> Правда что ли? Т.е. таки есть механизм под виндой, когда можно окрывать
> файлы с учётом регистра? Может там даже прямой доступ к ФС
> есть (/dev/sda1)? А может даже и спеки этой ФС есть?боевые школьники умиляют. мальчик, ты, наверное, этого не ожидал, но ответ на *все* заданые тобой вопросы — «да».
> мальчикВы оба уже вроде бы давно не мальчики и могли бы внести соответствующие поправки в манеру общения. :-/
Как вы наверное заметили (?), я до этого не спускался.
Но готов обсудить по-существу— всё-таки не проблема, вопрос.
даже если человеку 80 лет, но рассуждает он как мальчик… ну, как иначе обратиться-то?
> А при чём тут strcasecmp/strcasestr?
> Проблема ведь в том, что делая fopen("path/to/file", "r"); файл pAtH/tO/fIlE не откроется.Ясно, не пиши больше.
> А обегать каждый раз список директорий сравнивать строки - это маразм.
Да, ваш Commodore64 этого не переживет.
> Переименовать файлы в нижний регистр - самое простое и логичное решение.
Логично - это конфиг-описание внешних объектов. см. XML
<map>
<name>SuperMap</name>
<file>/net/nfs/alaskaserver/My_faVOriTe_sUpErMAp.img</file>
</map>
верно.
и сабж:
>Для игр это, как правило, не является проблемой так как игровые ресурсы обычно поставляются в платформо-нейтральных контейнерах. Тем не менее, в процессе разработки это может быть проблемой.т.е. предполагается разработка под виндой (где каждую прогу не настроишь под кэйссенситив)
> т.е. предполагается разработка под виндой (где каждую прогу не настроишь под кэйссенситив)Скорее, эпический запрыг по граблям при попытке устроить настоящий кросс. Т.е. то на одной то на другой платформе что-то будет отпадать. Что совершенно не прикольно.
Глупости.
В винде вечно всё отпадает. Но она самая популярная.
Ну...была вчера точно.
> Логично — это конфиг-описание внешних объектов. см. XMLжуть какая. у тебя xmlянка. я не уверен, но… возможно, это ещё излечимо.
плюс - заключенную в тэги инфу можно использовать и не в строго определённом порядке, главное - чтобы ожидаемая структура была полной. тоже столкнулся с этой проблематикой вплотную, видел, как расширяют конфиги новыми (и опциональными параметрами). ужас просто: считаем количество параметров в строке. если количество N - конфигурация "а", если M - конфигурация "б" и т.д. если у меня есть еще и куча опциональных переменных, наличие которых необязательно? в xml можно просто в атрибутах задать и т.д.
а если комментов нема - с этой конфигой можно разобраться только в исходниках, или в спецификации, где что находится из параметров. в xml по тэгам можно догадаться, где что. если у них имена более-менее адекватные :)
для простых случаев однозначно да: текстовые конфиги идут на "ура!"
> для простых случаев однозначно да: текстовые конфиги идут на «ура!»и для сложных идут. для чуть более сложных — s-expr отлично «идут».
да, вполне возможно, только там нужно будет уже делать более навороченный парсер. просто мне приходится ковыряться с конфигурациями, примерно 100-200 килобайт каждая. ощутил, что реально удобно такие вещи делать. конечно, нужно дополнительное место для служебной инфы. но удобно разбирать кривые конфиги, которые я получаю тоже часто в начале написания проектов. т.к. генерируются они автоматически
> да, вполне возможно, только там нужно будет уже делать более навороченный парсер.(сравнивает парзеры xml и s-expr, смеётся)
та и не говори. хе-хе.
Рассказали бы ещё, когда hl2 (сингл-плеер) и Portal ждать.
When it's done, вместе с каком-нибудь The Lemon-lime Box, в котором будет третий эпизод.
Очевидно же!
Спасибо Майкрософту за Виндовс 8 с ее попытками отобрать хлеб у Гейба c их маркетом.
Вот уж не думал что так быстро начнутся подвижки с играми у линуха.
Я еще питаю надежды в последствии запустить steam на фрибсд :)
> Я еще питаю надежды в последствии запустить steam на фрибсд :)Ну у БСД есть свой linuxemu, почему бы и нет?
> Я еще питаю надежды в последствии запустить steam на фрибсд :)Игроделам самим по себе оно как ты понимаешь не надо. Просто потому что фрибзда на десктопе - очень маргинальная штука, на уровне хаек и реактосов где-то. Даже в рунете ее менее чем 0.01%. И это при том что оно в ex-USSR аномально популярно vs остальной мир. Так что официально никто ничего там проверять и саппортить с вероятностью 99.99% не станет. Если вы как-то сами прикрутите это проволокой и скотчем - флаг в руки.
Действительно, в Сомали FreeBSD не очень распространено.
> Действительно, в Сомали FreeBSD не очень распространено.И не тольво в Сомали. Вообще, было бы довольно странно, если бы у геймеров стала популярна система в которой половина GPU не поддерживается.
вот они тут всё про иксы да про иксы, а как же Wayland и Mir?!
> вот они тут всё про иксы да про иксы, а как же
> Wayland и Mir?!Они используют SDL + OpenGL, а не иксы напрямую, так что проблем с wayland'ом не будет.
> Они используют SDL + OpenGL, а не иксы напрямую, так что проблем
> с wayland'ом не будет.В смысле - не Х напрямую? Вы имеете ввиду, не родную рисовалку Х?
>В смысле - не Х напрямую? Вы имеете ввиду, не родную рисовалку
> Х?Open Gl сейчас может работать минуя Х протокол и сервер ,так что игры не тормозят при условии fullscren ,в оконном режиме X оспользуется только для декорации окон ,но в некоторых DE всеравно есть проблемы с падением производительности .
> Open Gl сейчас может работать минуя Х протокол и сервер ,Раскройте, пожалуйста, каким образом это происходит при запущенных Х.
магическим.
> Раскройте, пожалуйста, каким образом это происходит при запущенных Х.Ну вот таким - можно просто сплевывать все запросы в direct rendering manager и тот будет упираться по фактическому выполнению запрошенных операций. Что иксы+акселерированный DDX драйвер - его клиент, что меса, что другие клиенты. По поводу чего всякие вяленды и прочие к современному линю привинчиваются одной левой. Сами иксы там вообще сильно сбоку и всего лишь 1 из возможных клиентов к подсистеме. И GL и иксы по большому счету две независимые подсистемы. Они немного пересекаются через GLX. Только все это вообще-то опциональное расширение и на уровне устройства подсистем гвоздями не прибито. И вроде как есть планы совсем GLX выпилить в будущем, кстати.
> В смысле - не Х напрямую?В самом прямом - они фигачат вызовы OpenGL и SDL. И им до балды кто их отработает. Таким макаром та же прога из тех же сорцев работает например и в винде. Где иксами ни разу и не пахло. Зато libsdl знает как там рисовать на экран и работать с окнами, opengl вывешен драйверами видеокарты. Ну вот оно и работает. Точно так же оно собирается под ведроид какой-нибудь, где жирных и тормозных иксов опять же нет. А есть какой-то простой как топор самопал (surface flinger) + OpenGL ES. А libsdl и на таком работает. Ну и opengl вызовы опять же отрабатываются. Правда GL ES, но он почти 1 в 1 совпадает с простым GL за редкими исключениями.
> вот они тут всё про иксы да про иксы, а как же Wayland и Mir?!Для них вообще не должно быть особой разницы что там будет.
>а как же Wayland и Mir?!А что, они уже работают за пределами специальных сборок с полутора десятками рабочих приложений?
А как вы думаете, каким IDE пользуются разработчики игр для Linux? Или они всё делают в Visual Studio, а потом лишь компилируют для Linux?
Выбирайте: Eclipse, Netbeans, Code::Blocks, Codelite, Qt Creator...
Вопрос стоял не о моём выборе, а о выборе Valve.
> А как вы думаете, каким IDE пользуются разработчики игр для Linux?edlin.
vim с плагинами, очевидно же
> они всё делают в Visual Studio, а потом лишь компилируют для Linux?А вы думаете что они на С пишут???? Детский сад в самом деле.
> А вы думаете что они на С пишут????Все мало-мальски вменяемые игроделы юзают си++. Не знаю считается ли это за си в вашем контексте.
> Все мало-мальски вменяемые игроделы юзают си++.справедливости ради: не очень большое подмножество.
>GL основан на си.Пора бы уже разработать стандарт OpenGL++
Не все же разрабы прикладного 3D софта программят его на плоском C.
Не все пишут код на Си++, а вот код на си можно легко задействовать практически в любом ЯП.
Биндинги к плюсовым либам делаются для любых ОО ЯП. Ну а на не ОО языках графику программить вообще не стоит.
> Биндинги к плюсовым либам делаются для любых ОО ЯП. Ну а на
> не ОО языках графику программить вообще не стоит.Из-за нефиксированности ABI, эти самые "биндинги" при выходе особо удачных версий gcc в лучшем случае нужно перекомпилировать, а в худшем - переписывать.
> Не все же разрабы прикладного 3D софта программят его на плоском C.Скорее "не все разрабы прикладного 3D софта программят его на уродливом C++". Не забывайте, что кроме С++ есть еще D, Go, OCaml, Haskell и много других хороших языков программирования. И в отличии от библиотек, написанных на си, написанные на плюсах потребуют больше гемора для написания биндингов. Так что пусть остаётся сишный OpenGL, а С++ники пусть довольствуются врапперами, ибо нефиг.
(Посмотрел на свой текущий проект, использующий одновременно pugi::xml и sqlite, пожал плечами).
Собственно, для "крестовика" не являются проблемой ни использование С-библиотек, ни написание для них С++-оберток. Жаловаться на такие вещи может только профан.
> Собственно, для "крестовика" не являются проблемой ни использование С-библиотек, ни написание
> для них С++-оберток. Жаловаться на такие вещи может только профан.Крестовик должен знать, что ABI С++ нефиксирован, поэтому "слоны идут на север".
> Крестовик должен знать, что ABI С++ нефиксирован, поэтому "слоны идут на север".Не, больше подходит отзыв на этот пароль:)
Сразу видно человека, который ничего не понимает в программировании, но очень хочет поделиться своим мнением
> Пора бы уже разработать стандарт OpenGL++
> Не все же разрабы прикладного 3D софта программят его на плоском C.У С++ по сравнению с С есть фатальный недостаток - ABI у C++ нефиксирован. Поэтому приложение должно все свои динамически слинкованные библиотеки таскать с собой.
> У С++ по сравнению с С есть фатальный недостаток - ABI у
> C++ нефиксирован. Поэтому приложение должно все свои динамически слинкованные библиотеки
> таскать с собой.Бедняга, кто тебя так?
И нечего что libstdc++.so в каждой системе своя, а приложения подхватывают ее?
> И нечего что libstdc++.so в каждой системе своя, а приложения подхватывают ее?ты сейчас большую глупость сказал.
Но все-же как никак стандартизирован. Что позволяет линковать С++ библиотеки собранные разными компиляторами.
> Но все-же как никак стандартизирован. Что позволяет линковать С++ библиотеки собранные
> разными компиляторами.удачи в линковке библиотек c++, собраных, например, gcc3 и gcc4. попробуй, поделишься потом впечатлениями.
> удачи в линковке библиотек c++, собраных, например, gcc3 и gcc4. попробуй, поделишься
> потом впечатлениями.Есть приятное осключение библиотека QT - правда ари там специально написано чтобы по возможности была бинарная совместимость ,хотя я сомневаюсь что с такими разными версиями компилятора все нормально слинкуется ,но по крайне мере наблюдал под виндой как приложение нормально работало с разными версиями библиотеки (различались на 2 подверсии ,видать просто были обновления )
там «совместимость» несколько о другом. если тебе дейтсвительно интересно — могу немножко рассказать, почему это «совсем не в тему».
Животворящий палец Линуса - таков был довод компании NVidia о важности поддержки ОС ГНУ/Линукс.
Животворящий палец Сони и МС.
Что-то в презентации графики на страницах 19 и 20 одинаковые...
А Python клевый язык ведь да?
под пиво с рыбой
"Чтение спецификаций стандарта себя оправдывает многократно."спасибо, кэпы из валве и нвидиа! :)
К сожалению, сейчас подход "некогда читать стандарт, будут проблемы - найду решение на Stackoverflow" может работать довольно долго... и человек, его применяющий, будет показывать лучшую эффективность, чем сторонник академического подхода. По крайней мере, до первого падения с костылей.
и после тоже. «команда» будет вкалывать по 20 часов в сутки без выходных, манагеру дадут премию за «оперативную реакцию на трудности».
...а тот, кто завалил проект костылями, станет ведущим специалистом, потому что никто другой в них разобраться не может ;)
Невидия идёт лесом. А вот валва да, интересно.
> Невидия идёт лесом. А вот валва да, интересно.При чтении доки не стоит забывать что нвидия описывает все со своей колокольни. У других наблюдаемая картина может и отличаться, btw.
Только не драйвера и сервера, а по-русски будет драйверы и серверы :)
На форумах, особенно профессиональных, норма - разговорная речь, а не литературная.
К построению предложения в вашем посте тоже любой филолог может прикопаться так, что мало не покажется...