Apa yang harus saya ingat ketika membuat game 2D untuk berbagai resolusi?


27

Saya membuat game 2D (Android). Perangkat Android sangat bervariasi dalam resolusi layar; apa yang perlu saya ingat saat membuat game saya?

  • Apakah saya perlu menyimpan versi besar semua gambar dan menurunkan skala tergantung pada resolusi (bukankah itu membuang-buang ruang)?
  • Apakah font bitmap skala dengan baik atau apakah saya perlu menggunakan sesuatu yang lain?
  • Ada lagi yang saya lupa?

Jawaban:


26

Saya adalah pengembang game mobile yang sangat portabel yang beroperasi pada apa saja, mulai dari PC, TV, bahkan Black & White Amazon Kindle (Smiles HD - http://smileshd.com - Lebih banyak perangkat dan platform daripada yang Anda lihat di sana) .

Cara terbaik yang saya temukan untuk mendukung perangkat apa pun adalah dengan memilih resolusi dasar, kemudian meningkatkan (atau menurunkan) ke layar saat ini. Jika Anda ingin menyontek, Anda dapat menyesuaikan dengan resolusi layar baru, tetapi idealnya Anda harus menjaga rasio aspek yang sama. Menyesuaikan permainan yang dibuat untuk tampilan 4: 3 terlihat mengerikan pada 16: 9, tetapi pas 16: 9 ke 16:10, tidak ada yang mungkin memperhatikan. Anda akan perhatikan saya mengacu pada layar dengan rasio aspek dan bukan dimensi, yang merupakan cara yang sangat membantu untuk berpikir di era ukuran LCD yang benar-benar acak.

Untuk membuat karya seni yang sesuai dengan layar mana pun dengan tetap mempertahankan rasio aspek, buat latar belakang yang lebih besar daripada layar paling umum yang pernah ada. Ini mirip dengan konsep area aman judul dengan Televisi.

http://en.wikipedia.org/wiki/Safe_area

Latar belakang yang dihasilkan bekerja sangat bagus untuk ini. Pola ubin, papan catur, bentuk fraktal, dll. Anda hanya perlu menghasilkan sedikit lebih banyak agar sesuai dengan layar baru.

Selain itu, membuat gambar statis lebih besar dari apa yang akan dilihat pengguna biasa. Lebih lebar dari layar lebar (16: 9), dan lebih persegi dari def standar (4: 3). Kembali lagi ke area yang aman untuk judul, sesuaikan informasi penting Anda ke area yang aman, tingkatkan sedikit sehingga area aman Anda menyentuh salah satu ujung layar Anda, dan tinggalkan beberapa limpasan untuk perangkat yang hanya sedikit lebih besar.

Variasi yang saya kerjakan hari ini adalah membuat objek 3D "judul aman". Karena mereka 3D, seluruhnya terdiri dari simpul, membuatnya lebih besar dari layar praktis tidak memakan lebih banyak memori daripada jika mereka cocok. Sama seperti kepadatan piksel meningkat, Anda mungkin ingin beberapa tekstur detail lebih tinggi tersedia. Jika tidak, oh well, sedikit buram.

Antarmuka pengguna, saya ingin menyesuaikan UI utama dalam kotak yang sempurna di tengah layar. Sudut dan tepi tengah juga membuat tempat yang sangat bagus untuk meletakkan barang; Anda harus menghitung koordinatnya seperti itu (relatif sudut atau tepi tengah).

http://www.smileshd.com/press/iPad/png/UI01.png

Jika Anda benar-benar ingin mendapatkan kemewahan, Anda dapat mendukung orientasi Tinggi dan Lebar. Beberapa perangkat melaporkan resolusi layar mereka lebih tinggi daripada lebar (misalnya iPhone), jadi Anda mungkin harus melakukan sesuatu untuk perangkat tersebut, walaupun itu hanya dengan memutar semua koordinat Anda.

User Interface yang beradaptasi dengan layar tinggi dan lebar bisa menjadi pemandangan yang cukup mengesankan.

Lebar: http://www.smileshd.com/press/iPad/jpg/SmilesHD01.jpg

Tinggi: http://www.smileshd.com/press/iPad/jpg/SmilesHD02.jpg

Di sisi positifnya, desain bijaksana, Anda hanya perlu mempertimbangkan Tinggi dan Lebar, bukan Portrait + Reverse Portrait + Landscape + Reverse Landscape. Saat Anda memilih posisi benda di layar, pertimbangkan untuk memiliki posisi alternatif yang lebih tepat untuk orientasi lain.

Apakah saya perlu menyimpan versi besar semua gambar dan menurunkan skala tergantung pada resolusi (bukankah itu membuang-buang ruang)?

Baik Anda dapat "membuang ruang" dan mendukung berbagai perangkat yang lebih luas dengan satu bangunan, atau "buang waktu Anda" dan harus membuat BANYAK membangun dan mengubah ukuran karya seni untuk banyak perangkat.

Kasus terbaik, Anda harus membuat karya seni Anda pada resolusi yang lebih tinggi daripada ukuran akhir pada televisi 1080p (1920x1080). 2048x2048 harus berukuran umum di karya seni sumber Anda. Entah itu, atau pertimbangkan menggunakan alat karya seni Vector seperti Flash dan Adobe Illustrator.

Saya sangat merekomendasikan membuat proses otomatis untuk mengubah ukuran karya seni Anda. Sebagian besar perangkat seluler saat ini, termasuk tablet, tidak melebihi resolusi lebih besar dari 720p (1280x720) ... setidaknya, tidak banyak. Namun, tahun depan, kita tidak tahu apakah itu benar lagi (iPad 3?).

Either way, untuk kinerja terbaik, Anda harus terbiasa dengan gagasan karya seni sumber dan aset sumber. Anda kemudian dapat melakukan proses yang mengoptimalkan data untuk perangkat apa pun yang Anda targetkan.

Apakah font bitmap skala dengan baik atau apakah saya perlu menggunakan sesuatu yang lain?

Mereka mengukur dengan baik jika Anda menggunakan pemfilteran yang baik. Jika Anda membuat game 2D dengan perangkat keras 3D (OpenGL ES), maka saya sangat menyarankan Anda menggunakan Linear Filtering yang dikombinasikan dengan MipMapping (yaitu serangkaian gambar yang diperkecil). Anda bisa mendapatkan hasil yang sangat sempurna dengan ini, dan seringkali lebih cepat menggunakan mipmaps daripada tidak.

http://en.wikipedia.org/wiki/Mipmapping

Bagaimanapun, saya harap itu membantu. Semoga berhasil dengan proyek Anda.


2

Secara umum, setiap tekstur yang Anda buat harus 256x256, atau 512x512. Jika Anda juga menargetkan pembalut (Galaxy Tab, Honecomb, iPad), maka 512x512 tidak akan memenuhi seluruh layar, jadi Anda mungkin ingin menyertakan versi lebih besar dari aset seni yang perlu mengisi layar. Apple menyertakan akhiran gambar "@ 2x" asli untuk menangani kasus ini.

Solusi sederhana, yang saya gunakan sendiri, adalah dengan hanya membuat game Anda untuk layar 320x480 (iPhone). Biarkan dobel ini secara alami untuk iPhone 2 (640 x 960), dan satu-satunya hal lain yang benar-benar harus Anda tangani secara berbeda adalah kenyataan bahwa beberapa perangkat Android memiliki layar yang lebih tinggi - jadi cukup letakkan penyangga di bagian atas dan bawah (dalam potret). mode).

