Main Page
From Virtujoy Documentation
Dokumentasi penelitian dan pengembangan proyek capstone.
Apa yang hendak kita buat?
Ringkasnya: Game PC yang menggunakan smartphone sebagai perangkat input (input peripheral).
Why pick this topic?
- Mahasiswa tertarik mengerjakan sesuatu yang berhubungan erat dengan HCI/IMK.
- Smartphone modern dilengkapi dengan aneka sensor. Sensor-based input bisa jadi lebih baik dalam memperkirakan gerakan pemain ketimbang webcam-based input (≫ refer to proyek MDH).
- Memenuhi persyaratan AI untuk capstone. Data sensor bisa dijadikan input bagi model ML, yang mencoba memprediksi gerakan yang user lakukan (memukul, melempar, dst.).
- Memenuhi persyaratan fungsi pengendalian hardware untuk capstone.
- Terdapat potensi signifikan untuk pemanfaatan reinforcement learning (≫ mencegah complaint proyek terlalu sederhana dari dosen).
Why not pick this topic?
- Apparently proyek non-deep-learning mendapatkan skor yang lebih rendah? Mungkin saja deep learning tidak dibutuhkan untuk use case game ini.
- Bahkan, bisa jadi rekognisi gerakan pemain sebetulnya tidak memerlukan machine learning sama sekali. Diperlukan pendalaman lebih lanjut untuk menentukan bila sistem rule-based sebenarnya sudah sangat oke untuk use case kita.
Things to note about:
- Game yang mau dibuat 3D (supaya keren).
Game engine
Godot.
Sensor API
Web
Sensor API pada web mengekspos fungsionalitas sensor device hardware.[1]
- LinearAccelerationSensor (percepatan tanpa gravitasi, pada sumbu XYZ)
- OrientationSensor (orientasi XYZW, alias quarternion)
Di sini, kita bisa mengembangkan web app yang mengumpulkan data sensor dan mengirimkannya ke server game.
Catatan: Sensor API hanya didukung browser tertentu (misalnya Chrome).
<ul>
<li id="gyroscope-x"></li>
<li id="gyroscope-y"></li>
<li id="gyroscope-z"></li>
</ul>
if (typeof Gyroscope === "undefined") {
alert("Gyroscope API not supported on this device/browser.")
}
else {
const gyroscope = new Gyroscope({ frequency: 60 });
const gyroscopeLabelX = document.querySelector("#gyroscope-x");
const gyroscopeLabelY = document.querySelector("#gyroscope-y");
const gyroscopeLabelZ = document.querySelector("#gyroscope-z");
gyroscope.addEventListener("reading", (e) => {
gyroscopeLabelX.innerText = `Angular velocity along the X-axis ${gyroscope.x}`;
gyroscopeLabelY.innerText = `Angular velocity along the Y-axis ${gyroscope.y}`;
gyroscopeLabelZ.innerText = `Angular velocity along the Z-axis ${gyroscope.z}`;
});
gyroscope.start();
}
Native mobile (Android)
Di satu sisi, Android juga memiliki Sensor API.[2] Namun, pengembangan native mobile app jauh lebih menyusahkan ketimbang web app.
Kesimpulan
Pilih web bila memungkinkan.