
Mesin ini dibuat sebagai bagian dari seri mesin game Kohi di YouTube (sekarang streamed langsung di Twitch), di mana kami membuat mesin game dari bawah ke atas menggunakan C dan Vulkan.
Nama Kohi (コーヒー, diucapkan "Koh-hee") adalah penyederhanaan kata Jepang untuk "kopi", yang masuk akal mengingat betapa saya sangat menyukai barang-barang itu.
Serial YouTube asli terletak di sini: https://www.youtube.com/watch?v=dhpuu-djobm&list=plv8ddw9k0jpg1beo-rs-0mys423cvlvtj.
Aliran Twitch terjadi di sini: https://twitch.tv/travisvroman.






Kohi telah menjadi mesin 3D sejak awal, dengan sebagian besar dibangun dari awal. Akan ada banyak penjelasan dan eksplorasi di sepanjang jalan. Serial ini dimulai sebagai lebih dari tutorial untuk bangun dan berjalan, dengan penjelasan menjadi tingkat yang lebih tinggi karena hal -hal berkembang untuk terus berjalan. Kami akhirnya bertransisi ke streaming langsung di Twitch, dengan sebagian besar pengkodean dilakukan pada aliran dengan beberapa pekerjaan offline yang kurang menarik dilakukan secara offline.
Windows, Linux dan MacOS semuanya didukung secara resmi. Dukungan runtime Android dan iOS juga dapat ditambahkan di jalan.
Sementara upaya tertinggi dilakukan untuk mengurangi ketergantungan, setiap platform memiliki hal -hal yang harus diinstal agar ini berfungsi.
Instal ini melalui Paket Manajer:
gitmakelibx11-devlibxkbcommon-x11-devlibx11-xcb-devInstal ini melalui Homebrew atau Manajer Paket lainnya:
gitmakeAnda harus memiliki dentang 13+ dan Vulkan SDK diinstal:
Plugin audio membutuhkan installation of Openal.
sudo apt install openal untuk Ubuntu atau sudo pacman -S openal On Arch)brew install openal-soft . Catatan pada M1 Macs ini menginstal ke /opt/homebrew/opt/openal-soft/ , di mana direktori include , lib , dan 'bin dapat ditemukan. Akun skrip build-all.sh untuk versi instal ini. Untuk memulai, dapatkan semua prasyarat untuk platform Anda saat ini (lihat di atas). Setelah ini, klon repositori: git clone https://github.com/travisvroman/kohi .
Perhatikan bahwa Anda bebas menggunakan kompiler lain (seperti GCC), tetapi mereka tidak secara resmi didukung saat ini (meskipun seharusnya tidak banyak pekerjaan untuk mengatur mereka).
Lihat video pengaturan dalam seri untuk Windows atau Linux untuk detailnya. Pengaturan MacOS terjadi secara signifikan kemudian dalam seri di Video 76, ketika dukungan secara resmi ditambahkan untuk platform itu.
Ada 2 jenis bangunan yang tersedia, debug, dan rilis. Debug termasuk simbol debug dan optimal untuk pengembangan dan eksplorasi, sementara rilis sangat ideal untuk kinerja. Ada juga "bersih" yang tersedia untuk membersihkan file yang dibangun, yang berguna saat beralih antara debug/rilis, atau ketika kesalahan penghubung yang aneh terjadi karena file yang hilang (yaitu cabang switching).
Buka instance command prompt atau PowerShell dan jalankan file build-debug.bat untuk debug build, atau build-release.bat untuk pembuatan rilis. Ada juga yang clean.bat . Tersedia.
Buka terminal dan jalankan file build-debug.sh untuk pembuatan debug, atau build-release.sh untuk pembuatan rilis. Ada juga clean.sh yang tersedia.
Saat ini, "testbed" adalah yang dapat dieksekusi yang menggunakan Kohi. Itu harus dijalankan dengan direktori kerja /bin . Di Command Prompt/PowerShell di Windows, atau terminal di Linux/MacOS, cd bin untuk masuk ke folder bin, kemudian jalankan testbed.exe pada windows atau hanya testbed untuk Linux/MacOS.
Kerusakan struktur ini didasarkan pada folder root repositori. Beberapa file/folder dihilangkan dari deskripsi ini karena tidak penting untuk keseluruhan gambar.
kohi.core - Perpustakaan Bersama/.dll. Berisi jenis, wadah, string lib, matematika lib, utils, dll. Serta lapisan platform (Win32, Linux, MacOS).kohi.core.tests - Koleksi kecil tes unit untuk perpustakaan inti. Perlu diperluas.kohi.runtime - Perpustakaan Bersama/.dll. Berisi logika mesin inti serta banyak sistem mesin inti.kohi.plugin.audio.openal - perpustakaan bersama/.dll. Berisi plugin audio yang menggunakan Openal sebagai backend audio.kohi.plugin.renderer.vulkan - perpustakaan bersama/.dll. Berisi plugin Vulkan Renderer, yang berfungsi sebagai renderer backend ke mesin untuk Vulkan.kohi.plugin.ui.standard - perpustakaan bersama/.dll. Berisi UI standar Kohi, yang berisi kumpulan kontrol penggunaan umum seperti tombol, label, kotak teks, dll. Ini adalah UI mode yang disimpan.testbed.assets - berisi semua aset yang akan dimuat oleh aplikasi testbed.testbed.kapp - Application/.exe. Aplikasi yang dikonsumsi dapat dieksekusi, memuat testbed.klib, mengkonfigurasi/menggunakan plugin dan perpustakaan kohi lainnya.testbed.klib = pustaka bersama/.dll. Berisi kode aplikasi (atau "kode game") khusus untuk aplikasi. Hot-readable.kohi.tools.versiongen - Aplikasi/.exe. Utilitas kecil yang menghasilkan versi menggunakan nomor versi utama dan kecil, dan nomor build dan revisi yang dihasilkan secara otomatis berdasarkan tanggal dan waktu. Digunakan untuk versi build dari kohi dan plugin.kohi.tools - Kumpulan alat baris perintah. Sebagian besar kosong saat ini, tetapi akan dikeluarkan ketika pengembangan editor dimulai..vscode Folder yang berisi pengaturan proyek spesifik kode VS. Lihat di sini.
Tujuannya di sini sederhana, untuk menyediakan sumber daya yang saya harap saya miliki saat belajar pengembangan game; Panduan lengkap tentang membangun mesin permainan dari awal, termasuk tidak hanya keputusan desain, tetapi mengapa keputusan itu dibuat. Perlu juga dicatat bahwa, walaupun ini adalah cara membangun mesin permainan, itu bukan satu -satunya cara untuk membangunnya.
Tentu saja, ada juga tujuan memiliki mesin game yang mampu membuat game. Setelah proyek cukup jauh, membuat game akan dilakukan sebagai seri di saluran YouTube saya juga.
Penting untuk dicatat bahwa mesin ini tidak, dan tidak akan cukup lama, siap-produksi. Ini adalah alat pembelajaran dan karena itu belum dioptimalkan untuk digunakan dalam produk berkualitas produksi. Ini pada akhirnya akan berubah, tetapi untuk saat ini tidak siap-produksi.
Saat proyek berlangsung, kontribusi masyarakat dipersilakan melalui permintaan tarik di GitHub.
Fitur harus dikontribusikan melalui nama cabang dalam format feature/<feature name> di mana <feature name> diganti dengan nama fitur atau, idealnya, jumlah masalah fitur yang dilaporkan (mis: feature/80 atau feature/terrain ).
Perbaikan bug harus disumbangkan melalui nama cabang dalam format bugfix/<issue#> di mana <issue#> diganti dengan jumlah masalah fitur yang dilaporkan (mis: bugfix/80 ). Perbaikan bug karena itu harus memiliki masalah terkait yang dibuat di GitHub.
Kode harus sesuai dengan gaya umum kode dalam repo. Panduan gaya kode akan diterbitkan di sini di beberapa titik dalam waktu dekat.
Semua kontribusi dapat ditinjau dan mungkin tidak diterima atau tidak, atau memiliki permintaan perubahan yang dibuat sebelum diterima.
Saya mengembangkan Kohi di waktu luang saya. Saya tidak memiliki sponsor saat ini. Jika Anda menyukai pekerjaan saya, jangan ragu untuk mendukung saya di tempat -tempat ini:
Saya juga akan sangat menghargai berikut/berlangganan di YouTube dan Twitch. Tolong sebarkan berita!
Dukungan Anda sangat dihargai dan akan diinvestasikan kembali ke proyek.