Teknologi game untuk aplikasi UWP

Dalam panduan ini, Anda akan mempelajari tentang teknologi yang tersedia untuk mengembangkan game Platform Windows Universal (UWP).

Manfaat Windows 10 untuk pengembangan game

Dengan diperkenalkannya UWP di Windows 10, judul Windows 10 Anda akan dapat menjangkau semua platform Microsoft. Dengan migrasi gratis dari versi Windows sebelumnya, ada jumlah klien Windows 10 yang terus meningkat. Kombinasi dari kedua hal ini berarti bahwa judul Windows 10 Anda akan dapat menjangkau sejumlah besar pelanggan melalui Microsoft Store.

Selain itu, Windows 10 menawarkan banyak fitur baru yang sangat bermanfaat untuk game:

  • Mengurangi penomor memori dan mengurangi ukuran sistem memori secara keseluruhan
  • Peningkatan manajemen memori grafis secara aktif mengalokasikan dan melindungi lebih banyak memori untuk game latar depan

Game UWP dengan C++ dan DirectX

Game real time yang membutuhkan performa tinggi harus menggunakan API DirectX. DirectX adalah kumpulan API asli untuk membuat game dan aplikasi multimedia yang membutuhkan performa tinggi, seperti game 3D.

Lingkungan pengembangan

Untuk membuat game untuk UWP, Anda harus menyiapkan lingkungan pengembangan dengan menginstal Visual Studio 2015 atau yang lebih baru. Kami menyarankan agar Anda menginstal versi terbaru Visual Studio, memberi Anda akses ke pembaruan pengembangan dan keamanan terbaru. Visual Studio memungkinkan Anda membuat aplikasi UWP dan menyediakan alat untuk pengembangan game:

  • Alat Visual Studio untuk pemrograman game DX - Visual Studio menyediakan alat untuk membuat, mengedit, mempratinjau, dan mengekspor sumber daya gambar, model, dan shader. Ada juga alat yang dapat Anda gunakan untuk mengonversi sumber daya pada waktu build dan men-debug kode grafis DirectX. Untuk informasi selengkapnya, lihat Menggunakan alat Visual Studio untuk pemrograman game.
  • Fitur diagnostik grafis Visual Studio - Alat diagnostik grafis sekarang tersedia dari dalam Windows sebagai fitur opsional. Alat diagnostik memungkinkan Anda melakukan penelusuran kesalahan grafis, analisis bingkai grafis, dan memantau penggunaan GPU secara real time. Untuk informasi selengkapnya, lihat Menggunakan runtime DirectX dan fitur diagnostik grafis Visual Studio.

Untuk informasi selengkapnya, lihat Menyiapkan pemrograman Platform Windows Universal dan DirectX Anda.

Mulai menggunakan templat proyek game DirectX

Setelah menyiapkan lingkungan pengembangan, Anda dapat menggunakan salah satu templat proyek terkait DirectX untuk membuat game UWP DirectX Anda. Visual Studio 2015 memiliki tiga templat yang tersedia untuk membuat proyek DirectX UWP baru, Aplikasi DirectX 11 (Universal Windows), Aplikasi DirectX 12 (Universal Windows), dan DirectX 11 dan Aplikasi XAML (Universal Windows). Untuk informasi selengkapnya, lihat Membuat proyek game Platform Windows Universal dan DirectX dari templat.

API Windows 10

Windows 10 menyediakan koleksi API yang luas yang berguna untuk pengembangan game. Ada API untuk hampir semua aspek game termasuk, Grafis 3D, Grafis 2D, Audio, Input, Sumber Daya Teks, Antarmuka Pengguna, dan jaringan.

Ada banyak API yang terkait dengan pengembangan game, tetapi tidak semua game perlu menggunakan semua API. Misalnya, beberapa game hanya akan menggunakan grafis 3D dan hanya menggunakan Direct3D, beberapa game hanya dapat menggunakan grafis 2D dan hanya menggunakan Direct2D, dan masih game lain dapat memanfaatkan keduanya. Diagram berikut menunjukkan API terkait pengembangan game yang dikelompokkan menurut jenis fungsionalitas.

