# KyokaEngine
**Repository Path**: alonebinge/kyoka
## Basic Information
- **Project Name**: KyokaEngine
- **Description**: A toy 3D game engine using Vulkan.
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: vulkan
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-09-27
- **Last Updated**: 2024-09-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Kyoka
Kyoka is a lightweight 3D game engine developed in C++, featuring basic subsystems such as rendering, physics, and scripting. It is primarily used for learning graphics programming, engine architecture, design patterns, and rapid idea validation.

PBR Mateiral

Skeletal Anination
(P.S.后续会添加对自定义透明材质的支持修复小桃嘴巴的渲染错误)
## Features
**Implemented** (find more details in [features](https://gitee.com/liztu/kyoka/blob/vulkan/Development/docs/features_CN.md))
* Gameplay system
* ECS, grouping game objects by using parent-child hierarchies.
* create component with scripts (mono,c#)
* Reflection via code generation
* 3D renderer based on Vulkan
* multiple render passes
* batched rendering
* dual paraboloid shadow mapping
* support pbr and custom material
* skinned animation
* Integrated physx physics engine
* physical simulation
* ray detection
* Fully featured editor
* hierarchy, insepctor, game view, file browser, logger
* play in editor
* hot reload for scripts
* drawign gizmos
* object picking and highlighting
* Performance analysis
* code analysis with easy profile
* graphics analysis with renderdoc
**To implement**
* Artificial Intelligence
* Navigation Mesh
* Behaviour tree
* Partical
* Animation
* Audio system
* Multiplayer
*
...
## How to build
**Kyoka** currently supports only Windows. Premake is used to generate automatic build files for Visual Studio.
**1. Download the repository:**
Requirement
> - Pyhon == 3.x
> - Visual Stuio >= 2017
### 1.Clone the repository recursively.
```shell
git clone --recursive https://gitee.com/liztu/kyoka
cd kyoka
```
### 2. Configure the dependencies:
> - VulkanSDK == 1.3.268.0
> - PhysxSDK== 5.3.1
> - Assimp == 5.2.5
> - easy_profiler
(The method for configuring dependencies will be optimized in upcoming updates.)
1. Please download the dependencies from xxxx.
2. Configure the Vulkan path to the environment variable VULKAN_SDK, for example: VULKAN_SDK => path/VulkanSDK/1.3.268.0
3. Copy PhysX to the ./Engine/vendor/ directory.
4. Copy the ./bin folder from the archive to the project root directory (this folder contains the required .dll files for the project).
### 3. Build
1. Run `Win-GenProjects.bat` in `scripts` folder to generate the Visual Studio project.
2. Gen reflection code:
```shell
python Metaparser/gen_meta.py
```
3. Build `Editor`.