Singkatnya - buat game Anda untuk satu ukuran layar netral, dan kemudian tutup pengecualian, berdasarkan


2
Saya pikir Anda melewatkan Androidtag saya . Lagi pula, buffer menyebalkan; lebih baik jika gim Anda benar-benar meningkat dan terlihat bagus.
ashes999

1

Yang terbaik adalah menyimpan salinan pekerjaan dari semua aset yang Anda miliki. Jika Anda mengembangkan gambar di photoshop, misalnya, simpan file psd asli. Setiap kali Anda membutuhkan gambar res yang berbeda, Anda dapat membukanya dan mengekspor gambar baru dengan kehilangan kualitas minimal.

Daripada membangun untuk satu ukuran layar atau yang lain, saya sangat menyarankan Anda membangun untuk variasi dari awal. Anda tidak hanya berbicara tentang kerapatan piksel yang berbeda, Anda juga berbicara tentang rasio aspek yang berbeda. 16x9 dan 16x10 dapat menghasilkan pengalaman visual yang sangat berbeda. Jadi pastikan Anda menguji perubahan baru pada berbagai bentuk dan ukuran layar yang berbeda.

Dalam pengalaman saya, font bitmap tidak berskala sama sekali. Ini mungkin sangat tergantung pada gaya font yang Anda gunakan, tetapi secara umum, resampling bitmap font menghasilkan hasil yang sangat buruk. Font Bitmap berfungsi paling baik ketika pengambilan sampel tekstur Anda tidak disetel ke multisampling (GL_NEAREST, dan tanpa mipmaps) dan ini dibuat sedemikian rupa sehingga memetakan pixel-for-pixel ke layar. Anda mungkin ingin mempertimbangkan untuk menggunakan serangkaian rendering font yang sama pada ukuran yang berbeda dan memastikan bahwa font selalu muncul pada skala == 1 dalam game Anda; ini akan memungkinkan Anda beberapa opsi terbatas ketika memilih ukuran font untuk digunakan dalam skenario tertentu.


1

Android menyediakan beberapa bantuan untuk ini ...

Anda dapat menentukan "sumber daya alternatif" untuk item seperti grafik Anda.
Lihatlah bagian "Menyediakan Sumber Daya Alternatif" di tautan ini: http://developer.android.com/guide/topics/resources/providing-resources.html Anda harus dapat menemukan contoh dalam contoh SDK atau melalui Google.

Juga, Google menyediakan Emulator Android yang Anda dapatkan dengan SDK. Anda dapat menetapkan beberapa perangkat virtual dengan konfigurasi berbeda untuk menguji kode Anda. Berikut ini tautan ke info lebih lanjut: http://developer.android.com/guide/developing/devices/emulator.html

Semoga Sukses amb


0

Selain itu aspek teknis (ditangani oleh Mr Strange) berhati-hatilah saat merancang game dengan ukuran layar variabel. Sama seperti contoh, bayangkan bermain jalan kemarahan di layar seperti lanskap dan kemudian di layar potret.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.