Pada dasarnya yang ingin Anda lakukan adalah membuat daftar sesuai kebutuhan Anda. Jika Anda menggambar ulang objek medan sekaligus, daftar hanya benda itu bisa berguna. Tetapi untuk ini layak sementara Anda akan membutuhkan puluhan ribu dari mereka, dan 10.000 hal yang tidak terrain. Kalau tidak membaca dengan teliti daftar segala sesuatu dan menggunakan "jika" untuk mengeluarkan objek medan cukup cepat.
Saya selalu membutuhkan satu daftar master, terlepas dari berapa banyak daftar lain yang saya miliki. Biasanya saya membuatnya menjadi semacam Peta, atau tabel, atau kamus, sehingga saya dapat secara acak mengakses setiap item. Tetapi daftar sederhana jauh lebih sederhana; jika Anda tidak mengakses objek game secara acak, Anda tidak memerlukan Peta. Dan pencarian sekuensial sesekali melalui beberapa ribu entri untuk menemukan yang tepat tidak akan lama. Jadi saya katakan, apa pun yang Anda lakukan, rencanakan untuk tetap dengan daftar master. Pertimbangkan menggunakan Peta jika terlalu besar. (Meskipun jika Anda dapat menggunakan indeks alih-alih kunci, Anda dapat tetap menggunakan array dan memiliki sesuatu yang jauh lebih baik daripada Peta. Saya selalu berakhir dengan kesenjangan besar antara nomor indeks, jadi saya harus menyerah.)
Sepatah kata tentang array: mereka luar biasa cepat. Tetapi ketika mereka bangun sekitar 100.000 elemen, mereka mulai memberikan pengumpul sampah yang cocok. Jika Anda dapat mengalokasikan ruang sekali dan tidak menyentuhnya sesudahnya, baik-baik saja. Tetapi jika Anda terus memperluas array, Anda terus mengalokasikan dan membebaskan banyak memori dan cenderung untuk permainan Anda menggantung selama beberapa saat sekaligus dan bahkan gagal dengan kesalahan memori.
Jadi lebih cepat dan lebih efisien? Yakin. Peta untuk akses acak. Untuk daftar yang sangat besar, Daftar Tertaut akan mengalahkan array jika dan ketika Anda tidak membutuhkan akses acak. Beberapa peta / daftar untuk mengatur objek dengan berbagai cara, sesuai kebutuhan Anda. Anda dapat melakukan multi-utas pembaruan.
Tapi itu semua banyak pekerjaan. Array tunggal itu cepat dan sederhana. Anda dapat menambahkan daftar dan hal-hal lain hanya saat dibutuhkan, dan Anda mungkin tidak akan membutuhkannya. Sadarilah apa yang salah jika game Anda menjadi besar. Anda mungkin ingin memiliki versi uji dengan objek 10 kali lebih banyak daripada versi nyata untuk memberi Anda gambaran tentang kapan Anda menuju masalah. (Hanya lakukan ini jika permainan Anda adalah mendapatkan besar.) (Dan jangan mencoba multi-threading tanpa memberikan banyak pemikiran. Segala sesuatu yang lain adalah mudah untuk memulai dengan dan Anda dapat melakukan sebanyak atau sesedikit yang Anda seperti dan mundur kapan saja. Dengan multi-threading Anda akan membayar harga yang besar untuk masuk, iuran untuk tetap tinggi, dan sulit untuk kembali.)
Dengan kata lain, tetap lakukan apa yang Anda lakukan. Batas terbesar Anda mungkin adalah waktu Anda sendiri, dan Anda memanfaatkan sebaik mungkin hal itu.