
이 엔진은 YouTube의 Kohi Game Engine 시리즈 (현재 Twitch에서 라이브 스트리밍)의 일부로 만들어졌으며 C 및 Vulkan을 사용하여 처음부터 게임 엔진을 만듭니다.
Kohi (コーヒー, "Koh-hee"로 발음)라는 이름은 "커피"에 대한 일본어 단어를 단순화하는 것입니다.
오리지널 YouTube 시리즈는 여기에 있습니다 : https://www.youtube.com/watch?v=dhpuu-djobm&list=plv8ddw9k0jpg1beo-rs-0mys423cvlvtj.
Twitch 스트림은 여기에서 발생합니다 : https://twitch.tv/travisvroman.






Kohi는 처음부터 3D 엔진이었으며 대부분은 처음부터 구축되었습니다. 그 과정에서 많은 설명과 탐험이있을 것입니다. 이 시리즈는 일어나고 실행하기위한 튜토리얼의 더 많은 튜토리얼로 시작되며, 상황이 점점 더 높아짐에 따라 설명이 더 높아지면서 설명이 더 높아집니다. 우리는 결국 Twitch에서 라이브 스트리밍으로 전환하며 대부분의 코딩은 오프라인에서 덜 흥미로운 오프라인 작업으로 스트림에서 수행됩니다.
Windows, Linux 및 MacOS는 모두 공식적으로 지원됩니다. 안드로이드 및 iOS 런타임 지원도 도로 아래에 추가 될 수 있습니다.
의존성을 줄이기 위해 가장 높은 노력이 이루어 지지만 각 플랫폼에는이 작업을 위해 설치 해야 할 사항이 있습니다.
패키지 관리자를 통해 이들을 설치하십시오.
gitmakelibx11-devlibxkbcommon-x11-devlibx11-xcb-devHomebrew 또는 기타 패키지 관리자를 통해 이들을 설치하십시오.
gitmakeClang 13+와 Vulkan SDK가 설치되어 있어야합니다.
오디오 플러그인에는 Openal의 설치가 필요합니다.
sudo apt install openal 하십시오 (즉, Ubuntu 또는 sudo pacman -S openal On Arch의 Sudo Apt Install Openal).brew install openal-soft . M1 MAC의 참고 사항은 /opt/homebrew/opt/openal-soft/ 에 설치되며, include , lib 및 'bin 디렉토리를 찾을 수 있습니다. build-all.sh 스크립트는이 버전의 설치를 설명합니다. 시작하려면 현재 플랫폼의 모든 전제 조건을 얻으십시오 (위 참조). 그런 다음 저장소를 복제 한 후 : git clone https://github.com/travisvroman/kohi .
다른 컴파일러 (예 : GCC)를 자유롭게 사용할 수 있지만 현재 공식적으로 지원되지는 않지만 (설정을 설정하는 데 많은 노력을 기울이지 않아야 함).
자세한 내용은 Windows 또는 Linux 시리즈의 설정 비디오를 참조하십시오. MACOS 설정은 해당 플랫폼에 대한 지원이 공식적으로 추가 된 비디오 76 시리즈의 후반부에서 크게 발생합니다.
사용 가능한 두 가지 빌드 유형, 디버그 및 릴리스가 있습니다. 디버그에는 디버그 기호가 포함되어 있으며 개발 및 탐색에 최적이며 릴리스는 성능에 이상적입니다. 구축 된 파일을 정리할 수있는 "깨끗한"도 있습니다.이 파일은 디버그/릴리스 사이를 전환 할 때 또는 파일 누락 (즉, 전환 분기)으로 인해 이상한 연결 오류가 발생할 때 유용합니다.
명령 프롬프트 또는 PowerShell 인스턴스를 열고 Debug 빌드의 경우 build-debug.bat 파일을 실행하거나 릴리스 빌드를 위해 build-release.bat 실행하십시오. clean.bat 것도 있습니다.
터미널을 열고 Debug 빌드를 위해 build-debug.sh 파일을 실행하거나 릴리스 빌드를 위해 build-release.sh 실행하십시오. clean.sh 도 있습니다.
현재 "테스트 베드"는 Kohi를 사용하는 실행 파일입니다. /bin 의 작업 디렉토리와 함께 실행해야합니다. Windows의 명령 프롬프트/PowerShell 또는 Linux/MacOS의 터미널에서 cd bin 빈 폴더에 들어가서 Windows에서 testbed.exe 실행하거나 Linux/MacOS에 대한 testbed 실행하십시오.
이 구조 분해는 저장소의 루트 폴더를 기반으로합니다. 이 설명에서 일부 파일/폴더는 전체 그림에 중요하지 않으므로 생략됩니다.
kohi.core 공유 라이브러리/.dll. 유형, 컨테이너, 현악기, 수학 lib, utils 등과 플랫폼 레이어 (Win32, Linux, MacOS)가 포함되어 있습니다.kohi.core.tests 핵심 라이브러리에 대한 작은 단위 테스트 모음. 확장해야합니다.kohi.runtime 공유 라이브러리/.dll. 핵심 엔진 로직과 많은 핵심 엔진 시스템이 포함되어 있습니다.kohi.plugin.audio.openal 공유 라이브러리/.dll. Openal을 오디오 백엔드로 사용하는 오디오 플러그인이 포함되어 있습니다.kohi.plugin.renderer.vulkan 공유 라이브러리/.dll. Vulkan의 엔진에 대한 렌더러 백엔드 역할을하는 Vulkan 렌더러 플러그인이 포함되어 있습니다.kohi.plugin.ui.standard standard- 공유 라이브러리/.dll. 버튼, 레이블, 텍스트 상자 등과 같은 일반적인 컨트롤 컬렉션이 포함 된 Kohi Standard UI가 포함되어 있습니다. 이것은 유지 모드 UI입니다.testbed.assets 베드 응용 프로그램에 의해로드 될 모든 자산이 포함되어 있습니다.testbed.kapp 응용 프로그램/.exe. 소비 애플리케이션 실행 파일은 테스트 베드를로드하고 플러그인 및 기타 KOHI 라이브러리를 구성/사용합니다.testbed.klib = 공유 라이브러리/.dll. 응용 프로그램에 특정한 응용 프로그램 코드 (또는 "게임 코드")가 포함됩니다. 핫로드 가능.kohi.tools.versiongen 응용 프로그램/.exe. 통과 된 전공 및 마이너 버전 번호를 사용하여 버전을 생성하는 작은 유틸리티와 날짜와 시간에 따라 자동 생성 빌드 및 개정 번호. Kohi 및 플러그인의 버전 빌드에 사용됩니다.kohi.tools 명령 줄 도구 모음. 현재 대부분 비어 있지만 편집자 개발이 시작되면 소비됩니다..vscode 코드 별 프로젝트 설정 대를 포함하는 폴더. 여기를 참조하십시오.
여기서 목표는 게임 개발을 배울 때 내가 원했던 리소스를 제공하는 것이 간단합니다. 설계 결정뿐만 아니라 그러한 결정이 내려진 이유를 포함하여 게임 엔진 구축에 대한 완전한 가이드. 또한 이것은 게임 엔진을 구축하는 방법 이지만, 하나를 빌드하는 유일한 방법은 아닙니다.
물론 게임을 만들 수있는 게임 엔진을 갖는 목표도 있습니다. 프로젝트가 충분히 멀리 나면 YouTube 채널에서도 게임을 시리즈로 만들 것입니다.
이 엔진은 생산 준비가되지 않았으며 오랫동안 생산 준비가되지 않을 것임을 주목하는 것이 중요합니다. 학습 도구이므로 아직 생산 품질 제품에 사용하기에 최적화되지 않았습니다. 이것은 결국 변할 것이지만 지금은 생산 준비가 아닙니다 .
프로젝트가 진행됨에 따라 GitHub의 풀 요청을 통해 커뮤니티 기여를 환영합니다.
feature/<feature name> 형식으로 지점 이름을 통해 기능을 기여해야합니다. 여기서 <feature name> 은 기능 이름 또는보고 된 기능 문제의 수 (예 : feature/80 또는 feature/terrain )로 대체됩니다.
버그 수정은 bugfix/<issue#> bugfix/80 <issue#> 분기 이름을 통해 기여 해야합니다 . 따라서 버그 수정은 Github에서 관련 문제가 있어야 합니다 .
코드는 Repo의 코드의 일반적인 스타일과 일치해야합니다. 코드 스타일 가이드는 가까운 시일 내에 여기에 게시 될 것입니다.
모든 기부금은 검토 대상이되며 수락되거나 수락되거나 수락되기 전에 변경 요청이 있습니다.
나는 여가 시간에 Kohi를 개발하고 있습니다. 지금은 후원자가 없습니다. 내 일이 마음에 들면이 장소에서 저를 지원 해주세요.
또한 YouTube 및 Twitch에서 Follow/Subscriptions에 감사드립니다. 말씀을 전 해주세요!
귀하의 지원은 대단히 감사하며 프로젝트에 다시 투자 할 것입니다.