Компьютерные игры давно вошли в нашу жизнь. Переносные устройства для игр тоже существуют давно. И, конечно же, с появлением мобильных телефонов, КПК и других носимых устройств игры проникли и на них. С развитием смартфонов (смеси КПК и мобильного телефона) игры на них становились всё более требовательными и графически интересными. Индустрия игр настолько развилась, что игры типа Genshin Impact или Fortnite отлично работают на смартфонах, а Doom (часто благодаря Raspberry Pi) запускают даже на тостере или кишечной палочке. Однако сейчас разговор пойдёт скорее об энтузиастах и других ОС.
Рубрика «С++» - 2
Как энтузиасты на мобильную систему «Аврора» портировали игры
2024-09-26 в 13:33, admin, рубрики: doom 3, quake, retroarch, Аврора, аврора 5.0, ОМП, открытые мобильные платформы, портирование игр, ретрогейминг, С++Приветствую, читатели!
Через данный цикл уроков хочу воплотить мини мечту по разработке движка для игры Arcanum. Далее опишу мои вводные. Всё я это делаю по фану. Поэтому некоторые вводные могут быть даже пугающими и просто странными, но хочется не только написать движок, но и поработать с тем старым ретро железом и софтом 20-ти летней давности.
-
Мотивация
Да здравствует кастомный автозвук, или Мой DIY Bluetooth-пульт на основе ESP32
2024-08-08 в 14:07, admin, рубрики: C, C++20, DIY, diy или сделай сам, esp32, fpga, internet of things, IoT, open source, qt, stm32, Verilog, автоматизация, Интернет вещей, лаборатория касперского, микроконтроллеры, Программирование, программирование микроконтроллеров, С++, схемотехника, электроника, Электроника для начинающих
Меня зовут Евгений Глейзерман, я — Head of KasperskyOS IoT Protection Development в «Лаборатории Касперского». Отвечаю за различные IoT-продукты на собственной микроядерной операционной системе KasperskyOS: шлюзы, контроллеры, блоки телематики и т. д. А еще я иногда ковыряю устройства поменьше, на которые KasperskyOS пока установить нельзя. В данной статье хочу рассказать о своем хобби-проекте и поделиться возможностями esp-32 на примере DIY-девайса для автозвука: как я собрал пульт, регулирующий громкость по Bluetooth, взяв за основу популярный микроконтроллер.
Читать полностью »
4 типовые ловушки в работе со строками в С и С++ и как их избежать
2024-07-30 в 11:35, admin, рубрики: безопасность данных, С++, строки, уязвимостиНекорректное использование строк может стать настоящей ахиллесовой пятой защиты программы. Поэтому так важно применять актуальные подходы к их обработке. Под катом разберём несколько паттернов ошибок при работе со строками, поговорим о знаменитой уязвимости Heartbleed и узнаем, как сделать код безопаснее.
Как malloc сломала JPGLoader в Serenity, или как выиграть в лотерее
2024-07-14 в 9:00, admin, рубрики: jpgloader, malloc, RGB, ruvds_перевод, SerenityOS, UNIX, баги, С++Пару лет назад мне выпала возможность расследовать в SerenityOS интересный баг, связанный с декодированием изображений JPG, которые по какой-то причине при просмотре выглядели так, как вы видите выше.
Странно, не так ли? Похоже, будто просто перепутали RGB и BGR. При этом внесение в JPGLoader.cpp
следующего изменения:
- const Color color { (u8)block.y[pixel_index], (u8)block.cb[pixel_index], (u8)block.cr[pixel_index] };
+ const Color color { (u8)block.cr[pixel_index], (u8)block.cb[pixel_index], (u8)block.y[pixel_index] };
context.bitmap->set_pixel(x, y, color);
приводит к корректному показу картинки. Вроде бы можно считать дело закрытым!
…Но нет. Возникает вопрос, почему вообще произошёл этот сбой?Читать полностью »
Андреас Клинг, его операционная система SerenityOS и браузер Ladybird
2024-07-01 в 9:00, admin, рубрики: Andreas Kling, Ladybird, ruvds_статьи, safari, SerenityOS, webkit, операционные системы, С++Говорят, что в спортзале сильнее всех выкладываются бывшие алкоголики и наркоманы, они работают из последних сил. И это наблюдение не только из спорта, но и из других сфер жизни. Если люди склонны к зависимости, это может проявиться в разных увлечениях, куда они погружаются с головой: трудоголизм, женщины, хобби, гурманство, коллекционирование и т. д. Каждому делу они словно отдаются целиком.
Взять к примеру шведского программиста Андреаса Клинга (Andreas Kling). В 2018 году он вышел из государственной клиники реабилитации наркоманов после трёхмесячного курса — и в качестве хобби начал разработку операционной системы SerenityOS. Нужно было чем-то занять свободное время и избавиться от посторонних мыслей. Создание новой ОС вполне подходит для такой задачи.
За несколько лет SerenityOS стала одним из крупнейших опенсорсных проектов в мире с тысячами контрибуторов. Приятный интерфейс в стиле 90-х, Unix-подобное ядро и лучшие идеи из других ОС — вот рецепт успеха.
Читать полностью »
Древнее зло
Язык С++ по-настоящему стар. Казалось бы это должно идти ему на пользу, как хорошему вину. Но этому мешает обратная совместимость. Хорошая идея, если бы она работала...
Давайте просто честно признаемся: ни один из стандартов не был обратно совместим. ВСЕГДА реальные проекты требовали миграции и адаптации не то что под новую версию стандарта, но даже под новую версию компилятора. Чем больше проект, тем больше усилий, и порой фатальных. Уверен, среди читающих найдется человек, у которого на работе все еще 98й стандарт С++.
Реверс-инжиниринг нативно скомпилированных .NET-приложений
2024-05-18 в 8:01, admin, рубрики: .net, .net 7, AOT, Binary Ninja, ecma, elf, Ghidra, hello world, mach-o, path, pe, timeweb_статьи_перевод, реверс-инжиниринг, С++Изучение внутреннего устройства приложений, созданных с использованием нативной опережающей компиляции (AOT).
На платформе .NET 7 впервые была представлена новая модель развертывания: опережающая нативная компиляция. Когда приложение .NET компилируется нативно по методу AOT, оно превращается в автономный нативный исполняемый файл, оснащённый собственной минимальной средой исполнения для управления выполнением кода.Читать полностью »
Каков C++ в gamedev’e?
2024-02-25 в 20:32, admin, рубрики: Gamedev, разработка, разработка игр, С++, управление проектамиХотел написать продолжение к статье Что почитать игровому программисту? про использование С++ в игровых движках, но размышления свернули куда-то не туда.