🌐 Language: 🇺🇸 English | 🇷🇺 Русский
Игровой движок для инди-разработчиков с ECS архитектурой, горячей перезагрузкой и встроенной поддержкой мультиплеера
KarpikEngine — это современный игровой движок, созданный для разработки многопользовательских игр. Построен на архитектуре Entity-Component-System и обеспечивает чёткое разделение клиентской и серверной логики с первого дня.
- Основан на Dragon ECS от DCFApixels
- Высокопроизводительная обработка сущностей и компонентов
- Интуитивно понятная система для разработчиков
- Полная поддержка Hot Reload без ограничений стандартного .NET
- Изменяйте код и сразу видеть результат без перезапуска игры
- Все сущности ECS миров сохраняются между перезагрузками
- Даже single-player игры проектируются с разделением на клиент и сервер
- Лёгкая адаптация под многопользовательский режим в любой момент
- Встроенная RPC система для коммуникации
- Чёткое разделение на Client, Server и Shared части
- Переиспользуемые модули между проектами
- Автоматическая генерация конфигурации через Configurator
- Многопоточная обработка данных через Karpik.Jobs
- Параллельное выполнение систем ECS
- Эффективное использование многоядерных процессоров
- HTML+CSS вдохновлённая система интерфейсов
- Гибкая вёрстка и стилизация
- Интеграция с ECS архитектурой
- Интеграция с MoonSharp для выполнения Lua скриптов
- Возможность добавления нового функционала через моды
- .NET 10.0 SDK или выше
-
Клонируйте репозиторий:
git clone https://github.com/your-username/KarpikEngine.git cd KarpikEngine -
Соберите проект:
dotnet build
-
Запустите сервер:
dotnet run --project ServerLauncher
-
В другом терминале запустите клиент:
dotnet run --project ClientLauncher
Для работы Hot Reload в Debug режиме:
- Включите в настройках IDE автоматическое подключение отладчика к дочерним процессам
- Запустите игру
- Измените код и соберите проект (может потребоваться 2 сборки)
- Нажмите
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 -- --generateKarpikEngine — open-source проект, и мы приветствуем любой вклад!
- 💡 Предлагайте новые фичи — создавайте Issues с идеями
- 🔧 Делайте Pull Requests — исправляйте баги, добавляйте функции
- 📝 Улучшайте документацию — помогайте другим разработчикам
- 🐛 Сообщайте о багах — тестируйте и делитесь проблемами
- 💬 Discord: https://discord.gg/UvdEuY2D2V
- 🐛 GitHub Issues — для багов и предложений
- 📖 GitHub Discussions — для общих вопросов
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.