game platform technologies

  • Grafis 3D - Windows 10 mendukung dua set API grafis 3D, Direct3D 11, dan Direct3D 12. Kedua API ini menyediakan kemampuan untuk membuat grafik 3D dan 2D. Direct3D 11 dan Direct3D 12 tidak digunakan bersama-sama, tetapi dapat digunakan dengan SALAH SATU API dalam grup Grafis dan UI 2D. Untuk informasi selengkapnya tentang menggunakan API grafis dalam game Anda, lihat Grafik dasar 3D untuk game DirectX.

    API Deskripsi
    Direct3D 12

    Direct3D 12 memperkenalkan versi Direct3D berikutnya, API grafis 3D di jantung DirectX. Versi Direct3D ini dirancang agar lebih cepat dan efisien daripada versi Direct3D sebelumnya. Tradeoff untuk kecepatan Direct3D 12 yang meningkat adalah tingkatnya lebih rendah dan mengharuskan Anda untuk mengelola sumber daya grafis Anda sendiri dan memiliki pengalaman pemrograman grafis yang lebih luas untuk mewujudkan peningkatan kecepatan.

    Kapan digunakan

    Gunakan Direct3D 12 ketika Anda perlu memaksimalkan performa game Anda dan game Anda terikat CPU.

    Untuk nformasi selengkapnya

    Lihat dokumentasi Direct3d 12.

    Direct3D 11

    Direct3D 11 adalah versi Direct3D sebelumnya dan memungkinkan Anda membuat grafik 3D menggunakan tingkat abstraksi perangkat keras yang lebih tinggi daripada D3D 12.

    Kapan digunakan

    Gunakan Direct3D 11 jika Anda memiliki kode Direct3D 11 yang ada, game Anda tidak terikat CPU, atau Anda ingin manfaat memiliki sumber daya yang dikelola untuk Anda.

    Untuk nformasi selengkapnya

    Lihat dokumentasi Direct3D 11.

     

  • Grafis dan UI 2D - API mengenai grafik 2D seperti teks dan antarmuka pengguna. Semua grafik 2D dan API UI bersifat opsional.

    API Deskripsi
    Direct2D

    Direct2D adalah API grafis 2-D yang dipercepat perangkat keras, mode langsung, yang memberikan performa tinggi dan penyajian berkualitas tinggi untuk geometri 2-D, bitmap, dan teks. API Direct2D dibangun di Direct3D dan dirancang untuk beroperasi dengan baik dengan GDI, GDI+, dan Direct3D.

    Kapan digunakan

    Direct2D dapat digunakan alih-alih Direct3D untuk menyediakan grafik untuk game 2D murni seperti penggulung samping atau permainan papan, atau dapat digunakan dengan Direct3D untuk menyederhanakan pembuatan grafis 2D dalam game 3D, seperti antarmuka pengguna atau heads-up-display.

    Untuk nformasi selengkapnya

    Lihat dokumentasi Direct2D.

    DirectWrite

    DirectWrite menyediakan kemampuan tambahan untuk bekerja dengan teks dan dapat digunakan dengan Direct3D atau Direct2D untuk menyediakan output teks untuk antarmuka pengguna atau area lain di mana teks diperlukan. DirectWrite mendukung pengukur, gambar, dan pengujian hit teks multiformat. DirectWrite menangani teks dalam semua bahasa yang didukung untuk aplikasi global dan terlokalisasi. DirectWrite juga menyediakan API penyajian glyph tingkat rendah untuk pengembang yang ingin melakukan tata letak mereka sendiri dan pemrosesan Unicode-to-glyph.

    Kapan digunakan

    Untuk nformasi selengkapnya

    Lihat dokumentasi DirectWrite.

    DirectComposition

    DirectComposition adalah komponen Windows yang memungkinkan komposisi bitmap berkinerja tinggi dengan transformasi, efek, dan animasi. Pengembang aplikasi dapat menggunakan API DirectComposition untuk membuat antarmuka pengguna yang menarik secara visual yang menampilkan transisi animasi yang kaya dan lancar dari satu visual ke visual lainnya.

    Kapan digunakan

    DirectComposition dirancang untuk menyederhanakan proses pembuatan visual dan membuat transisi animasi. Jika gim Anda memerlukan antarmuka pengguna yang kompleks, Anda dapat menggunakan DirectComposition untuk menyederhanakan pembuatan dan manajemen UI.

    Untuk nformasi selengkapnya

    Lihat dokumentasi DirectComposition.

     

  • Audio - API mengenai memutar audio dan menerapkan efek audio. Untuk informasi tentang menggunakan API audio di game Anda, lihat Audio untuk game.

    API Deskripsi
    XAudio2

    XAudio2 adalah API audio tingkat rendah yang menyediakan fondasi untuk pemrosesan dan pencampuran sinyal. XAudio dirancang agar sangat responsif untuk mesin audio game sambil mempertahankan kemampuan untuk membuat efek audio kustom dan rantai efek dan filter audio yang kompleks.

    Kapan digunakan

    Gunakan XAudio2 ketika game Anda perlu memainkan suara dengan overhead dan penundaan minimal.

    Untuk nformasi selengkapnya

    Lihat dokumentasi XAudio2.

    Grafik audio

    Untuk fungsionalitas yang dapat Anda terapkan dengan XAudio2, Anda memiliki alternatif menggunakan API grafik audio Windows Runtime sebagai gantinya. Untuk membantu Anda memutuskan antara dua alternatif, lihat Memilih Windows Runtime AudioGraph atau XAudio2.

    Kapan digunakan

    Gunakan grafik audio saat game Anda perlu memainkan suara dengan overhead dan penundaan minimal, tetapi dengan API yang jauh lebih mudah digunakan daripada XAudio2, dan dengan opsi dukungan C#.

    Untuk nformasi selengkapnya

    Lihat dokumentasi Grafik audio.

    Media Foundation

    Microsoft Media Foundation dirancang untuk pemutaran file dan streaming media, baik audio maupun video, tetapi juga dapat digunakan dalam game ketika fungsionalitas tingkat yang lebih tinggi daripada XAudio2 diperlukan dan beberapa overhead tambahan dapat diterima.

    Kapan digunakan

    Fondasi media sangat berguna untuk adegan sinematik atau komponen non-interaktif dari game Anda. Fondasi media juga berguna untuk mendekode file audio untuk pemutaran menggunakan XAudio2.

    Untuk nformasi selengkapnya

    Lihat gambaran umum Microsoft Media Foundation .

     

  • Input - API mengenai input dari keyboard, mouse, gamepad, dan sumber input pengguna lainnya.

    API Deskripsi
    XInput

    XInput Game Controller API memungkinkan aplikasi untuk menerima input dari pengontrol game.

    Kapan digunakan

    Jika game Anda perlu mendukung input gampad dan Anda memiliki kode XInput yang ada, Anda dapat terus menggunakan XInput. XInput telah digantikan oleh Windows.Gaming.Input untuk UWP, dan jika Anda menulis kode input baru, Anda harus menggunakan Windows.Gaming.Input alih-alih XInput.

    Untuk nformasi selengkapnya

    Lihat dokumentasi XInput.

    Windows.Gaming.Input

    WINDOWS.Gaming.Input API menggantikan XInput dan menyediakan fungsionalitas yang sama dengan keuntungan berikut daripada Xinput:

    • Penggunaan sumber daya yang lebih rendah
    • Latensi panggilan API yang lebih rendah untuk mengambil input
    • Kemampuan untuk bekerja dengan lebih dari 4 gamepad sekaligus
    • Kemampuan untuk mengakses fitur gamepad tambahan, seperti motor getaran pemicu
    • Kemampuan untuk diberi tahu ketika pengontrol terhubung/memutuskan sambungan melalui peristiwa alih-alih polling
    • Kemampuan untuk mengaitkan input ke pengguna tertentu (Windows.System.User)

    Kapan digunakan

    Jika game Anda perlu mendukung input gamepad dan tidak menggunakan kode XInput yang ada atau Anda memerlukan salah satu manfaat yang tercantum di atas, Anda harus menggunakan Windows.Gaming.Input.

    Untuk nformasi selengkapnya

    Lihat dokumentasi Windows.Gaming.Input.

    Windows.UI.Core.CoreWindow

    Kelas Windows.UI.Core.CoreWindow menyediakan peristiwa untuk melacak penekanan dan pergerakan penunjuk, serta menunjuk ke bawah dan meningkatkan peristiwa.

    Kapan digunakan

    Gunakan peristiwa Windows.UI.Core.CoreWindows saat Anda perlu melacak mouse atau tombol yang ditekan dalam permainan Anda.

    Untuk nformasi selengkapnya

    Lihat Kontrol move-look untuk game untuk informasi selengkapnya tentang menggunakan mouse atau keyboard dalam game Anda.

     

  • Matematika - API mengenai menyederhanakan operasi matematika yang umum digunakan.

    API Deskripsi
    DirectXMath

    Api DirectXMath menyediakan jenis dan fungsi C++ yang ramah SIMD untuk aljabar linier umum dan operasi matematika grafis yang umum untuk game.

    Kapan digunakan

    Penggunaan DirectXMath bersifat opsional dan menyederhanakan operasi matematika umum.

    Untuk nformasi selengkapnya

    Lihat dokumentasi DirectXMath.

     

  • Jaringan - API mengenai berkomunikasi dengan komputer dan perangkat lain melalui internet atau jaringan privat.

    API Deskripsi
    Windows.Networking.Sockets

    Namespace layanan Windows.Networking.Sockets menyediakan soket TCP dan UDP yang memungkinkan komunikasi jaringan yang andal atau tidak dapat diandalkan.

    Kapan digunakan

    Gunakan Windows.Networking.Sockets jika permainan Anda perlu berkomunikasi dengan komputer atau perangkat lain melalui jaringan.

    Untuk nformasi selengkapnya

    Lihat Bekerja dengan jaringan dalam permainan Anda.

    Windows.Web.HTTP

    Namespace Layanan Windows.Web.HTTP menyediakan koneksi andal ke server HTTP yang dapat digunakan untuk mengakses situs web.

    Kapan digunakan

    Gunakan Windows.Web.HTTP ketika permainan Anda perlu mengakses situs web untuk mengambil atau menyimpan informasi.

    Untuk nformasi selengkapnya

    Lihat Bekerja dengan jaringan dalam permainan Anda.

     

  • Utilitas Dukungan - Pustaka yang dibangun di API Windows 10.

    Pustaka Deskripsi
    Kit Alat DirectX

    DirectX Tool Kit (DirectXTK) adalah kumpulan kelas pembantu untuk menulis kode DirectX 11.x di C++.

    Kapan digunakan

    Gunakan DirectX Tool Kit jika Anda adalah pengembang C++ yang mencari pengganti modern ke kode utilitas D3DX warisan atau Anda adalah pengembang XNA Game Studio yang beralih ke C++asli.

    Untuk nformasi selengkapnya

    Lihat halaman proyek DirectX Tool Kit, https://github.com/Microsoft/DirectXTK.

    Win2D

    Win2D adalah API Windows Runtime yang mudah digunakan untuk penyajian grafis 2D mode langsung.

    Kapan digunakan

    Gunakan Win2D jika Anda adalah pengembang C++ dan ingin lebih mudah menggunakan pembungkus WinRT untuk Direct2D dan DirectWrite, atau Anda adalah pengembang C# yang ingin menggunakan Direct2D dan DirectWrite.

    Untuk nformasi selengkapnya

    Lihat halaman proyek Win2D, https://github.com/Microsoft/Win2D.

Layanan Langsung Xbox

Program Pengembang Xbox memungkinkan pengembang mana pun untuk mengintegrasikan Xbox Live ke dalam game UWP mereka dan menerbitkan ke Xbox One dan Windows 10. Integrasikan pengalaman sosial Xbox Live seperti masuk, kehadiran, papan peringkat, dan lainnya ke judul Anda, dengan waktu pengembangan minimal. Fitur sosial Xbox Live dirancang untuk menumbuhkan audiens Anda secara organik, menyebarkan kesadaran kepada lebih dari 55 juta gamer aktif.

Jika Anda ingin akses ke lebih banyak kemampuan Xbox Live, dukungan pemasaran dan pengembangan khusus, dan kesempatan untuk ditampilkan di toko Xbox One utama, berlaku untuk program ID@Xbox . Untuk melihat fitur mana yang tersedia untuk Program Pembuat Langsung Xbox dan program ID@Xbox, lihat tabel Fitur.

Untuk informasi selengkapnya, buka Menambahkan Xbox Live ke game Anda.

Alternatif untuk menulis game dengan DirectX dan UWP

Game UWP tanpa DirectX

Game yang lebih sederhana dengan persyaratan performa minimal, seperti permainan kartu atau permainan papan, dapat ditulis tanpa DirectX dan tidak perlu ditulis dalam C++. Game semacam ini dapat menggunakan salah satu bahasa yang didukung oleh UWP seperti C#, Visual Basic, C++, dan HTML/JavaScript. Jika performa dan grafik intensif bukan persyaratan untuk game Anda, contoh contoh permainan sentuh JavaScript dan HTML5 sebagai contoh.

