Apakah saya hanya perlu membuat instance dari semua gambar saya ke dalam memori yang diambil dari file? Apa cara terbaik untuk menangani ini? Apakah saya hanya memerlukan semacam manajer aset yang membuat instance grafik ini selama layar pemuatan dan kemudian dirujuk kemudian?
Apa hal-hal umum yang perlu dimuat di dalam game? Berapa yang harus saya muat sebelumnya?
Apakah layak menampilkan semacam bilah kemajuan? Bagaimana saya bisa mempersingkat waktu muat? Seperti apa tampilan layar pemuatan?
Apa saja contoh bagus dari memuat layar? Adakah contoh kode?
Secara khusus, permainan saya adalah untuk Andriod (Java / ponsel), tetapi jangan ragu untuk membuat jawaban Anda menjadi umum.
Jawaban:
Hal-hal yang umum untuk dimuat sebelumnya adalah apa pun yang Anda perlukan secara waktu nyata. Simpan konsep seperti clipmaps dan megatextures (di mana idenya adalah memuat bagian-bagian yang Anda butuhkan, dan memperbaruinya secara iteratif saat Anda berkeliling dunia), Anda akan ingin menyimpan semua yang Anda butuhkan untuk level / area / apa pun Anda dalam memori daripada pada disk. IO adalah sloooow, dan Anda tidak ingin memuat tekstur Anda ketika Anda berbelok di tikungan dan akan segera ditampilkan. Yang saya maksud adalah tekstur, suara, jerat, meta data ... semuanya.
Jika Anda dapat menampilkan bilah progres (yaitu Anda memiliki pemetaan yang akurat tentang langkah-langkah pemuatan hingga persentase), maka tentu saja tunjukkan. Jika tidak, setidaknya tampilkan sesuatu, seperti pesan teks pendek atau indikator memuat, yang diperbarui setelah setiap langkah sehingga Anda setidaknya dapat mengetahui bahwa sesuatu sedang terjadi.
Jika ada sesuatu yang Anda tahu akan dibutuhkan, tetapi tidak segera, Anda dapat memuatnya di latar belakang, dan menghentikan permainan (tidak hebat, tetapi pastikan itu jarang terjadi) jika itu diperlukan terlalu dini. Ini akan membantu Anda menjaga waktu muat. Saya tidak tahu banyak tentang pengembangan android, atau apakah itu akan terlalu banyak untuk perangkat untuk menangani di samping permainan, tetapi biasanya agak ringan pada CPU sehingga seharusnya tidak ada masalah besar di sana.
sumber
Anda harus "Reticulating Splines"
sumber
Tergantung jika Anda menggunakan satu layar pemuatan dan transisi level instan atau banyak pemuatan.
Saya akan mengatakan bahwa yang terakhir akan lebih baik di memori.
Sesuatu seperti:
//First loading screen
Load menu layouts or whatever
Load GUI assets
Show something to pass the time
Switch to menu
//In between levels
Remove any graphics specific to the last level - get rid of something that isn't going to reappear like a boss.
Load level graphics that haven't already been loaded
Again, show progress or something to pass the time
Dan ketika Anda memuat, pastikan untuk tidak memiliki layar hitam. Atau dalam hal ini, layar statis. Banyak kali saya melihat gambar statis untuk sementara waktu di awal aplikasi, dan segera berpikir itu jatuh.
Cara yang baik untuk melibatkan pemain hanyalah latar belakang adegan yang digambar dengan baik, atau referensi alur cerita; bilah pemuatan dengan / tanpa persentase, selama itu bukan 'Memuat' statis; dan mungkin beberapa informasi.
sumber
Pada platform iphone dan Android, Anda harus memuat semua tekstur dan suara. Memuat tekstur dan suara sangat lambat pada ponsel lama seperti iphone 2G, 3G atau G1. Anda tidak dapat melakukannya di dalam gim.
sumber
Seperti yang orang lain katakan, jika Anda dapat memuat semua data level sebelum mulai memainkannya, maka Anda akan memiliki kinerja yang jauh lebih baik. Ini adalah sumber umum dari hambatan dalam waktu bingkai untuk memuat aset selama bermain game.
Hal-hal umum yang harus dilakukan selama layar memuat adalah gambar latar belakang statis, level yang sangat sederhana, beberapa tips dan trik tentang cara bermain, animasi cepat, dll.
Ini layar pemuatan untuk APB. Cukup keren. :) http://www.youtube.com/watch?v=p5STix1t_1E&feature=related
Berikut beberapa kode semu untuk menampilkan bilah progres di layar pemuatan:
Ugh, terpaksa menggunakan! = Karena itu menghentikan rendering kode ketika saya menggunakan <
sumber
Memuat layar dapat digunakan untuk menyembunyikan apa saja; memuat aset, koneksi apa pun yang perlu dibuat (tcp, dll), mengisi peta dengan objek game, dan inisialisasi.
Cara saya cenderung membahas berbagai hal adalah memiliki semacam manajer aset (atau mungkin manajer untuk setiap jenis aset - suara, grafik, dll.) Dan minta mereka memuat apa yang akan digunakan ke dalam memori. Maka biarkan game Anda mengeluarkan referensi dari para manajer.
Menampilkan bilah kemajuan, menentukan apa yang harus dimuat, dll. Tampaknya tergantung pada proyek Anda, waktu pemuatan dan selera Anda. Bilah progres bagus jika akurat dan bebannya panjang (senang mengetahui berapa lama Anda harus menunggu).
Dengan itu, di ponsel android saya, saya cenderung menyukai aplikasi yang memiliki kebiasaan sendiri, memuat layar dengan selera tinggi. Tidak perlu bilah, tetapi animasi memberi tahu pengguna program yang berfungsi. Saya percaya Android memiliki bilah default yang dapat Anda gunakan, yang berfungsi dengan baik.
Inilah pertanyaan SO yang mungkin menarik bagi Anda.
sumber
Perlu dicatat bahwa platform dengan persyaratan kontrol kualitas (mis. X360, PS3, DS, dll.) Semuanya mengharuskan Anda untuk memiliki beberapa bentuk animasi di layar pemuatan (atau bahkan layar apa pun yang tetap statis selama lebih dari beberapa detik). ).
Ini karena jika tidak, pengguna mungkin berpikir bahwa game Anda telah mogok, padahal sebenarnya hanya membutuhkan waktu lama untuk dimuat. Bahkan di mana ini bukan keharusan, saya pasti akan menyarankannya.
Segala bentuk animasi baik-baik saja, tetapi bilah kemajuan sederhana mungkin bukan yang terbaik, karena langkah-langkah besar dalam pemuatan dapat mengakibatkan bilah kemajuan tidak bergerak sama sekali untuk sementara waktu, artinya layar sama statisnya seolah-olah ada tidak ada bar sama sekali. Lebih baik menunjukkan beberapa gambar yang terus bergerak, seperti ikon yang berputar, di samping indikator progres.
sumber
Untuk memuat layar di Conquest , saya pergi dengan sedikit deskripsi misi (tipe permainan apa itu, serta sedikit alur cerita untuk misi), dan beberapa bantuan dasar pada perintah.
Di latar belakang, saya memuat suara. Grafik semua dimuat sesuai permintaan, dan itu tampaknya bekerja cukup baik untuk permainan kami, tetapi suara adalah beruang, jadi saya memuat semua suara yang diperlukan untuk misi. Tombol Memuat / Mulai dinonaktifkan hingga semuanya dimuat, tetapi saya tidak memiliki jenis animasi apa pun (yang merupakan hal yang baik untuk ditambahkan).
Ini adalah pertandingan pertama kami, jadi kami masih banyak belajar, tetapi sejauh ini kami berhasil.
sumber