Jawab pertanyaan aktual (Apakah loop game harus berada di utas terpisah):
Alasan orang sering merekomendasikan menggunakan utas terpisah adalah karena mereka tidak ingin pemrosesan yang berat mengganggu interaktivitas UI. Anda adalah satu-satunya yang dapat mengetahui apakah utas terpisah diperlukan untuk gim Anda . Ini sepenuhnya tergantung pada mesin dan kerangka kerja jika loop game utama dalam desain Anda saat ini dapat mengganggu waktu respons UI. Kupikir kamu pada umumnya menganggap itu tidak akan (dalam proyek kecil) kecuali kamu punya alasan untuk berpikir sebaliknya.
Alasan lain untuk menyimpan kode di utas terpisah adalah untuk menjaga kode tetap modular dan sederhana. Memiliki dua potongan kode yang tidak terkait dicampur bersama sering dapat menyebabkan kode menjadi kurang mudah dibaca dan dikelola dalam jangka panjang.
Apakah loop game perlu dijalankan di utas terpisah itu sendiri? Mungkin. Jika ada masalah dengan waktu respons atau kode dan Anda perlu beberapa item UI untuk merespons terlepas dari proses yang berat atau Anda hanya ingin memecah kode menjadi tugas-tugas spesifik yang terjadi secara bersamaan karena alasan desain, maka ikutilah. Namun, ini dianggap sebagai praktik pemrograman tingkat lanjut .
Contoh sederhana tapi mungkin bukan contoh yang bagus untuk diilustrasikan adalah permainan dua pemain. Anda mungkin ingin menjalankan dua instance kelas yang menangani input pengguna dan mengonversi untuk menyatakan perubahan pada instance karakter pemain.
Beberapa kerangka kerja mendorong / mengharuskan Anda untuk memanfaatkan dan sistem berbasis acara / interupsi seperti yang dilakukan ActionScript3.0. Dalam hal ini kode loop biasanya akan pergi ke OnEnterFrame
acara atau sesuatu yang serupa yang terjadi 20 - 60 atau 120 kali per detik.
Jawab pertanyaan awal (Apakah saya memerlukan loop utama):
Semuanya bermuara pada program counter . Jika Anda membuat gim yang akan menjalankan lebih dari jumlah waktu yang telah ditentukan dan tidak akan menghasilkan kode saat berjalan, maka Anda perlu meminta pc pengguna Anda untuk mengulangi beberapa instruksi yang telah diproses dan apa yang mungkin akan berubah di sementara itu adalah negara (nilai-nilai yang disimpan dalam objek dan global permainan).
Karena Anda tahu Anda perlu mengulangi instruksi, ada beberapa cara untuk menyelesaikan tugas ini dan terus memproses instruksi yang sama. Semua metode ini melibatkan memindahkan penghitung program kembali ke instruksi yang saat ini relevan. Pernyataan aliran kontrol yang paling umum yang menyebabkan kode diulang disebut loop, yang lain adalah goto
pernyataan yang jarang digunakan dalam kode modern dan memiliki efek yang serupa dalam kasus ini (sama sekali tidak relevan dengan Anda).
Jadi untuk menjawab pertanyaan Anda sebelumnya, apakah Anda memerlukan satu loop? Ya, benar.