В прошлом году мне понадобилось доработать токенизатор в моем движке. Поэтому я быстро набросал новую простейшую версию. Токенизатор хранит лишь начало/конец токена аля std::string_view. Поддерживается UTF-8. Поддерживает произвольный набор разделителей и их произвольную длину. Может быть достаточно легко доработан до …
C
Emscripten «ReferenceError: Can’t find variable: IDBFS»
Если после сборки проекта у вас перестала работать IDBFS, то значит у вас Emscripten v1.39.1 или новее. ReferenceError: Can’t find variable: IDBFS Начиная c Emscripten v1.39.1 поддержка всех файловых систем (NODEFS, IDBFS, WORKERFS, PROXYFS) была вынесена в отдельные модули. Достаточно …
netcode.io
netcode.io – протокол для защищенного клиент/сервер соединения поверх UDP разработанный Glenn Fiedler. Протокол разработан для игр с выделенным сервером. Его основные фичи: Защита от MitM (man-in-the-middle) атак. Защита от DDoS атак. Защита против атак с повтором пакетов. Защита от зомби-клиентов. …
TinyXML или TinyXML-2
Для описания игровых ресурсов, локализаций и настроек игры я использую XML. Поэтому в движке реализован класс для работы с ним. Он позволяет получить доступ к произвольной ноде и к произвольному атрибуту ноды. Интерфейс класса выглядит приблизительно так: Что позволяет прочесть …
LZ4 – lossless compression
У себя в движке я использую текстуры, данные в которых упакованы с помощью Zlib. А ведь когда-то давно я использовал RLE и RLE4. Но в некоторых проектах вместо или наравне с Zlib я использовал LZ4, скорость распаковки которого заявлена в …
Cower Defense
Игра в жанре Tower Defense, разработанная компанией Belka для социальных сетей. Очень классная игра с отличной историей, артом и анимациями. Игра была разработана на Adobe Flash. Я был один из трех программистов, кто занимался портированием этой игры на iOS и …
Tweens Visualizer
Это небольшой javascript-проект, предназначенный для визуализации комбинации твинов по двум осям + ось скейла. Твины используются для нелинейной анимации различных объектов в играх и приложениях. Крайне полезная штука. Написал его потому, что мне надоело подбирать комбинацию твинов в уме. Формулы …
Conan – менеджер пакетов C/C++
Благодаря LORу узнал о менеджере пакетов Conan C/C++ package manager. Это консольныя, децентрализованаая и кроссплатформенная (заявлена поддержка Windows, Linux, OSX, FreeBSD, и SunOS) утилита предназначенная для упрощения жизни разработчика. Поддерживаются различные билд-системы – Visual Studio MSBuild, CMake, Makefiles, SCons, и …
Emscripten initialization
Мой обновленный способ инициализации. В целом он почти не отличается от использованного мною все эти годы. И является практически дефольтным, согласно документации. Но, на одном параметре стоит заострить внимание. По-умолчанию этот параметр установлен в TRUE. И сегодня я получил слайд-шоу, …