Skip to content

zareyn/ModEngine-OpenSource

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ModEngine

Mod Engine — это модульный игровой движок для создания многопользовательских 2D-игр прямо в браузере.
Построен на чистом JavaScript, без фреймворков, с фокусом на гибкость, модульность и реальное время.


🎮 Возможности

  • Модульная архитектура — каждый объект состоит из набора модулей (спрайты, движение, инвентарь, коллизии и др.)
  • Многопользовательский режим — синхронизация через WebSocket в реальном времени
  • Динамическая загрузка модулей — можно добавлять новые поведения без перезаписи ядра
  • Canvas-рендеринг — отрисовка спрайтов, анимаций, сетки мира
  • Физика и коллизии — система обнаружения столкновений
  • Инвентарь и предметы — подбор, хранение, выброс предметов
  • Камера с плавным следованием — привязка к игроку или объекту
  • Конфигурируемые карты — редактирование через JSON-файлы
🧩 Как работают модули?

Модуль — это независимый компонент, который определяет поведение объекта.  
Пример модуля `square.js`:

javascript
export function create(params) {
    const finalParams = Object.assign({ color: 'red', size: 1 }, params);
    return {
        draw(ctx, x, y, cellSize) {
            ctx.fillStyle = finalParams.color;
            ctx.fillRect(x * cellSize, y * cellSize, 
                         finalParams.size * cellSize, 
                         finalParams.size * cellSize);
        },
        params: finalParams
    };
}

## Объект может комбинировать несколько модулей:

{
    "player": {
        "modules": ["sprite", "move", "collision", "inventory"],
        "params": {
            "spriteName": "hero",
            "speed": 1,
            "size": 2
        }
    }
}

🚀 Быстрый старт
Клонируйте репозиторий

bash
git clone https://github.com/zareyn/ModEngine-OpenSource.git
cd ModEngine-OpenSource
Установите зависимости

bash
npm install
Запустите сервер

bash
npm start
Откройте в браузере

text
http://localhost:3000
📖 Примеры использования
Создание нового модуля
Добавьте файл в public/modul/myModule.js

Экспортируйте функцию create(params)

Добавьте методы (draw, update, setupControls и т.д.)

Укажите модуль в example.json

Добавление объекта на карту
Определите объект в example.json

Разместите его в map.json:

json
{
    "name": "myObject",
    "x": 10,
    "y": 10
}
🌐 Мультиплеер
Движок поддерживает синхронизацию:

Позиций игроков

Состояний модулей

Инвентаря

Предметов на карте

Сервер отправляет обновления 20 раз в секунду, клиенты интерполируют движения.


Автор
Zareyn Emanachi
Разработчик игр и open-source энтузиаст.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published