Об этом проекте

LittleJS — это легковесный HTML5-игровой движок с открытым исходным кодом, ориентированный на простоту и производительность. Он поставляется в виде небольшой JavaScript-библиотеки без зависимостей и включает широкий набор функций для разработки 2D-игр. Основные возможности, описанные в README: - Графика: гибридный рендеринг WebGL2 и Canvas2D, пост-обработка шейдеров в стиле Shadertoy, система частиц с визуальным редактором эффектов, текстурные листы спрайтов/анимаций во время выполнения, поддержка атласов TexturePacker и Aseprite, а также опциональный 3D-рендеринг через плагин Three.js. - Аудио: воспроизведение файлов mp3, ogg и wave, процедурная генерация звука ZzFX без файлов ассетов, пространственное стерео-панорамирование. - Ввод: обработка мыши, клавиатуры, геймпада и касаний, плюс настраиваемый экранный геймпад для мобильных устройств. - Физика: аркадная физика с обработкой столкновений, коллизии тайловых карт и рейкастинг, опциональная интеграция Box2D v2.3.1 wasm, а также плагин поиска пути A* на основе сетки с опциональным сглаживанием. - Гибкость: работает в современных браузерах и на мобильных устройствах, поддерживает TypeScript и ES-модули, предоставляет стартовый шаблон Vite и подходит для событий по написанию кода с ограничением размера, таких как JS13kGames. Лицензия MIT. - Инструменты разработчика: живой браузер примеров с редактируемым исходным кодом, импорт уровней Tiled/JSON, отладочный оверлей и примитивный рендеринг, отслеживание медалей с поддержкой Newgrounds, а также система сборки на Node.js. - Дружелюбность к ИИ: небольшой документированный API, предназначенный для хорошей работы с LLM, плюс отдельные шаблоны/подсказки для ИИ и игровой конструктор на основе ChatGPT. Варианты начала работы включают установку npm-пакета `littlejsengine` или использование `degit` для создания стартового шаблона Vite. Минимальный пример показывает инициализацию движка с колбэками gameInit, gameUpdate, gameUpdatePost, gameRender и gameRenderPost. Проект предоставляет несколько сборок (debug/release, module/non-module, минифицированные варианты), учебные пособия, включая прохождение Breakout и учебник по лыжной игре, краткую справочную таблицу и FAQ. Примеры включают живой браузер примеров, LittleJS Arcade с более чем 50 играми, более 60 однострочных демонстраций функций, а также конкретные демо для Breakout, головоломки match-3, платформера, Box2D, Three.js сайд-скроллера и платформера, стресс-теста и дизайнера системы частиц. В README также перечислены многочисленные игры сообщества, созданные с помощью движка, и ссылки на результаты игровых джемов.