Pull to refresh
1
0
Дмитрий Солдатенков @MOHUS

директор IT компании

Send message

Поскольку нужно было проходить верификацию у Кроноса на получение шильдика OpenGL ES, то работало все, причем в некоторых особо оптимизированных местах приходилось переделывать, так как не хватало точности - там конформант тесты рендерят что-то а потом берут точку и проверяют цвет и он должен быть ТОЧНО как ожидается - недопустимо чтобы был шум в младших битах и тп. Тесты на M3G были еще более придирчивы.
Поэтому Z буфер был полноценный как и все остальные фичи OpenGL ES. Это была еще первая версия, которая без шейдеров и примерно соответствовала обычному классическому старому Open GL.
А чтобы игры быстро работали применялись те же техники что и для писишных игр времен 385-486 машин. То есть либо вообще без Z буфера, либо как в Квейке - окружение рисуем без зет теста но с заполнением з буфера, а уже мелкие обьекты с полноценным зет тестом и тп. Но это уже то что выше OGL то есть игровой движок - у нас было два варианта такового. Один очень простой, а второй делался отдельной командой - там все по самым модным методикам тех времен. Есс-но везде упрощенные режимы рендеринга - без освещения и тп. Могу сказать что самые ходовые режимы рендеринга(типа только текстура без зет, только текстура с зет записьмю и тп.) были захардкожены отдельными функциями без проверок и кастомизации чтобы получить максимум скорости.
По скорости мы чутка обгоняли азиатские решения от Hi-Corp и Superscape, но чутка отставали от решения финской Hybrid, которую потом купила NVidia. Hybrid вообще использовали генерацию(с кешированием) бинарного кода для конкретных настроек конвейера, на что я замахнуться не мог. Но все равно разница была небольшая, потому что софтверный рендеринг упирается хочешь не хочешь должен делать примерно одно и то же и есть предел оптимизации.

Это было чисто в нативе, не на S60 телефонах - там была собственная платформа еще(на базе REX).
То есть доступно только своим разрабам или партнерам.
Наш M3G был доступен всем есс-но, а он базировался на нашем же OpenGL ES.

Скупая мужская слеза скатилась по небритой щеке ...
Занимался разработкой софтверной имплементации OpenGL ES и M3G(JSR-184) для LG. Моя команда еще и игры пилила для телефонов LG - аппаратная платформа близка к Nokia N-Gage по процу/памяти/экрану.
Вот несоклько разработанных нами игр - https://www.youtube.com/watch?v=8tWNL9nxVis
Вот сетевая игра по BT, видно как такие телефоны выглядели - https://www.youtube.com/watch?v=tvYmv28-sp0

Вы хотите в свое приложение подрубить ?
Нужен SDK от Зебры - https://www.zebra.com/us/en/support-downloads/software/developer-tools/emdk-for-c.html
Пишите в Телегу (+79219580642) - может помогу.

Для гибридных решений конечно надо писать екстеншены (если их еще не написали) для требуемого функционала. В качестве саморекламы могу обратить внимание на полностью бесплатное с открытым исходным кодом гибридное решение https://github.com/rhomobile/rhodes
Подробнее - https://files.tau-platform.com/Tau_Rhodes.pdf
Поддерживаем отечественные ОС, включая Аврору.

Можно использовать специализированный промышленный/корпоративный браузер и получить одинаковую по функционалу с точки зрения веб страниц платформу и на ТСД и на обычных мобилках.
Веб клиенты обычно гибче и универсальнее, особенно там где не нужны свистелки и тп (что нужно для b2c)

Востребовано это в лучшем случае для ARM, а то и вообще контроллеров каких нибудь. А тут нас поджидают проблемы. Компилятор не так чтобы круто оптимизирует. Когда я 15 лет назад писал софтверную имплементацию OpenGL ES для ARM телефонов то вообще отказался от С++ и писал на голом C и макросах — это оберегало от проблем компилятора. Например тогда он не умел работать с такими классами как у вас и не сводил это к регистру а реально создавал обьект в памяти каждый раз. Кроме того у вас всякие деления на 2, умножения и деления на степень двойки — это не факт что будет оптимизировано, поэтому все это надо делать через сдвиг конечно. Я думаю что компиляторы под всякие контроллеры тоже не так чтобы будут все это оптимизировать а поэтому лучше сразу все делать как надо. И кстати у меня были отдельно умножение с проверкой на переполнение, без и без перевода в 64 бита — короче несколько вариантов которые применялись в зависимости от места — во многих местах мы точно знаем диапазон чисел и можем ускорить операции.


