Skip to content

Karpiklalloly/Karpik.Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

152 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KarpikEngine

🌐 Language: 🇺🇸 English | 🇷🇺 Русский

Игровой движок для инди-разработчиков с ECS архитектурой, горячей перезагрузкой и встроенной поддержкой мультиплеера

KarpikEngine — это современный игровой движок, созданный для разработки многопользовательских игр. Построен на архитектуре Entity-Component-System и обеспечивает чёткое разделение клиентской и серверной логики с первого дня.

✨ Ключевые особенности

🏗️ Dragon ECS архитектура

  • Основан на Dragon ECS от DCFApixels
  • Высокопроизводительная обработка сущностей и компонентов
  • Интуитивно понятная система для разработчиков

🔥 Горячая перезагрузка

  • Полная поддержка Hot Reload без ограничений стандартного .NET
  • Изменяйте код и сразу видеть результат без перезапуска игры
  • Все сущности ECS миров сохраняются между перезагрузками

🌐 Client-Server архитектура

  • Даже single-player игры проектируются с разделением на клиент и сервер
  • Лёгкая адаптация под многопользовательский режим в любой момент
  • Встроенная RPC система для коммуникации

📦 Модульная архитектура

  • Чёткое разделение на Client, Server и Shared части
  • Переиспользуемые модули между проектами
  • Автоматическая генерация конфигурации через Configurator

⚡ Job System

  • Многопоточная обработка данных через Karpik.Jobs
  • Параллельное выполнение систем ECS
  • Эффективное использование многоядерных процессоров

🎨 UI система

  • HTML+CSS вдохновлённая система интерфейсов
  • Гибкая вёрстка и стилизация
  • Интеграция с ECS архитектурой

🔧 Поддержка моддинга на Lua

  • Интеграция с MoonSharp для выполнения Lua скриптов
  • Возможность добавления нового функционала через моды

🚀 Быстрый старт

Требования

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/your-username/KarpikEngine.git
    cd KarpikEngine
  2. Соберите проект:

    dotnet build
  3. Запустите сервер:

    dotnet run --project ServerLauncher
  4. В другом терминале запустите клиент:

    dotnet run --project ClientLauncher

Горячая перезагрузка

Для работы Hot Reload в Debug режиме:

  1. Включите в настройках IDE автоматическое подключение отладчика к дочерним процессам
  2. Запустите игру
  3. Измените код и соберите проект (может потребоваться 2 сборки)
  4. Нажмите Hot Reload в дебаг панели

💡 Совет: Рекомендуется хранить все данные в ECS мирах — они автоматически сохраняются при горячей перезагрузке.

🗺️ Текущие возможности

✅ Реализовано

  • ECS ядро — полноценная Dragon ECS интеграция
  • Client-Server архитектура — RPC система и сетевое взаимодействие
  • Hot Reload — полная поддержка горячей перезагрузки
  • Asset Management — загрузка и выгрузка ресурсов
  • Job System — многопоточная обработка
  • UI система — HTML+CSS стили интерфейсов
  • Tween система — анимации и переходы (GTweens)
  • Dependency Injection — AutoInject для систем
  • 2D рендеринг — базовые возможности отрисовки

🔮 В разработке

  • Audio API — система воспроизведения аудио
  • Input API — обработка клавиатуры, мыши и геймпадов
  • 3D поддержка — после стабилизации 2D функционала
  • Расширенный моддинг — полная интеграция Lua с кодогенерацией
  • Инструменты разработчика — редакторы, отладчики, профайлеры
  • И куча остального

🏗️ Архитектура проекта

Проект разделён на Модули и Игровые проекты. Каждый из них делится на Client, Server и Shared части.

Модули

  • Содержат обобщённую логику, не зависящую от конкретной игры
  • Примеры: AssetManagement, Network, UI
  • Могут реагировать на события жизненного цикла (см. IModule.cs)

Игровые проекты

  • MyGame.Client.Main — клиентская часть
  • MyGame.Server.Main — серверная часть
  • MyGame.Shared.Main — общая логика

Добавление нового модуля

После создания нового проекта выполните:

dotnet run --project Configurator/Configurator.csproj -- --generate

🤝 Участие в разработке

KarpikEngine — open-source проект, и мы приветствуем любой вклад!

Как помочь проекту:

  • 💡 Предлагайте новые фичи — создавайте Issues с идеями
  • 🔧 Делайте Pull Requests — исправляйте баги, добавляйте функции
  • 📝 Улучшайте документацию — помогайте другим разработчикам
  • 🐛 Сообщайте о багах — тестируйте и делитесь проблемами

💬 Сообщество

  • 💬 Discord: https://discord.gg/UvdEuY2D2V
  • 🐛 GitHub Issues — для багов и предложений
  • 📖 GitHub Discussions — для общих вопросов

📄 Лицензия

Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages