Merancang Aplikasi Realitas Campuran yang Beradaptasi dengan Ruang Berbeda

, , , , , ,

Laser Dance dibangun dari awal untuk Mixed Reality (MR), tujuan saya adalah membuat game yang mengubah ruangan mana pun di rumah Anda menjadi rintangan laser. Pemain berjalan bolak-balik di antara dua tombol, dan setiap penekanan tombol memunculkan pola laser parametrik baru yang harus mereka navigasikan. Game ini masih dalam pengembangan penuh dan ditargetkan rilis pada tahun 2024.

Tantangan utama dalam game seperti ini, dan mungkin game MR skala ruangan lainnya, adalah membuat level yang dapat beradaptasi dengan baik di ruangan mana pun, apa pun ukuran dan tata letaknya. Selain itu, karena Laser Dance merupakan permainan yang membutuhkan banyak gerak fisik, maka permainan tersebut juga harus mengakomodasi perbedaan tingkat mobilitas masyarakat.

Untuk mencoba dan mengatasi tantangan ini, memiliki alat emulasi ruangan yang baik yang memungkinkan iterasi desain tingkat cepat sangatlah penting. Dalam artikel ini, saya ingin membahas cara kerja level dalam Laser Dance, dan berbagi beberapa alat pengembang yang saya buat untuk membantu saya membuat dan menguji pola laser adaptif game.

Definisi Pola Laser
Untuk memahami cara kerja alat emulasi ruangan Laser Dance, pertama-tama kita perlu membahas cara kerja pola laser dalam game.

Level dalam Tarian Laser terdiri dari serangkaian pola laser – pemain berjalan (atau merangkak) bolak-balik di antara dua tombol di ujung ruangan yang berlawanan, dan setiap penekanan tombol mengaktifkan pola berikutnya. Pola laser ini akan mencoba beradaptasi dengan ukuran dan tata letak ruangan.

Karena pola laser di level Laser Dance perlu beradaptasi dengan berbagai jenis ruang, posisi spesifik laser tidak ditentukan sebelumnya, tetapi dihitung secara parametrik berdasarkan ruangan.

Beberapa metode digunakan untuk memposisikan laser. Cara paling mudah adalah dengan menerapkan pola seragam di seluruh ruangan. Contohnya ditunjukkan di bawah ini yang menerapkan kisi-kisi laser berayun yang seragam di seluruh ruangan.

Contoh level berbasis pola, pola gerakan seragam diterapkan pada kisi-kisi laser, yang menutupi seluruh ruangan.

Level lain mungkin menggunakan orientasi tombol relatif satu sama lain untuk menentukan pola laser. Contoh di bawah ini menunjukkan pola yang menciptakan rangkaian dinding laser yang berkedip di antara tombol.

Dinding laser yang berkedip diorientasikan tegak lurus terhadap garis imajiner antara kedua tombol.

Salah satu alat yang lebih serbaguna untuk menghasilkan level adalah algoritme pencarian jalur khusus, yang ditulis untuk Laser Dance oleh Mark Schramm, pengembang tamu di proyek tersebut. Algoritme ini mencoba menemukan jalur antar tombol yang memaksimalkan jarak dari furnitur dan dinding, sehingga menjadikan jalur lebih aman bagi pemain.

Jalur yang dibuat oleh algoritme ini memungkinkan adanya beberapa pola laser, seperti terowongan laser, atau menempatkan penghalang laser di tengah jalur pemain di antara tombol.

Level ini menggunakan pencarian jalan untuk menghasilkan terowongan laser yang mengular di sekitar furnitur di ruangan ini.

Emulasi Ruangan
Berbagai teknik yang dijelaskan di atas untuk membuat pola laser adaptif terkadang dapat menimbulkan hasil yang tidak diharapkan atau bug pada tata letak ruangan tertentu. Selain itu, merancang level sambil mencoba mempertimbangkan berbagai jenis ruangan dapat menjadi tantangan.

Untuk membantu hal ini, saya menghabiskan sebagian besar pengembangan awal Laser Dance untuk membuat seperangkat alat emulasi ruangan agar saya dapat melakukan simulasi dan membandingkan secara langsung tampilan level antara tata letak ruangan yang berbeda.

Ruangan disimpan dalam game sebagai file teks sederhana yang berisi semua posisi dan dimensi dinding dan furnitur. Alat emulasi dapat mengambil file-file ini, dan memunculkan beberapa ruangan yang bersebelahan langsung di editor Unity.

Anda kemudian dapat menukar level yang berbeda, atau bahkan hanya pola laser individual, dan menirunya secara berdampingan di berbagai ruangan untuk membandingkannya secara langsung.

Alat khusus yang dibangun di Unity memunculkan beberapa ruangan secara berdampingan dalam tampilan ortografis, menunjukkan bagaimana level tertentu dalam Laser Dance akan terlihat dalam tata letak ruangan yang berbeda.

Source