В завершение приведу функцию вычисления корня — тогда это был один из самых быстрых алгоритмов. Можете сравнить с вашей реализацией.


/ signed int — 32 bit 16.16 fixed point
signed int LGE_Sqrt( signed int a)
{
register signed int root = 0;
register signed int bitSqrt;
register signed int Val = a;
register signed int s;


if (Val < 0x10000) {
    bitSqrt = 0x4000;
}
else {
    if (Val < 0x1000000) {
        bitSqrt = 0x400000;
    }
    else {
        bitSqrt = 0x40000000;
    }
}
while (bitSqrt) {
    s = bitSqrt + root;
    if (Val > s) {
        Val -= s;
        root = (root >> 1) | bitSqrt;
    }
    else {
        root = (root >> 1);
    }
    bitSqrt = bitSqrt >> 2;
}
return (root << 8) | 0xff;

}

Автор что-то путает.
Acorn Archimedes очень даже использовались в Британских школах.
Компьютер был очень продвинутый. У нас в институте было несколько комплектов. К компьютеру прилагался лазерный видеопроигрыватель для LaserDisk (полноразмерные лазерные диски 30 см, содержали 54000 изображений или около часа видео на сторону, причем это не компреcсированное видео - просто каждый кадр записан, как audio compact disk) - в компьютере была установлена микширующая плата - на мониторе можно было проигрывать, управляя с компьютера, видео или стопкадр с диска, а поверх накладывать компьютерное изображение с маской (в отличие от скажем плат типа screen machine для PC тех лет). Кроме того в компьютере была стерео 16 битная звуковая карта ! Использовалась собственная RISC OS с окнами, таскбаром внизу и тп. Также прилагались диски образовательного содержания для школьников. Тога это все было просто космос, потому что те же CD для PC только появились и были редкими и односкоростными, звуковухи обычно 8 бит моно и тп. А тут качество видео и изображений идеальное, до которого дошли только во времена DVD.
Я программил под эти компы. Помню там были весьма извратные видеорежимы с 256 цветами, причем 4 бита это номер цвета из палитры, а 4 бита - модификация RGB цвета из палитры, чтобы типа можно было делать гуй под любую палитру.

С железом плохо то что на макбук 2011 не встанет Мохаве, а новый ИксКод с СДК от 13 (сейчас 13.1) ТРЕБУЕТ Мохаве.Сам в этом году апнул работающий макбук про 2011 на макбук про 2015 из-за этого. А равно пришлось апнуть айфон 6 плюс на XR из-за того что iOS 13 не встает на iPhone 6 (но это в принципе нормально- телефон старый — 5 лет уже).
Но с апгрейдом макбука обидно — было i7 16 Gb SSD и стало i7 16Gb SSD. Ну видяха быстрее да — игры лучше идут, но мне это не нужно. Изменения в скорости компиляции и т.п. незаметно.
Но больше всего раздражает огораживание.
Приведу пример — я занимаюсь платформой для гибридных приложений.
Сейчас Apple запрещает UIWebView и требует использовать WKWebView. Но если раньше можно было спокойно перехватывать все http запросы внутри приложения (идущие от WebView) то теперь этого НИЗЗЗЯ. Почему? Зачем? Патамушта! А это реально важно блин в нашей сфере. Под стонами разрабов Эпол таки дали возможность перехватытвать запросы к кастомным схемам из WkWebView, НО! запрещено ставить свой перехватчик для http/https ПОЧЕМУ ?! Авот! Есс-но можно и сломать, но блин возникают риски размещения приложения в АппСторе. Почему не сделать нормально? Зачем эти ограничения ВНУТРИ приложения ?!

Фотошоп был говном, до тех пор пока Adobe в 1994-м не купил фирму Aldus, чей Photostyler был великолепен, потом постепенно фотошоп стал лучше - не знаю наработки или просто девелоперов использовали.

