Ini adalah kode resmi Quake 2 v3.21 dengan Dukungan Vulkan dan paket misi. Tujuan dari proyek ini adalah untuk mempertahankan kompatibilitas sebanyak mungkin dengan permainan asli - hanya pengalaman vanilla guak 2 yang murni seperti yang kami ketahui pada tahun 1997. Namun, ada beberapa perbedaan penting yang membuat pemotongan karena berbagai alasan:
vk_postprocesshudscale )aimfix CONSOLE, Backport dari Berserker@Quake2Deskripsi yang lebih rinci tentang proses pemikiran di balik proyek ini dapat ditemukan di posting blog saya, di mana saya menjelaskan keseluruhan desain, bagaimana saya menyerang beberapa masalah dan juga bagaimana hal -hal berkembang setelah rilis awal.
Untuk tantangan tambahan saya memutuskan untuk mendasarkan vkquake2 pada kode perangkat lunak ID asli. Karena itu, tidak ada ketergantungan pada perpustakaan seperti SDL eksternal dan seluruh proyek sebagian besar mandiri. Ini juga menyiratkan bahwa beberapa bug asli dapat hadir.
quake2.sln dan pilih arsitektur target (x86/x64) - itu harus dibangun tanpa langkah tambahan apa pun Sayangnya, kode Linux untuk Quake 2 belum berumur dengan baik dan karena alasan itu hanya vulkan renderer yang tersedia untuk digunakan saat ini. Bangun langkah -langkah Asumsikan bahwa Ubuntu adalah distribusi target:
sudo apt install make gcc g++ mesa-common-dev libglu1-mesa-dev libxxf86dga-dev libxxf86vm-dev libasound2-dev libx11-dev libxcb1-dev
.bashrc Anda (ganti versi dan lokasi SDK dengan yang sesuai dengan sistem Anda): export VULKAN_SDK=/home/user/VulkanSDK/1.3.224.1/x86_64
export PATH=$VULKAN_SDK/bin:$PATH
export LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH
export VK_LAYER_PATH=$VULKAN_SDK/etc/explicit_layer.d
vulkaninfo untuk memverifikasi) - jika tidak, Anda bisa mendapatkannya dengan: sudo apt install mesa-vulkan-drivers
linux dan ketik make release atau make debug tergantung pada varian mana yang ingin Anda bangun - biner output akan ditempatkan di subdirektori linux/releasex64 dan linux/debugx64 VULKAN_SDKmacos/vkQuake2.xcworkspace - itu harus dibangun tanpa langkah tambahan.bash_profile Anda dan menambahkan entri berikut (ganti versi SDK dan lokasi dengan yang sesuai dengan sistem Anda): export VULKAN_SDK=/home/user/VulkanSDK/1.3.224.1
export VK_ICD_FILENAMES=$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json
export VK_LAYER_PATH=$VULKAN_SDK/share/vulkan/explicit_layer.d
macos dan jalankan make release-xcode atau make debug-xcode tergantung pada varian mana yang ingin Anda bangun-biner output akan ditempatkan di subdirektori macos/vkQuake2macos dan jalankan make release atau make debug akan ditempatkan di macos/release dan subdirektori macos/debug masing -masing Proyek ini menggunakan Vulkan Loader yang dibundel dengan SDK, daripada secara langsung menghubungkan terhadap MoltenVK.framework . Ini dilakukan agar lapisan validasi tersedia untuk debugging. Builds telah diuji menggunakan MacOS 10.14.2.
pkg install vulkan-tools vulkan-validation-layers
vulkaninfo untuk memverifikasi) - jika tidak, Anda harus memperbaruinya atau menemukan paket yang paling cocok untuk konfigurasi perangkat keras Andalinux dan ketik make release atau make debug tergantung pada varian mana yang ingin Anda bangun - biner output akan ditempatkan di subdirektori linux/releasex64 dan linux/debugx64 Berkat upaya Igalia dan driver V3DV mereka, dimungkinkan untuk mengkompilasi dan menjalankan Vkquake2 pada Raspberry Pi 4. Instruksi Bangun yang sama untuk Linux Apply.
Visual Studio C ++ Redistributable diperlukan untuk menjalankan aplikasi: 32-bit atau 64-bit tergantung pada arsitektur yang dipilih. Ini disediakan secara otomatis jika Anda telah menginstal Visual Studio.
Paket rilis hanya hadir dengan konten demo Quake 2 untuk menampilkan fungsionalitas Vulkan. Untuk pengalaman penuh, salin ritel .pak , model dan file video ke direktori baseq2 dan jalankan yang dapat dieksekusi. Untuk paket misi, salin data yang diperlukan ke rogue ("Ground Zero"), xatrix ("The Reckoning"), zaero ("Quake II: Zaero") dan Direktori smd ("sedikit perusakan mekanis") masing -masing. Anda kemudian dapat memulai game dengan ./quake2 +set game rogue , ./quake2 +set game xatrix , ./quake2 +set game zaero atau ./quake2 +set game smd .
Proyek ini menggunakan miniaudio untuk pemutaran musik jika CD game asli tidak tersedia. Untuk Quake 2 standar, salin semua trek ke direktori baseq2/music mengikuti trackXX.[ogg,flac,mp3,wav] Skema penamaan (jadi track02.ogg, track03.ogg ... untuk file ogg, dll.). Untuk "Ground Zero" dan "The Reckoning", salin trek ke rogue/music dan xatrix/music Directory masing -masing. Untuk kontrol tambahan atas pemutaran, gunakan miniaudio [on,off,play [X],loop [X],stop,pause,resume,info] perintah konsol.
Perintah berikut tersedia saat menggunakan vulkan renderer:
| Memerintah | Tindakan |
|---|---|
vk_validation | Lapisan validasi sakelar:0 - Dinonaktifkan (Default in Release)1 - Hanya kesalahan dan peringatan2 - Validasi Lengkap (Default in Debug)3 - Mengaktifkan VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT |
vk_strings | Cetak beberapa informasi vulkan/GPU dasar. |
vk_mem | Cetak verteks dinamis/indeks/seragam/segitiga memori buffer kipas dan deskriptor set statistik penggunaan. |
vk_device | Tentukan indeks perangkat Vulkan yang disukai pada sistem dengan beberapa GPU:-1 - lebih suka diskrit_gpu pertama (default)0..n - Gunakan perangkat #n (daftar lengkap perangkat dikembalikan oleh perintah vk_strings ) |
vk_msaa | Toggle MSAA (Multisampling):0 - OFF (default)1 - MSAAX22 - MSAAX43 - MSAAX84 - MSAAX16 |
vk_sampleshading | Sakelar naungan sampel (supersampling) untuk MSAA. (default: 0 ) |
vk_mode | Mode Video Vulkan (Default: 11 ). Mengatur ini ke -1 menggunakan resolusi layar khusus yang ditentukan oleh r_customwidth (default: 1024 ) dan r_customheight (default: 768 ) variabel konsol. |
vk_flashblend | Toggle campuran lampu ke lingkungan. (default: 0 ) |
vk_polyblend | Blend Efek Layar Penuh: Darah, PowerUps dll. (Default: 1 ) |
vk_skymip | Beralihnya penggunaan informasi mipmap untuk grafik langit. (default: 0 ) |
vk_finish | Memasukkan panggilan vkDeviceWaitIdle() pada bingkai render start (default: 0 ).Jangan gunakan ini, itu hanya ada demi memiliki gl_finish yang setara! |
vk_point_particles | Beralih antara menggunakan point_list dan segitiga bertekstur untuk rendering partikel. (default: 1 ) |
vk_particle_size | Ukuran partikel yang diberikan. (Default: 40 ) |
vk_particle_att_a | Intensitas atribut partikel A. (Default: 0.01 ) |
vk_particle_att_b | Intensitas atribut partikel B. (default: 0 ) |
vk_particle_att_c | Intensitas atribut partikel C. (Default: 0.01 ) |
vk_particle_min_size | Ukuran minimum partikel yang diberikan. (default: 2 ) |
vk_particle_max_size | Ukuran maksimum partikel yang diberikan. (Default: 40 ) |
vk_lockpvs | Kunci Tabel PVS saat ini. (default: 0 ) |
vk_clear | Bersihkan buffer warna setiap bingkai. (default: 0 ) |
vk_modulate | Pengubah kecerahan tekstur. (default: 1 ) |
vk_shadows | Gambarlah bayangan entitas eksperimental. (default: 0 ) |
vk_picmip | Faktor menyusut untuk tekstur. (default: 0 ) |
vk_round_down | Beralih pembulatan ukuran tekstur. (default: 1 ) |
vk_log | Data validasi bingkai log untuk mengajukan. (default: 0 ) |
vk_dynamic | Gunakan pencahayaan dinamis. (default: 1 ) |
vk_showtris | Tampilkan segitiga mesh. (default: 0 ) |
vk_lightmap | Tampilkan lightmaps. (default: 0 ) |
vk_aniso | Sakelar penyaringan anisotropik. (default: 1 ) |
vk_vsync | Toggle Sinkronisasi Vertikal. (default: 0 ) |
vk_postprocess | Take Koreksi Warna/Gamma Tambahan. (default: 1 ) |
vk_underwater | Toggle Player Vision Warp saat di bawah air. (default: 1 ) |
vk_restart | Ciptakan seluruh subsistem Vulkan. |
vk_mip_nearfilter | Gunakan penyaringan tetangga terdekat untuk mipmaps. (default: 0 ) |
vk_texturemode | Ubah mode penyaringan tekstur saat ini:VK_NEAREST - interpolasi tetangga terdekat, tidak ada mipmapsVK_LINEAR - interpolasi linier, tidak ada mipmapsVK_MIPMAP_NEAREST - interpolasi tetangga terdekat dengan mipmapsVK_MIPMAP_LINEAR - Interpolasi linier dengan mipmaps (default) |
vk_lmaptexturemode | Sama seperti vk_texturemode tetapi diterapkan pada tekstur lightmap. |
vk_fullscreen_exclusive | Hanya Windows: Sakelar penggunaan mode layar penuh eksklusif (default: 1 ). Perhatikan bahwa ketika opsi ini diaktifkan, tidak ada jaminan bahwa layar penuh eksklusif dapat diperoleh di sistem Anda. |
vk_sampleshading diaktifkan karena bug potensial pada driver logam yang menyebabkan kebuntuan selama kompilasi shader