Думаю, опыт обслуживания механики, работающей десятки или уже сотни лет без остановки, у человечества есть. Биг Бэн, к примеру. Или — по недавно прочитанному — в МБР семейства Минитмен стоят гироскопы, где узлы повышенного трения выполнены из рубина. Это сделано потому, что когда Минитмены разрабатывались, не умели делать быстро приводимые в действие гироскопы, и перед запуском автоматике их надо было долго и мучительно раскручивать — а ракета должна быть готова к запуску сразу же, через минуты после приказа. Принятое решение было непростым. И теперь за счëт "рубинового" подвеса гироскопы работают на максимальных оборотах без остановки весь срок стояния ракеты на боевом дежурстве, не нуждаясь ни в какой в предварительной раскрутке. Электричества, полагаю, это жрëт массу… но, вероятно, до сих пор (чуть меньше полувека?) в таком варианте система может стоять на вооружении, а гироскопы — наматывать обороты тысяча за тысячей.
В этом-то и проблема — мозг воспринимает ситуацию с возможностью ВНЕЗАПНОГО появления наблюдателей и критики посреди мыслительного процесса как тревожную. Это как знать (простите за неприятную аналогию), что, посреди посещения санузла, в Вашу кабинку может распахнуться дверь и ворваться с проверкой наряд полиции. Вроде и ничего стыдного в посещении уборной нет, и задержать Вас не за что — а всё равно расслабиться и сосредоточиться уже не получится.
P.S. Переговорных нет. Всё огромное крыло этажа, по сути, одна большая комната. И так всё здание: мега-комнаты порой не отделены от коридоров ничем. Старая планировка — она вроде ада для интровертов :) для личных разговоров по телефону едва не на крышу порой приходится выбираться :)
Вот интересно, у меня ли одного так, но почему-то, когда на работе нечего делать, не выходит заняться чем-то полезным по-настоящему эффективно. Вокруг на работе сидит множество людей, и даже если они ведут себя спокойно, не говорят громко и не ходят рядом, мозг всё равно не желает переходить в состояние «сядем и спокойно всё обдумаем». Мозг вместо этого работает в режиме «бей или беги» — или бери и немедленно педалируй не требующую обдумывания задачу (двигай кнопки, пиши 125-ю необязательную форму...), или залипай без дела в интернетах.
Вот и залипаешь. Вдумчиво отстраниться и заняться, например, самообучением не выходит.
Причём вроде бы никто и не надзирает с хлыстом за процессом твоего самосовершенствования, и ругать не будут, но в воздухе висит некое чувство… незащищённости от внезапного прерывания мыслительно-экспериментаторского процесса на самом уязвимом месте и внезапной критики, что ли. И вроде бы даже никто не умрёт, если товарищ выпрыгнет из-за монитора и ехидно спросит — «ну-у, и что это мы такое тут программируем?» (а некоторых хлебом не корми, дай только так выпрыгнуть) — но всё равно искра желания заняться полезной деятельностью гаснет при подобной мысли.
С таким — как бороться?
Backface culling я и имел в виду. Если модели сделаны по уму, импортированы верно, и полигоны не double-sided, то дальние заслонëнные грани объекта будут отброшены и не нарисуются. Это копеечная по трудоëмкости операция, и Юнити это делает, да.
Про память — разговор особый. По статье просто так читается, что именно отрисовка и оптимизируется. Про загрузку шины памяти — вот это надо обдумать. Велик ли импакт на рядовых мобильных моделях?
Но разве этим стандартные механизмы culling-а движка не занимаются? Отсечение невидимых вершин — то, что базово умеют все игровые движки уже лет 10.
Интересно было бы увидеть сравнение производительности с и без Вашего механизма.
P.S. Для Unity есть гораздо более эффективный способ оптимизации — отключать скрипты невидимым игроку объектам. Когда объект не в кадре — он не рисуется, но его физика работает, коллизии считаются, скрипты действуют, и всë это бодро кушает ресурсы. Большие движки раньше умели это отключать, а вот Unity не умеет. Я написал крохотный оптимизатор, который это всë делает (можно выборочно и при определëнных условиях). В нагруженных сценах даëт прирост до 20%. Могу поделиться наработками по этому методу, если интересно :)
Вообще, дыр, судя по всему, огромное количество. Страшно подумать, что будет, если это начнут ковырять всерьёз. Меня, в своё время, впечатлило вот это (перекликается с темой статьи, кстати).
Очень просто получить «быстрый старт» с чего-то, имеющего вменяемый и доступный GUI, типа SmartGit. Я вот начинал знакомство с системы контроля версий Mercurial, к которой по умолчанию прилагается неплохой такой GUI-клиент TortoseHg. Не пир духа, но, ИМХО, гораздо вменяемее «изкоробочного» git gui. ЕМНИП, покорило то, что диффы представлены в максимально наглядном (читай «и дураку понятном») виде, можно поправить файлы оттуда же перед коммитом, и, что особо ценно, можно откатить изменения одной-двух строк, а не всего файла.
Когда я начал работать там, где Git был стандартом (и особо в чести была консольная работа с ним), то — после неудачного эксперимента по спариванию разных систем контроля версий при помощи бриджей (ещё то извращение, бррр!) — я долго выл на тему «изверги, неудобно же без визуальных плюшек!».
А потом мне дали SmartGit. Он покрывает 95% джуновских потребностей в Гите и 60-70% потребностей сеньора. Сложные и замороченные вещи в нём делать сложно, зато простые вещи — очень и очень просто. Как показал опыт — новые бойцы втягиваются в Гит где-то после часа инструктажа по интерфейсу SmartGit, и новых проблем (при условии адекватности бойца) он сам по себе создавать не склонен. Рекомендую!
Дома хранятся сотни дисков разного возраста, качества и происхождения. Хранится, кажется, даже что-то досовских времён. Иногда, под настроение, кое-что из коллекции достаётся, обдувается, ставится и перепроходится. Недавно вот прошёл первую Majesty с замечательной пиратской локализацией, бегающей даже под Семёрку (что удивительно, ибо оригинал вроде не способен) под звуки тёплой и ламповой CD-музыки. Шуршание диска в приводе, когда начинается новая дорожка… да и само удовольствие от обладания физической копией… таких приятных мелочей не хватает нынешним Стимовским играм.
Вот я долго думаю — а как её, собственно, выкидывать иначе? Даже если представить, что в округе появятся пункты раздельного сбора мусора — то как организовать этот самый сбор дома? Иметь на кухне три-четыре разных мусорных ведра? Я видел кухни площадью в 2 квадратных метра, где человек-то умещается с трудом. Эх.
Когда-то давным-давно, во времена моего детства, это называлось CASE-системами, и было жутко перспективным… я даже сам писал такие простенькие редакторы, которые транслировали нарисованные по правилам блок-схемы в код программ для своего крооохотного интерпретируемого языка. Visual Basic 6, Win98, было время. CASE-системы нынче почти вымерли, а идея… хм… до сих пор жутко перспективна :)
Проблема Bluetooth-гарнитуры в том, что её надо заряжать. Я, как раз наоборот, перешёл от беспроводных гарнитур к проводным. Дома и так уже розетки торчат во все стороны хвостиками USB-зарядников. Пришёл домой — телефон зарядить, часы зарядить, планшет зарядить, powerbank зарядить, запасной powerbank зарядить… перефразируя анекдот про придирчивого грибника, «гарнитуру уже не заряжал — надоело». А оказаться без заряженной гарнитуры (а она разряжается внезапно, индикации процентов там нет) где-нибудь в самом неподходящем месте, и потом сидеть, чувствуя на ухе свисающий проводок от powerbank-а… чудные вы, о беспроводные технологии! :)
Обычные наушники, как-никак, «каши не просят», подходят к любому устройству, а ещё имеют замечательную фишку мгновенной остановки плеера по выдёргиванию из разъёма (удобно, чтобы не лезть в телефон, если внезапно потребовался слух), да и позволяют контролировать наличие телефона в кармане (беспроводная гарнитура продолжит играть, даже если телефон уже покинул владельца), а если он падает из рук — то, при определённом везении, поймать за проводочек :)
Но это у кого какие сценарии использования техники, впрочем.
Хм, любопытно, а когда уже сделают чемоданы с собственными движителями? Если груза весьма немного (1-5 кг), и перемещаешься по европейским ландшафтам, то маленькие колёсики самого простого чемодана вполне себе ничего катятся. Но если человек едет с грузом (10-15 кг и больше), да ещё и по камням, лужам и грязище, перебираясь с одного вида общественного транспорта на другой, то тягать такую тяжесть по плохо проходимым ландшафтам скоро отваливаются руки. Уже сколько лет мечтаю о большом чемодане на крупных "внедорожных" колёсах или гусеницах, и с маленьким электромоторчиком. Можно без более сложной электроники.
А много ли корысти в майнинге на телефоне? Вычислительные мощности, конечно, имеются, но разве процессор телефона не уступает этак минимум на порядок в эффективности нужных операций среднему GPU ПК? Или это, как в том анекдоте, по принципу «так ведь десять бабулек — рубль»?
В любом случае, с телефона, скорее всего, можно получить больше денег той же рекламой-из-под-полы, разве нет?
Во-первых, весьма круто! :)
Я в одно время тоже занимался воссозданием на ПК игры с другой платформы (чтобы человек, который любит эту игру, освободил девайс от регулярных баталий длительностью в пол-дня) — так что могу понять, как иногда сложно воспроизвести действия AI, анализируя их шаблоны поведения «на глазок».
А, во-вторых, Вы случайно написали заново Qt :) Он как раз и рождён с задумкой, чтобы дать программисту возможность натыкать кнопочек без забот, как внутри оно реализуется средствами платформы :)
По сути, весь этот кроссплатформенный интерфейс с лёгкостью и долей удовольствия в пол-пинка делается с использованием Qt, а потом также в пол-пинка собирается и везде работает одинаково. Осваивается Qt на уровне «сделать интерфейс» за пару недель не очень активного копания, удобен, вредных привычек не вырабатывает. Как сказал один товарищ, «жизнь слишком коротка, чтобы писать велосипеды».
В третьих, немного удивительный способ рисования содержимого экрана. Можно и так, конечно, но… почему именно так? В объектной парадигме оно нынче как-то привычнее (и, после того, как я попробовал оба варианта, то, ИМХО, удобнее).
Что интересно, уже с пару лет у многих нормально не работает Маркет на 4.0.3 (общался с другими владельцами устройств с близкими версиями) — попытка закачать приложение приводит к сообщению «Недостаточно места», хотя места может быть с избытком. Решением, неожиданно, оказалось удаление всех обновлений Маркета с возвращением его к первозданной версии, а далее — быстрый вход в него и закачка нужного приложения шустро-шустро, пока Маркет не успел обновиться и сломаться обратно :)
Любопытная статья. Вспомнилась замечательная игра Abuse, где в движок был встроен интерпретатор, а вся внутриигровая логика была реализована на лежащем в почти открытом видел LISP-е. Отдельные товарищи переписывали скролл-шутер в тетрис :)
Вспомнилась байка про одного нашего космонавта. В те времена из уже сформированного экипажа выбыл один из членов, и полететь вместо него хотелось многим. Он же не входил в число кандидатов, рассматриваемых в первую очередь, и его просьбы игнорировались. Тогда он набрался духу, перехватил где-то кого-то из великих, и как на духу сказал:
— Лететь хочу!
— До тебя ко мне уже десять человек приходило, и как только не просили. Тоже будешь мне рассказывать про величие миссии, прорыв советского человека, и то, что жизнь готов ради нашей страны отдать?
— Не-а. Я вообще-то просто слетать и живым вернуться хочу. Для того и прошусь.
Великий почесал в затылке и по-другому взглянул на кандидата. В итоге, полетел именно он.
С некоторой теплотой вспоминаю старые телефоны, спрашивавшие по факту совершения действия:
"Камрад, тут эта штука намерена отправить SMS. Мы ей разрешим?
[Да] [Всегда] [Нафиг]"
В хозяйство у родственников переселялась машина на Athlon 3000+ (1800 МГц) с 1 Гб RAM. Вполне достаточно для Windows XP и Skype, но с браузерами была беда. То, что не вешалось при запуске и не рисовало странички по пять минут, настолько устарело, что в тот же ВК уже не получалось даже зайти.
Поругался, дунул, плюнул, и поставил вроде как последнюю сборку К-Мелеона. Заработало, и довольно шустро, однако!
Интерфейс был непривычен, однако, моя бабушка освоила его и по мере возможностей использует для общения, просмотра видео и веб-серфинга — только чтобы вкладок много не плодить, и нормально.
Зауважал сей браузер :)
Думаю, опыт обслуживания механики, работающей десятки или уже сотни лет без остановки, у человечества есть. Биг Бэн, к примеру. Или — по недавно прочитанному — в МБР семейства Минитмен стоят гироскопы, где узлы повышенного трения выполнены из рубина. Это сделано потому, что когда Минитмены разрабатывались, не умели делать быстро приводимые в действие гироскопы, и перед запуском автоматике их надо было долго и мучительно раскручивать — а ракета должна быть готова к запуску сразу же, через минуты после приказа. Принятое решение было непростым. И теперь за счëт "рубинового" подвеса гироскопы работают на максимальных оборотах без остановки весь срок стояния ракеты на боевом дежурстве, не нуждаясь ни в какой в предварительной раскрутке. Электричества, полагаю, это жрëт массу… но, вероятно, до сих пор (чуть меньше полувека?) в таком варианте система может стоять на вооружении, а гироскопы — наматывать обороты тысяча за тысячей.
P.S. Переговорных нет. Всё огромное крыло этажа, по сути, одна большая комната. И так всё здание: мега-комнаты порой не отделены от коридоров ничем. Старая планировка — она вроде ада для интровертов :) для личных разговоров по телефону едва не на крышу порой приходится выбираться :)
Вот и залипаешь. Вдумчиво отстраниться и заняться, например, самообучением не выходит.
Причём вроде бы никто и не надзирает с хлыстом за процессом твоего самосовершенствования, и ругать не будут, но в воздухе висит некое чувство… незащищённости от внезапного прерывания мыслительно-экспериментаторского процесса на самом уязвимом месте и внезапной критики, что ли. И вроде бы даже никто не умрёт, если товарищ выпрыгнет из-за монитора и ехидно спросит — «ну-у, и что это мы такое тут программируем?» (а некоторых хлебом не корми, дай только так выпрыгнуть) — но всё равно искра желания заняться полезной деятельностью гаснет при подобной мысли.
С таким — как бороться?
Backface culling я и имел в виду. Если модели сделаны по уму, импортированы верно, и полигоны не double-sided, то дальние заслонëнные грани объекта будут отброшены и не нарисуются. Это копеечная по трудоëмкости операция, и Юнити это делает, да.
Про память — разговор особый. По статье просто так читается, что именно отрисовка и оптимизируется. Про загрузку шины памяти — вот это надо обдумать. Велик ли импакт на рядовых мобильных моделях?
Но разве этим стандартные механизмы culling-а движка не занимаются? Отсечение невидимых вершин — то, что базово умеют все игровые движки уже лет 10.
Интересно было бы увидеть сравнение производительности с и без Вашего механизма.
P.S. Для Unity есть гораздо более эффективный способ оптимизации — отключать скрипты невидимым игроку объектам. Когда объект не в кадре — он не рисуется, но его физика работает, коллизии считаются, скрипты действуют, и всë это бодро кушает ресурсы. Большие движки раньше умели это отключать, а вот Unity не умеет. Я написал крохотный оптимизатор, который это всë делает (можно выборочно и при определëнных условиях). В нагруженных сценах даëт прирост до 20%. Могу поделиться наработками по этому методу, если интересно :)
Когда я начал работать там, где Git был стандартом (и особо в чести была консольная работа с ним), то — после неудачного эксперимента по спариванию разных систем контроля версий при помощи бриджей (ещё то извращение, бррр!) — я долго выл на тему «изверги, неудобно же без визуальных плюшек!».
А потом мне дали SmartGit. Он покрывает 95% джуновских потребностей в Гите и 60-70% потребностей сеньора. Сложные и замороченные вещи в нём делать сложно, зато простые вещи — очень и очень просто. Как показал опыт — новые бойцы втягиваются в Гит где-то после часа инструктажа по интерфейсу SmartGit, и новых проблем (при условии адекватности бойца) он сам по себе создавать не склонен. Рекомендую!
Обычные наушники, как-никак, «каши не просят», подходят к любому устройству, а ещё имеют замечательную фишку мгновенной остановки плеера по выдёргиванию из разъёма (удобно, чтобы не лезть в телефон, если внезапно потребовался слух), да и позволяют контролировать наличие телефона в кармане (беспроводная гарнитура продолжит играть, даже если телефон уже покинул владельца), а если он падает из рук — то, при определённом везении, поймать за проводочек :)
Но это у кого какие сценарии использования техники, впрочем.
Хм, любопытно, а когда уже сделают чемоданы с собственными движителями? Если груза весьма немного (1-5 кг), и перемещаешься по европейским ландшафтам, то маленькие колёсики самого простого чемодана вполне себе ничего катятся. Но если человек едет с грузом (10-15 кг и больше), да ещё и по камням, лужам и грязище, перебираясь с одного вида общественного транспорта на другой, то тягать такую тяжесть по плохо проходимым ландшафтам скоро отваливаются руки. Уже сколько лет мечтаю о большом чемодане на крупных "внедорожных" колёсах или гусеницах, и с маленьким электромоторчиком. Можно без более сложной электроники.
В любом случае, с телефона, скорее всего, можно получить больше денег той же рекламой-из-под-полы, разве нет?
Я в одно время тоже занимался воссозданием на ПК игры с другой платформы (чтобы человек, который любит эту игру, освободил девайс от регулярных баталий длительностью в пол-дня) — так что могу понять, как иногда сложно воспроизвести действия AI, анализируя их шаблоны поведения «на глазок».
А, во-вторых, Вы случайно написали заново Qt :) Он как раз и рождён с задумкой, чтобы дать программисту возможность натыкать кнопочек без забот, как внутри оно реализуется средствами платформы :)
По сути, весь этот кроссплатформенный интерфейс с лёгкостью и долей удовольствия в пол-пинка делается с использованием Qt, а потом также в пол-пинка собирается и везде работает одинаково. Осваивается Qt на уровне «сделать интерфейс» за пару недель не очень активного копания, удобен, вредных привычек не вырабатывает. Как сказал один товарищ, «жизнь слишком коротка, чтобы писать велосипеды».
В третьих, немного удивительный способ рисования содержимого экрана. Можно и так, конечно, но… почему именно так? В объектной парадигме оно нынче как-то привычнее (и, после того, как я попробовал оба варианта, то, ИМХО, удобнее).
— Лететь хочу!
— До тебя ко мне уже десять человек приходило, и как только не просили. Тоже будешь мне рассказывать про величие миссии, прорыв советского человека, и то, что жизнь готов ради нашей страны отдать?
— Не-а. Я вообще-то просто слетать и живым вернуться хочу. Для того и прошусь.
Великий почесал в затылке и по-другому взглянул на кандидата. В итоге, полетел именно он.
С некоторой теплотой вспоминаю старые телефоны, спрашивавшие по факту совершения действия:
"Камрад, тут эта штука намерена отправить SMS. Мы ей разрешим?
[Да] [Всегда] [Нафиг]"
В хозяйство у родственников переселялась машина на Athlon 3000+ (1800 МГц) с 1 Гб RAM. Вполне достаточно для Windows XP и Skype, но с браузерами была беда. То, что не вешалось при запуске и не рисовало странички по пять минут, настолько устарело, что в тот же ВК уже не получалось даже зайти.
Поругался, дунул, плюнул, и поставил вроде как последнюю сборку К-Мелеона. Заработало, и довольно шустро, однако!
Интерфейс был непривычен, однако, моя бабушка освоила его и по мере возможностей использует для общения, просмотра видео и веб-серфинга — только чтобы вкладок много не плодить, и нормально.
Зауважал сей браузер :)