Главная » Архив меток: C++

Архив меток: C++

Создатель игры while True: learn() о программировании в геймдеве, проблемах с VR и симуляции ML

Постоянно выступал, проводил Gamesjam, был частым гостем подкаста Как делают игры. Несколько лет назад мне казалось, что Олег Чумаков (тогда еще из Nival) был самым известным программистом геймдева. Но вы все знаете, с виртуальной реальностью что-то пошло не так, как хотелось. С появлением на рынке VR, Олег возглавил в компании новое подразделение — NivalVR. Теперь она называется Luden.io и их ...

Читать далее »

Указатели C как лингвистический парадокс

Недавно один знакомый, которого я знаю через совсем не программистские круги, попросил помочь ему с лабораторной по C++. В коде было примерно следующее: void do_something(MyObj *input[], int count) { MyObj **copy = new MyObj*[count]; for (int i = 0; i < count; ++i) *copy[i] = *input[i]; ... } Этот случай напомнил о том, что тема указателей является едва ли не ...

Читать далее »

BEERBRAZZERS. Управление светом. Vixen Lights 3. Быстрый старт(1/4)

Добрый вечер, дамы и господа! Всем доброго здравия и хорошего настроения желаю! Сейчас я начну цикл из десятка статей, посвящённых разработке пивоварни «BEERBRAZZERS». Относиться к этому циклу серьёзно — не рекомендуется. Это всё по фану и, как говорится, чисто ради веселья. Первая статья будет посвящена управлению светом под музыку. Действительно, куда же в пивоварении без этого? Никуда. А раз так ...

Читать далее »

Как я стандартную библиотеку C++11 писал или почему boost такой страшный. Глава 2

Краткое содержание предыдущих частей Из-за ограничений на возможность использовать компиляторы C++ 11 и от безальтернативности boost'у возникло желание написать свою реализацию стандартной библиотеки C++ 11 поверх поставляемой с компилятором библиотеки C++ 98 / C++ 03. Помимо стандартных заголовочных файлов type_traits, thread, mutex, chrono так же были добавлены nullptr.h реализующий std::nullptr_t и core.h куда были вынесены макросы, относящиеся к компиляторозависимому функционалу, ...

Читать далее »

[Из песочницы] Как я стандартную библиотеку C++11 писал или почему boost такой страшный

Вместо предисловия Пожалуй с этой картинки должно начинаться любое повествование о boost, Loki, самостоятельных, да и так же поставляемых с компиляторами реализациях стандартной библиотеки C++. Да-да, и если вы думали что разработчики стандартной библиотеки для того же g++, clang, Visual Studio или, прости господи, C++ Builder (бывший Borland, а нынешний Embarcadero) — гуру, что не городят костылей, не ломают стандарт ...

Читать далее »

[Перевод] Clang. Часть 1: введение

Что такое Clang? Я провёл последние несколько месяцев, работая с Clang, фронтендом LLVM. Clang умеет парсить и анализировать любой исходный код на языках семейства С (C, C++, ObjectiveC, и т.п....) и имеет удивительную модульную структуру, которая делает его простым в использовании. Если вы ищете статический анализатор кода, я настоятельно рекомендую Clang, он существенно превосходит другие статические анализаторы (такие, как CIL...) ...

Читать далее »

Джеффри Рихтер приезжает в Россию: анонс конференции DotNext 2018 Moscow

Задумайтесь на минутку: что за последний год произошло с .NET? Что изменилось, что из этого мы должны использовать? Можно даже отложить эту статью и подумать, ведь вопрос более чем достойный. Мы сами попробовали и потратили на него не один час. С одной стороны, есть масса громких, но очень поверхностных или высокоуровневых новостей, например: в Microsoft теперь связывают будущее компании с ...

Читать далее »

[Из песочницы] Алгоритм поиска пути A* в воксельной 3d игре на Unity

private List<PathPoint> ClosePoint(int index, List<PathPoint> openPoints, List<PathPoint> closedPoints, World worldData, SPathFinderType pfType, Vector3 targetPoint) // south // | // \|/ // если не в списке закрытых if (!InList(closedPoints, new Vector3(lastPoint.point.x - 1, lastPoint.point.y, lastPoint.point.z))) // и уже не добавлена if (!InList(newOpenPoints, new Vector3(lastPoint.point.x - 1, lastPoint.point.y, lastPoint.point.z))) // если может там стоять if (CanStand(new Vector3(lastPoint.point.x - 1, lastPoint.point.y, lastPoint.point.z), pfType.characterHeight, ...

Читать далее »

[Перевод] Квантовое будущее: Microsoft Quantum Development Kit

22 июня мы выпустили обновление для нашего open-source Microsoft Quantum Development Kit. Среди нововведений: улучшенный процесс отладки, более быстрое моделирование, а также реализация ряда усовершенствований, предложенных сообществом Q#. Подробнее под катом! Мы очень рады наблюдать возросшую активность сообщества, к которому присоединилось много новых разработчиков Q# для создания нового поколения квантовых вычислений. В новой версии от 26 февраля добавлена интеграция с ...

Читать далее »

1M HTTP rps на 1 cpu core. DPDK вместо nginx+linux kernel TCP/IP

Я хочу рассказать о такой штуке как DPDK — это фреймворк для работы с сетью в обход ядра. Т.е. можно прямо из userland писать\читать в очереди сетевой карты, без необходимости в каких либо системных вызовах. Это позволяет экономить много накладных расходов на копирования и прочее. В качестве примера я напишу приложение, отдающее по http тестовую страницу и сравню по скорости ...

Читать далее »