Это не так. Предположим что вы "клепаете формочки" и вдруг на мизерную ЗП пришел человек, который "для развлечения и удовольствия дома пишут на ассемблере" и знает все языки и тп. Возьмет ли его реальный бизнес? НЕТЪ! Есть такое понятие — оверквалифайед — то есть квалификация существенно избыточна. В чем проблема такого кандидата — представьте что вам предлагают Мерседес по цене Жигулей. Заманчиво. Но в реале это как минимум настораживает — с чего это вдруг Мерседес по цене Жигулей — может он в угоне, он собран из говна и палок оставшихся после крушения нескольких Мерседесов и тп? В реальной жизни многие именно так и подумают и скорее всего откажутся от такого предложения — ибо да ну его нафиг. И это в среднем разумно. То же и с кандидатами, только в другой плоскости. Почему человек легко способный найти работу на 300к идет к вам на 60к? Он дурак? Даже если ему просто нужны любые деньги СЕЙЧАС, очевидно что он скоро уйдет на другую работу — на ту ЗП на которую он реально стоит или ему будет скучно и он забьет на работу и тп. Может он запойный? Не бывает так что товар (а работник продает вам товар — себя в аренду) вдруг стоит сильно дешевле рынка. Обычно разбираться никто не будет и просто откажут.
Единственный вариант если вы вдруг встретили такого спеца и проверки показали что он чист и проблем нет — это дать ему работу на ту ЗП на которую он стоит.
Ну или промежуточные варианты, вот пример из моей практики — взял человека который показал интересные проекты со времен школы и ВУЗа, но потом пару лет работал программером в каком-то НИИ и соответственно загнил там. Но я увидел потенциал и взял — директор не одобрил мое решение, но через 2-3 месяца, когда человек освоился с нормальной работой и режимом — человек стал давать хороший выход продукта.
Или другой пример — взяли человека с отличным опытом, но к сожалению с отсутствием в резюме нужных для "девочек-рекрутеров" ключевых слов. Впрочем довольно быстро добрав эти слова в резюме он стал у нас получать ЗП не ниже рынка для своих скилов — тут нам просто повезло что у нас распространена схема поиска работников типа — "я же НАЧАЛЬНИК, не царское это дело резюме читать — вот пусть девочка нихрена не понимающая в нашей работе читает и отбирает мне нужных кандидатов".

Одна из воксельных первых игр — Comanche: Maximum Overkill (PC/DOS) 1992, Novalogic Inc
https://www.youtube.com/watch?v=Uc3zGZnI6ak
Могу сказать что по тем временам это было ОЧЕНЬ КРУТО. Ведь Doom вышел только в 93-м, так что на этот момент был только Wolf 3D.
для отрисовки вокселей использовали алгоритм похожий на рейкастинг в Вольф 3Д, отсюда производительность.

Да сеньор может иметь денег больше даже чем тимлид, но тимлид это только менеджер ПЕРВОГО звена — самый низкий уровень в менеджменте. Но в то же время это необходимая ступень чтобы стать менеджером среднего звена и потом высшего. Думаю не стоит упоминать что у этих категорий ЗП ощутимо выше.
Короче говоря вопрос о достатке сложнее — надо учитывать перспективу.
Есть пример из другой деятельности — в США при сравнении доходов слесаря и юриста выясняется что по совокупному доходу за все время работы юрист обгоняет слесаря чуть ли не к 40 годам только — потому то пока юрист учится, работает за еду набираясь опыта и тп — слесарь неплохо зарабатывает. Зато потом доходы юриста растут и растут, а слесаря остаются какими были — там потолок гораздо ниже и раньше. И если рассматривать ситуацию после школы, то можно сказать что юрист на ближайшие лет 10-15 точно будет сильно уступать слесарю. Стоит ли вообще идти в юристы? Однако реальная жизнь в США показывает что ответ довольно однозначный (в случае конечно наличия ВОЗМОЖНОСТИ пойти в юристы).
Кроме того, если говорить про Россию, то у нас карьера обычно имеет только один путь — в тимлиды и далее по менеджменту, а синьоры не могут расти долго и высокого по доходам, в отличие от запада.
И последний аспект — на определенном этапе наступает желание создать свое дело и возникает вопрос — где как не в должностях менеджеров можно набраться необходимого опыта? Тото и оно.

