Сегодня первой игре из серии DOOM исполняется ровно 30 лет! Мы не могли обойти стороной это событие и в честь этого решили посмотреть, как же выглядит код этой легендарной игры спустя годы.
Рубрика «c++» - 2
30 лет DOOM: новый код — новые баги
2023-12-10 в 11:12, admin, рубрики: bugs, c++, DOOM, Gamedev, gamedevelopment, id software, баги, ошибки в коде, разработка игрLesta Studio и её тестовое задание с подвохом
2023-12-09 в 10:30, admin, рубрики: c++, lesta games, qt, собеседование, собеседование в IT, собеседование на работу, собеседования в ит, тестовое заданиеИскали статеечку с жалобами джуна о несправедливости IT? Так вот же она!
В чём суть истории
Подал резюме в Lesta Studio. HR связалась, рассказала о командах. Назначили технический собес. Задавали вопросы по C++, на всё ответил. На вопросы по ОС показал себя плохо. В итоге сошлись на том, что нужно дать мне тестовое задание на многопоточку. До свиданья, до свиданья, HR пришлёт вам задание.
В итоге HR сообщает, что тестовое изменили, и теперь ты будешь делать на Qt редактор списка объектов. Срок неделя. Классика.
Вы точно хотите пойти программистом в gamedev?
2023-11-19 в 20:49, admin, рубрики: c++, разработка, разработка игр, управление, управление проектамиНе Unity единым…
2023-11-04 в 0:12, admin, рубрики: c++, game engines, open source, игровые движки, разработка игрКак и почему я писал для Флиппера на Си-с-классами
2023-10-24 в 9:00, admin, рубрики: C, c++, flipper zero, ruvds_статьи, си-с-классамиА для написания кода я решил использовать всё же не C, а C++ — точнее, даже «Си-с-классами». На мой взгляд, затуманенный языками более высокого уровня, такой подход получился удобнее, чем писать на чистом C. Результат можно увидеть в моём репозитории, а в этой статье я попытаюсь описать, какие конкретные фичи языка я использовал, и как именно они мне помогли.
В свободное время я восстанавливаю старенькую, но довольно известную игру Pharaoh. Это ситибилдер, выпущенный в прошлом веке и разработанный Impressions Games. Технология рендеринга в этой игре была значительным достижением для своего времени и способствовала созданию впечатляющей атмосферы Древнего Египта, которая погружает игрока в проработанное окружение, удивляет вниманием к мелким деталям и передает богатство и разнообразие древнеегипетских пейзажей. В этой статье я опишу алгоритм отрисовки города, зданий, объектов, анимации и формат карты оригинальной игры.
Форматирование текста на C++ старым и новым способом
2023-09-22 в 13:00, admin, рубрики: c++, ruvds_перевод, Программирование, форматирование строкФорматирование текста на C++ можно реализовать несколькими способами:
- потоками ввода-вывода. В частности, через
std::stringstream
с помощью потоковых операций (таких какoperator <<
); - функциями
printf
, в частностиsprintf
; - с помощью библиотеки форматирования C++20, в частности
std::format
/std::format_to
; - с помощью сторонней библиотеки, в частности
{fmt}
(основа новой стандартной библиотеки форматирования).
Первые два варианта представляют старые способы. Библиотека форматирования, очевидно, является новым. Но какой из них лучше в плане производительности? Это я и решил выяснить.Читать полностью »
userver 1.0 — релиз фреймворка для IO-bound программ
2023-09-21 в 9:00, admin, рубрики: c++, c++17, coroutine, coroutines, dynamic changes, github, json, logs, mongo, mongodb, mysql, postgres, postgresql, prometheus, prometheus grafana, python, python3, redis, sql, synchronization, userver, yaml, Yandex, открытый код
Поэтому мы вышли из беты и сделали релиз!
Что нового в релизе? Зачем вообще нужен userver и какие существуют технологии для обеспечения надёжной работы серверных приложений? Можно ли воспользоваться крутыми C++ классами из userver, не используя при этом корутины? Какие дальнейшие планы? Ответы на все эти вопросы ждут вас под катом.
Читать полностью »
Недостатки корутин в C++
2023-08-18 в 13:00, admin, рубрики: c++, ruvds_перевод, корутины, ПрограммированиеЭта статья написана с целью подчеркнуть некоторые риски, связанные с переносом базы кода на использование корутин. Я считаю, что продолжающееся неграмотное использование этой функциональности может привести к уменьшению безопасности и замедлению программ.
Даже при отсутствии многопоточности корутины следует рассматривать с той же подозрительностью, что и в случае написания многопоточного кода, так как они всё равно работают асинхронно.Читать полностью »
Первые новинки C++26: итоги летней встречи ISO
2023-08-17 в 10:24, admin, рубрики: c++, c++26, constexpr, file, float, floating point, function, functions, hazard pointers, iso, native api, numeric, rcu, span, Программирование, С++, с++26На недавней встрече комитет C++ активно взялся за C++26. Уже есть первые новинки, которые нас будут ждать в готовящемся стандарте C++:
- улучшенный
static_assert
, - переменная
_
, - оптимизация и улучшение для
std::to_string
, - Hazard Pointer,
- Read-Copy-Update (так же известное как RCU),
native_handle()
,- целая вереница классов
*function*
, - множество доработок по
constexpr
, std::submdspan
,- и прочие приятные мелочи.