Mesin game

Sebagai alternatif untuk menulis mesin game Anda sendiri menggunakan API pengembangan game Windows, banyak mesin game berkualitas tinggi yang dibangun pada API pengembangan game Windows tersedia untuk mengembangkan game di platform Windows. Saat mempertimbangkan mesin atau pustaka game, Anda memiliki beberapa opsi:

  • Mesin game penuh - Mesin game lengkap merangkum sebagian besar atau semua API Windows 10 yang akan Anda gunakan saat menulis mesin game dari awal, seperti grafis, audio, input, dan jaringan. Mesin game penuh juga dapat menyediakan fungsionalitas logika game seperti kecerdasan buatan dan pathfinding.
  • Mesin grafis - Mesin grafis merangkum API grafis Windows 10, mengelola sumber daya grafis, dan mendukung berbagai format model dan dunia.
  • Mesin audio - Mesin audio merangkum API audio Windows 10, mengelola sumber daya audio, dan menyediakan pemrosesan dan efek audio tingkat lanjut.
  • Mesin jaringan - Mesin jaringan merangkum API jaringan Windows 10 untuk menambahkan dukungan multipemain berbasis peer-to-peer atau server ke game Anda, dan dapat mencakup fungsionalitas jaringan tingkat lanjut untuk mendukung sejumlah besar pemain.
  • Mesin kecerdasan buatan dan pathfinding - AI dan mesin pathfinding menyediakan kerangka kerja untuk mengontrol perilaku agen dalam game Anda.
  • Mesin tujuan khusus - Berbagai mesin tambahan ada untuk menangani hampir semua tugas terkait pengembangan game yang mungkin Anda jalankan, seperti membuat sistem inventaris dan pohon dialog.

Mengirimkan game ke Microsoft Store

Setelah siap mempublikasikan game, Anda harus membuat akun pengembang dan mengirimkan game ke Microsoft Store.

Untuk informasi tentang mengirimkan game Anda ke Microsoft Store, lihat Mengirimkan dan menerbitkan game Anda.