Все мы конечно знаем что Муртазин — Ведущий мобильный аналитик (см соотв. статью на Лурке), но в данном случае Нокия была целенаправленно разрушена как игрок на мобильном рынке. То что делал Элоп это откровенный саботаж и планомерное уничтожение компании. Да конечно есть еще дополнительные проблемы в виде раздудых штатов и неэффективности разработки у Нокии, но тем не менее — Маемо выглядел вполне готовым и если бы он тогда вышел то именно он был бы реальным конкурентом "молодых" и скорее всего смог бы если не победить то откусить значимую долю рынка.

Симбиан должен был умереть, потому что был говном и тащил кучу легаси говна. Разрабатывать под него было муторно, Нокия чинила и улучшала, но было очевидно что это все равно говно. Именно поэтому Нокия и не планировала далее развивать Симбиан, а сосредоточила усилия на разработке замены, которой стал проект Maemo. И это было очень круто, на Linux, c виджетами и тп. И стратегия Нокия была понятна и правильна — сначала они хотели обкатать новую ОС и выпускали небольшие "планшеты" с ней, потом начали бы перетаскивание на смартфоны и я уверен что все было бы чики-пики. НО! тут США провела крайне успешную операцию по уничтожению конкурента и новый засланный CEO очень быстро все остановил, проекты закрыл и даже уничтожил в прямом смысле слова — Нокии предлагали продать наработки, но Элоп отказался и наработки были уничтожены. Нокии, как лидеру мобильного рынка пришел габздец. Засланный CEO вернулся домой с почетом и повышением.
Причины провала Windows Phone также очевидны — не имея НИКАКИХ преимуществ перед молодыми и слабыми iOS и Android, виндофон имел важный существенный недостаток — отсутствие возможности портировать C/C++ код в знакомой среде. Что привело к тому что софта было мало и никто не хотел переписывать мегатонны кода ради чего, а ради чего собственно? Рынок виндофона мал, потому что под него мало софта, а мало софта потому что его не хотят с геморроем писать девелоперы, поэтому софта мало и рынок мал и тп. А мелкософт не понимая куда все идет, продолжали тупо гнуть свою линию и в итоге надорвались — пока они там принимали гордые позы рынок ушел к молодым и рьяным.

У Этих дисков было еще и мультимедиа применение.
Например в английских школах было много компьютеров Archimedes(выпускался с 87-го до середины 90-х) фирмы Acorn (предтеча ARM). С этим компьютером шел штатный видеопроигрыватель как раз таких больших лазерных дисков, а сам компьютер умел совмещать изображение с диска и собственной графики. Кроме того у него была 16-битная звуковая плата и оконная ОС (называлась RISC OS).
Соотв были разработаны различные учебные малтимедиа диски для школ. В чем там смысл:


  1. можно показывать видео отличного качества (в то время лучше просто ничего небыло)
  2. поскольку видео было некомпрессированным, то вместо видео можно было записать аналогичное количество отдельных изображений, опять же в хорошем качестве. Насколько помню влезало что-то около 50-ти тысяч!

То есть на один диск записывалось МНОГО изображений (которые можно было воспроизводить с компьютера позиционируя на кадр и включая режим стоп-кадр. И также МНОГО коротких видеофрагментов.
На дискетах шел сам софт.
И далее шло примерно так — школьнику показывали видео с обьянсениями вперемежку с текстом и картинками. Затем предлагали различные задания при этом все возмжные варианты заранее были записаны в виде изображения или видео — помню например про баланс — там был штангист и набор блинов — надо было блины навесить на штангу чтобы слев аи справа было одинаково — и на диске были ВСЕ возможные комбинации + несколько виде когда штангист кренится влево, вправо и стоит прямо. То же самое и с другими опытами.


В самом начале 90-х и у нас в РФ делали подобные продукты — например был разработан мультимедиа лазерный диск "Русский музей" с видеофрагментами и набором изображений (софт тоже на дискетах).

На iOS еще хуже. Нельзя вебвьюхи неродные, нельзя даже джавасрипт движки.
Если разработка для корпоративного сектора с внутренней дистрибуцией (а в крупняке обычно именно так) то вобщем можно и забить, но в АппСтор не пустят.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity