Selamat datang di panduan pengembangan game Windows!
Catatan
Sebelum menginvestasikan waktu mengembangkan game berdasarkan kerangka kerja UWP, harap dicatat bahwa UWP tidak lagi dalam pengembangan aktif. Selanjutnya, game berbasis UWP tidak lagi diterima di Xbox Store.
Panduan ini menyediakan kumpulan sumber daya dan informasi end-to-end yang Anda perlukan untuk mengembangkan game Platform Windows Universal (UWP). Versi bahasa Inggris (AS) dari panduan ini tersedia dalam format PDF .
Pengantar pengembangan game untuk Platform Windows Universal (UWP)
Panduan ini menyediakan kumpulan informasi dan sumber daya end-to-end yang akan membantu Anda saat anda mengembangkan game. Bagian diatur sesuai dengan tahap pengembangan game, jadi Anda akan tahu di mana mencari informasi ketika Anda membutuhkannya.
Jika Anda baru mengembangkan game di Windows, panduan Memulai mungkin tempat Anda ingin memulai. Bagian Sumber daya pengembangan Game juga menyediakan survei tingkat tinggi dokumentasi, program, dan sumber daya lain yang berguna saat membuat game. Jika Anda ingin memulai dengan melihat beberapa kode UWP sebagai gantinya, lihat Sampel game.
Sumber daya pengembangan game
Dari dokumentasi hingga program pengembang, forum, blog, dan sampel, ada banyak sumber daya yang tersedia untuk membantu Anda dalam perjalanan pengembangan game Anda. Berikut adalah kumpulan sumber daya yang perlu diketahui saat Anda mulai mengembangkan game Windows Anda.
Catatan
Beberapa fitur dikelola melalui berbagai program. Panduan ini mencakup berbagai sumber daya, sehingga Anda mungkin menemukan bahwa beberapa sumber daya tidak dapat diakses tergantung pada program tempat Anda berada, atau peran pengembangan spesifik Anda. Untuk informasi tentang bermitra dengan Microsoft, lihat Program pengembang.
Dokumentasi pengembangan game
Di seluruh panduan ini, Anda akan menemukan tautan mendalam ke dokumentasi yang relevan—yang diatur berdasarkan tugas, teknologi, dan tahap pengembangan game. Untuk memberi Anda tampilan luas tentang apa yang tersedia, berikut adalah portal dokumentasi utama untuk pengembangan game Windows.
Mendaftar sebagai pengembang di Pusat Mitra adalah langkah pertama untuk menerbitkan game Windows Anda. Akun pengembang memungkinkan Anda memesan nama game Anda, dan mengirimkan game gratis atau berbayar ke Microsoft Store untuk semua perangkat Windows. Gunakan akun pengembang Anda untuk mengelola game dan produk dalam game Anda, mendapatkan analitik terperinci, dan mengaktifkan layanan yang menciptakan pengalaman hebat bagi pemain Anda di seluruh dunia.
Microsoft juga menawarkan beberapa program pengembang untuk membantu Anda mengembangkan dan menerbitkan game Windows. Sebaiknya lihat apakah ada yang tepat untuk Anda sebelum mendaftar untuk akun Pusat Mitra. Untuk informasi selengkapnya, buka Program pengembang
Program pengembang
Untuk menerbitkan game di Microsoft Store, Anda juga harus membuat akun pengembang di Pusat Mitra .
Sampel permainan
Ada banyak sampel game dan aplikasi Windows yang tersedia untuk membantu Anda memahami fitur game Windows, dan memulai pengembangan game dengan cepat. Sampel dikembangkan dan diterbitkan secara teratur, jadi jangan lupa untuk sesekali memeriksa kembali portal sampel untuk melihat apa yang baru. Anda juga dapat menonton repositori GitHub untuk diberi tahu tentang perubahan dan penambahan.
Forum pengembang adalah tempat yang bagus untuk mengajukan dan menjawab pertanyaan pengembangan game, dan terhubung dengan komunitas pengembangan game. Forum juga dapat menjadi sumber daya yang fantastis untuk menemukan jawaban yang ada atas masalah sulit yang telah dihadapi dan diselesaikan pengembang di masa lalu.
Blog pengembang adalah sumber daya hebat lainnya untuk informasi terbaru tentang pengembangan game. Anda akan menemukan postingan tentang fitur baru, detail implementasi, praktik terbaik, latar belakang arsitektur, dan banyak lagi.
Dalam tahap konsep dan perencanaan, Anda memutuskan seperti apa permainan Anda dan teknologi dan alat yang akan Anda gunakan untuk menghiasnya.
Gambaran umum teknologi pengembangan game
Ketika Anda mulai mengembangkan game untuk UWP, Anda memiliki beberapa opsi yang tersedia untuk grafis, input, audio, jaringan, utilitas, dan pustaka.
Jika Anda sudah memutuskan semua teknologi yang akan Anda gunakan dalam game Anda, maka Anda sudah siap. Jika tidak, panduan Teknologi game untuk aplikasi UWP adalah gambaran umum yang sangat baik tentang banyak teknologi yang tersedia, dan sangat disarankan membaca untuk membantu Anda memahami opsi dan bagaimana mereka cocok bersama.
Memilih teknologi grafis dan bahasa pemrograman Anda
Ada beberapa bahasa pemrograman dan teknologi grafis yang tersedia untuk digunakan dalam game Windows. Jalur yang Anda ambil tergantung pada jenis permainan yang Anda kembangkan, pengalaman dan preferensi studio pengembangan Anda, dan persyaratan fitur tertentu dari game Anda. Apakah Anda akan menggunakan C#, C++, atau JavaScript? DirectX, XAML, atau HTML5?
DirectX
Microsoft DirectX adalah pilihan untuk membuat grafis dan multimedia 2D dan 3D berkinerja tinggi.
DirectX 12 lebih cepat dan lebih efisien daripada versi sebelumnya. Direct3D 12 memungkinkan adegan yang lebih kaya, lebih banyak objek, efek yang lebih kompleks, dan pemanfaatan penuh perangkat keras GPU modern pada PC Windows dan Xbox One.
Jika Anda ingin menggunakan alur grafis Direct3D 11 yang sudah dikenal, Anda masih akan mendapat manfaat dari fitur penyajian dan pengoptimalan baru yang ditambahkan ke Direct3D 11.3. Dan, jika Anda adalah pengembang WINDOWS API desktop yang sudah dicoba dan benar dengan root di Win32, maka Anda masih akan memiliki opsi tersebut untuk game Windows Anda.
Fitur ekstensif dan integrasi platform mendalam DirectX memberikan kekuatan dan performa yang diperlukan oleh game yang paling menuntut.
XAML adalah bahasa UI deklaratif yang mudah digunakan dengan fitur yang nyaman seperti animasi, papan cerita, pengikatan data, grafik berbasis vektor yang dapat diskalakan, mengubah ukuran dinamis, dan grafik adegan. XAML berfungsi dengan baik untuk UI game, menu, sprite, dan grafis 2D. Agar tata letak UI mudah, XAML kompatibel dengan alat desain dan pengembangan seperti Expression Blend dan Microsoft Visual Studio. XAML biasanya digunakan dengan C#, tetapi C++ juga merupakan pilihan yang baik jika itu bahasa pilihan Anda atau jika game Anda memiliki tuntutan CPU yang tinggi.
HyperText Markup Language (HTML) adalah bahasa markup UI umum yang digunakan untuk halaman web, aplikasi, dan klien kaya. Permainan Windows dapat menggunakan HTML5 sebagai lapisan presentasi berfitur lengkap dengan fitur HTML yang familier, akses ke Platform Windows Universal, dan dukungan untuk fitur web modern seperti AppCache, Pekerja Web, kanvas, seret dan letakkan, pemrograman asinkron, dan SVG. Di balik layar, penyajian HTML memanfaatkan kekuatan akselerasi perangkat keras DirectX, sehingga Anda masih bisa mendapatkan manfaat performa DirectX tanpa menulis kode tambahan apa pun. HTML5 adalah pilihan yang baik jika Anda mahir dengan pengembangan web, porting game web, atau Anda ingin menggunakan lapisan bahasa dan grafis yang bisa lebih mudah didekati daripada pilihan lainnya. HTML5 digunakan dengan JavaScript, tetapi juga dapat memanggil komponen yang dibuat dengan C# atau C++/CX.
Microsoft DirectX Graphics Infrastructure (DXGI) menyediakan interoperabilitas dan kompatibilitas di beberapa teknologi grafis. Untuk grafis berkinerja tinggi, Anda dapat menggabungkan XAML dan DirectX; menggunakan XAML untuk menu dan UI sederhana lainnya, dan DirectX untuk merender adegan 2D dan 3D yang kompleks. DXGI juga menyediakan kompatibilitas antara Direct2D, Direct3D, DirectWrite, DirectCompute, dan Microsoft Media Foundation.
Panduan dan referensi pemrograman Infrastruktur Grafis DirectX
C++/WinRT adalah bahasa overhead rendah berkinerja tinggi yang menyediakan kombinasi kecepatan, kompatibilitas, dan akses platform yang kuat. C++/WinRT memudahkan penggunaan semua fitur game hebat di Windows, termasuk DirectX dan Xbox Live. Anda juga dapat menggunakan kembali kode dan pustaka C++ yang ada. C++/WinRT menciptakan kode asli yang cepat yang tidak menimbulkan overhead pengumpulan sampah, sehingga game Anda dapat memiliki performa yang bagus dan konsumsi daya rendah, yang menyebabkan masa pakai baterai yang lebih lama. Gunakan C++/WinRT dengan DirectX atau XAML, atau buat game yang menggunakan kombinasi keduanya.
C#
C# (diucapkan "C sharp") adalah bahasa modern dan inovatif yang sederhana, kuat, aman tipe, dan berorientasi objek. C# memungkinkan pengembangan yang cepat sambil mempertahankan keakraban dan ekspresif bahasa gaya C. Meskipun mudah digunakan, C# memiliki banyak fitur bahasa canggih seperti polimorfisme, delegasi, lambda, penutupan, metode iterator, kovarian, dan ekspresi Language-Integrated Query (LINQ). C# adalah pilihan yang sangat baik jika Anda menargetkan XAML, ingin mulai cepat mengembangkan permainan Anda, atau memiliki pengalaman C# sebelumnya. C# digunakan terutama dengan XAML, jadi jika Anda ingin menggunakan DirectX, pilih C++ sebagai gantinya, atau tulis bagian dari game Anda sebagai komponen C++ yang berinteraksi dengan DirectX. Atau, pertimbangkan Win2D: pustaka grafis Direct2D mode langsung untuk C# dan C++.
Menggunakan komponen Windows Runtime untuk menggabungkan bahasa
Dengan Platform Windows Universal, mudah untuk menggabungkan komponen yang ditulis dalam bahasa yang berbeda. Buat komponen Windows Runtime di C++, C#, atau Visual Basic, lalu panggil dari JavaScript, C#, C++, atau Visual Basic. Ini adalah cara yang bagus untuk memprogram bagian dari permainan Anda dalam bahasa pilihan Anda. Komponen juga memungkinkan Anda menggunakan pustaka eksternal yang hanya tersedia dalam bahasa tertentu, serta menggunakan kode warisan yang telah Anda tulis.
Versi DirectX mana yang harus digunakan game Anda?
Jika Anda memilih DirectX untuk game Anda, maka Anda harus memutuskan versi mana yang akan digunakan: Microsoft Direct3D 12 atau Microsoft Direct3D 11.
DirectX 12 lebih cepat dan lebih efisien daripada versi sebelumnya. Direct3D 12 memungkinkan adegan yang lebih kaya, lebih banyak objek, efek yang lebih kompleks, dan pemanfaatan penuh perangkat keras GPU modern pada PC Windows dan Xbox One. Karena Direct3D 12 bekerja pada tingkat yang sangat rendah, ia dapat memberikan tim pengembangan grafis ahli atau tim pengembangan DirectX 11 berpengalaman semua kontrol yang mereka butuhkan untuk memaksimalkan pengoptimalan grafis.
Direct3D 11.3 adalah API grafis tingkat rendah yang menggunakan model pemrograman Direct3D yang akrab dan menangani untuk Anda lebih banyak kompleksitas yang terlibat dalam penyajian GPU. Ini juga didukung di Windows dan Xbox One. Jika Anda memiliki mesin yang ada yang ditulis dalam Direct3D 11, dan Anda belum siap untuk melakukan lompatan ke Direct3D 12, Anda dapat menggunakan Direct3D 11 pada 12 untuk mencapai beberapa peningkatan performa. Versi 11.3+ berisi fitur penyajian dan pengoptimalan baru yang diaktifkan juga di Direct3D 12.
Tergantung pada kebutuhan permainan Anda, menggunakan jembatan, mesin game, atau middleware dapat menghemat waktu dan sumber daya pengembangan dan pengujian. Berikut adalah beberapa gambaran umum dan sumber daya untuk jembatan, mesin game, dan middleware.
Azure PlayFab
Sekarang bagian dari keluarga Microsoft, Azure PlayFab adalah platform back-end lengkap untuk game langsung dan cara yang kuat bagi studio independen untuk memulai. Tingkatkan pendapatan, keterlibatan, dan retensi—sambil memotong biaya—dengan layanan game, analitik real time, dan LiveOps.
Unity menawarkan platform untuk menciptakan game dan aplikasi 2D, 3D, VR, dan AR yang indah dan menarik. Ini memungkinkan Anda untuk mewujudkan visi kreatif Anda dengan cepat, dan mengirimkan konten Anda ke hampir semua media atau perangkat.
Dimulai dengan Unity 5.4, Unity mendukung pengembangan Direct3D 12.
Rangkaian alat dan teknologi modular Havok membantu pembuat game mencapai tingkat interaktivitas dan perendaman baru. Havok memungkinkan fisika yang sangat realistis, simulasi interaktif, dan sinematik yang menakjubkan. Versi 2015.1 atau yang lebih baru secara resmi mendukung UWP di Visual Studio 2015 pada x86, 64-bit, dan Arm.
Unreal Engine adalah rangkaian lengkap alat pengembangan game untuk semua jenis game dan pengembang. Untuk konsol dan game PC yang paling menuntut, Unreal Engine digunakan oleh pengembang game di seluruh dunia.
Sekarang setelah Anda memutuskan jenis permainan yang ingin Anda buat, dan alat dan teknologi grafis yang akan Anda gunakan untuk membangunnya, Anda siap untuk memulai dengan desain dan prototipe. Pada intinya, game Anda adalah aplikasi Platform Windows Universal, jadi di situlah Anda akan mulai.
Pengantar Platform Windows Universal (UWP)
Platform Windows Universal (UWP) menyediakan platform API umum di seluruh perangkat Windows. Game yang menargetkan UWP dapat memanggil API WinRT yang umum untuk semua perangkat. Karena UWP menyediakan lapisan API yang dijamin, Anda dapat memilih untuk membuat satu paket aplikasi yang akan diinstal di seluruh perangkat Windows. Dan jika mau, game Anda masih dapat memanggil API (termasuk beberapa API Windows klasik dari Win32 dan .NET) yang khusus untuk perangkat yang dijalankan game Anda.
Berikut ini adalah panduan luar biasa yang membahas aplikasi Platform Windows Universal secara rinci, dan disarankan membaca untuk membantu Anda memahami platform.
Menyiapkan dan siap mengembangkan aplikasi Platform Windows Universal cepat dan mudah. Panduan berikut membawa Anda melalui proses langkah demi langkah.
Jika Anda seorang pemula absolut untuk pemrograman UWP, dan sedang mempertimbangkan untuk menggunakan XAML dalam game Anda (lihat Memilih teknologi grafis dan bahasa pemrograman Anda), pengembangan Windows 10 untuk seri video pemula absolut adalah tempat yang baik untuk memulai.
Mengumumkan seri pemula absolut Windows 10 menggunakan XAML (posting blog)
Manajemen masa pakai proses, atau siklus hidup aplikasi, menjelaskan berbagai status aktivasi yang dapat ditransisikan oleh aplikasi Platform Windows Universal. Game Anda dapat diaktifkan, ditangguhkan, dilanjutkan, atau dihentikan, dan dapat bertransisi melalui status tersebut dengan berbagai cara.
Game berbagi beberapa elemen antarmuka pengguna umum dan prinsip desain dengan aplikasi; tetapi game sering memiliki tampilan, nuansa, dan tujuan desain yang unik untuk pengalaman pengguna mereka. Game berhasil ketika desain yang bijaksana diterapkan pada kedua aspek — kapan permainan Anda harus menggunakan UX yang diuji, dan kapan harus menyimpang dan berinovasi? Teknologi presentasi yang Anda pilih untuk game Anda—DirectX, XAML, HTML5, atau beberapa kombinasi dari ketiganya—akan memengaruhi detail implementasi, tetapi prinsip desain yang Anda terapkan sebagian besar tidak bergantung pada pilihan tersebut.
Secara terpisah dari desain UX, desain gameplay seperti desain tingkat, mondar-mandir, desain dunia, dan aspek lainnya adalah bentuk seninya sendiri—yang terserah Anda dan tim Anda, dan tidak tercakup dalam panduan pengembangan ini.
Mengikuti pedoman warna yang konsisten dalam game Anda meningkatkan estetika, membantu navigasi, dan merupakan alat yang kuat untuk menginformasikan pemain menu dan fungsionalitas HUD. Pewarnaan elemen game yang konsisten seperti peringatan, kerusakan, XP, dan pencapaian dapat menyebabkan UI yang lebih bersih, dan mengurangi kebutuhan akan label eksplisit.
Penggunaan tipografi yang sesuai meningkatkan banyak aspek permainan Anda, termasuk tata letak UI, navigasi, keterbacaan, suasana, merek, dan perendaman pemain.
Peta UI adalah tata letak navigasi permainan dan menu yang dinyatakan sebagai diagram alur. Peta UI membantu semua pemangku kepentingan yang terlibat memahami antarmuka permainan dan jalur navigasi, dan dapat mengekspos potensi hambatan jalan dan jalan buntu di awal siklus pengembangan.
Berikut adalah panduan dan referensi untuk menerapkan audio dalam game menggunakan XAudio2, XAPO, dan Windows Sonic. XAudio2 adalah API audio tingkat rendah yang menyediakan fondasi pemrosesan dan pencampuran sinyal untuk mengembangkan mesin audio berkinerja tinggi. XAPO API memungkinkan pembuatan objek pemrosesan audio lintas platform (XAPO) untuk digunakan di XAudio2 pada Windows dan Xbox. Dukungan audio Windows Sonic memungkinkan Anda menambahkan Dolby Atmos untuk Home Theater, Dolby Atmos untuk Headphone, dan dukungan Windows HRTF ke aplikasi media game atau streaming Anda.
Daya yang Lebih Baik, Performa Lebih Baik: Game Anda di DirectX 12
DirectX Tool Kit dan pustaka
DirectX Tool Kit, pustaka pemrosesan tekstur DirectX, pustaka pemrosesan geometri DirectXMesh, pustaka UVAtlas, dan pustaka DirectXMath menyediakan tekstur, jala, sprite, dan fungsionalitas utilitas dan kelas pembantu lainnya untuk pengembangan DirectX. Pustaka ini dapat membantu menghemat waktu dan upaya pengembangan Anda.
Pada tahap ini, studio Anda sepenuhnya terlibat dan beralih ke siklus produksi, dengan pekerjaan yang didistribusikan ke seluruh tim Anda. Anda memoles, merefaktor, dan memperluas prototipe untuk membuatnya menjadi permainan penuh.
Pemberitahuan dan petak peta langsung
Petak peta adalah representasi permainan Anda di Menu Mulai. Petak peta dan pemberitahuan dapat mendorong minat pemain bahkan ketika mereka saat ini tidak memainkan game Anda.
Mengaktifkan pembelian produk dalam aplikasi (add-on)
Add-on (produk dalam aplikasi) adalah item tambahan yang dapat dibeli pemain dalam game. Add-on dapat berupa level permainan, item, atau apa pun yang mungkin dinikmati pemain Anda. Digunakan dengan tepat, add-on dapat memberikan pendapatan sekaligus meningkatkan pengalaman permainan. Anda menentukan dan menerbitkan add-on game Anda melalui Pusat Mitra, dan mengaktifkan pembelian dalam aplikasi dalam kode game Anda.
Penelusuran kesalahan, pengoptimalan performa, dan pemantauan
Untuk mengoptimalkan performa, Anda dapat memanfaatkan Mode Game di Windows untuk memberikan pengalaman bermain terbaik kepada gamer Anda dengan sepenuhnya memanfaatkan kapasitas perangkat keras mereka saat ini.
Windows Performance Toolkit (WPT) terdiri dari alat pemantauan performa yang menghasilkan profil performa mendalam sistem operasi dan aplikasi Windows. Ini sangat berguna untuk memantau penggunaan memori, dan meningkatkan performa game. Toolkit Performa Windows disertakan dalam Windows SDK dan Windows ADK. Toolkit ini terdiri dari dua alat independen: Windows Performance Recorder (WPR) dan Windows Penganalisis Kinerja (WPA). ProcDump, yang merupakan bagian dari Windows Sysinternals, adalah utilitas baris perintah yang memantau lonjakan CPU dan menghasilkan file cadangan selama crash game.
Beberapa bagian pengembangan DirectX dapat bernuansa dan kompleks. Ketika Anda sampai ke titik produksi di mana Anda perlu menggali detail mesin DirectX Anda, atau men-debug masalah performa yang sulit, sumber daya dan informasi di bagian ini dapat membantu.
Alat penyetelan dan penelusuran kesalahan performa untuk DirectX 12 di Windows
Manifes penyimpanan (StoreManifest.xml) adalah file konfigurasi opsional yang dapat Anda sertakan dalam paket aplikasi Anda. Manifes penyimpanan menyediakan fitur tambahan yang bukan bagian AppxManifest.xml dari file. Misalnya, Anda dapat menggunakan manifes penyimpanan untuk memblokir penginstalan game Anda jika perangkat target tidak memiliki tingkat fitur DirectX minimum yang ditentukan atau memori sistem minimum yang ditentukan.
Setelah anda selesai pengembangan dan mengirimkan permainan Anda, itu tidak permainan berakhir. Anda mungkin sudah selesai dengan pengembangan pada versi 1, tetapi perjalanan game Anda di marketplace baru saja dimulai. Anda mungkin ingin memantau penggunaan dan pelaporan kesalahan, menanggapi umpan balik pengguna, dan menerbitkan pembaruan untuk game Anda.
Visual Studio Application Insights menyediakan analitik performa, telemetri, dan penggunaan untuk game yang anda terbitkan. Application Insights membantu Anda mendeteksi dan menyelesaikan masalah setelah game dirilis, terus memantau dan meningkatkan penggunaan, serta memahami bagaimana pemain terus berinteraksi dengan game Anda. Application Insights berfungsi dengan menambahkan SDK ke aplikasi Anda, yang mengirim telemetri ke portal Azure.
Untuk memperbarui game yang diterbitkan, Anda mengirimkan paket aplikasi baru dengan nomor versi yang lebih tinggi. Setelah paket berjalan melalui pengiriman dan sertifikasi, paket akan secara otomatis tersedia untuk pelanggan sebagai pembaruan.
Xbox Live adalah jaringan game utama yang menghubungkan jutaan gamer di seluruh dunia. Pengembang mendapatkan akses ke fitur Xbox Live yang dapat secara organik menumbuhkan audiens game mereka, termasuk kehadiran Xbox Live, Leaderboards, Cloud Saves, Game Hubs, Clubs, Party Chat, Game DVR, dan banyak lagi.
Catatan
Jika Anda ingin mengembangkan judul yang diaktifkan Xbox Live, ada beberapa opsi yang tersedia untuk Anda. Untuk informasi tentang berbagai program, lihat Memilih program pengembang Xbox Live.
Di Team Xbox, kami percaya bahwa ketika semua orang bermain, kami semua menang. Kami berkomitmen untuk memastikan sebanyak mungkin pengembang memiliki alat yang diperlukan untuk menciptakan pengalaman yang mudah diakses. Jalur pembelajaran ini memperkenalkan konsep dasar tentang aksesibilitas game untuk pengembang game, platform, dan perangkat keras yang ingin memperluas pengetahuan mereka di ruang ini.