Menghindari angka ajaib di Phaser.io

Dalam domain masalah pengembangan game kanvas HTML5 di Phaser.io, masalah "angka ajaib" hard-coding terasa sangat sulit untuk dihindari. Berikut adalah beberapa contoh spesifik yang tampaknya terus-menerus muncul:

  • Atribut sprite seperti size, position, dll. Pengodean keras nilai-nilai ini akan menyebabkan masalah pada area pandang dengan ukuran, orientasi, atau kepadatan piksel yang tidak terduga.

  • Atribut badan fisika seperti velocity, force, jumlah partikel, dll. Pengodean keras nilai-nilai ini akan menyebabkan masalah pada perangkat dengan daya rendah, jika kecepatan bingkai turun di bawah 60 fps.

  • Nilai waktu mis. untuk objek Timer dan Tween. Sama seperti di atas, nilai hard-code akan menyebabkan perilaku tak terduga pada perangkat yang kekurangan daya, karena satu milidetik waktu permainan tidak lagi sama dengan satu milidetik waktu nyata.

Saya memahami bahwa solusi terhadap masalah-masalah ini cenderung bergantung pada permainan yang dipermasalahkan, namun hal ini tampak begitu universal dan tersebar luas sehingga harus ada praktik terbaik yang masuk akal untuk menghindarinya. Khusus untuk pengembangan game di Phaser.io


person galarant    schedule 08.11.2015    source sumber


Jawaban (1)


Hal-hal tersebut dapat dipertanggungjawabkan dengan persiapan yang cukup.

Atribut Sprite (yaitu, penskalaan)

Sumber daya yang bagus untuk mengatasi masalah dengan Phaser ada di sini:

http://www.joshmorony.com/how-to-scale-a-game-for-all-device-sizes-in-phaser/

Pada dasarnya Anda dapat menskalakan game Anda berdasarkan rasio piksel perangkat.

Fisika dan Waktu (penyesuaian perlambatan)

Di sini kita harus menyesuaikan parameter dalam game kita relatif terhadap kinerja perangkat pengguna. Masalah ini telah diatasi selama beberapa dekade dengan game PC karena setiap mesin sangat berbeda.

Secara klasik, Anda akan memiliki pengaturan kinerja default dan pengguna dapat menyesuaikannya melalui menu pengaturan. Ini sederhana dan efektif.

Saat ini, nilai-nilai ini biasanya disesuaikan secara individual untuk perangkat pengguna. Kemudian pengguna dapat mengubahnya sesuai kebutuhan.

Semua pengaturan yang diubah per perangkat dapat disimpan dalam kelas singleton/cfg di lokasi pilihan Anda.

person John Helfert    schedule 12.11.2015