Bagaimana cara pengembang game menargetkan banyak platform sekaligus? Misalnya, Xbox 360, PS3, PC dan Linux. Untuk gim 2D, mungkinkah juga menargetkan iPhone? Saya tertarik pada mesin yang digunakan (2D / 3D, dll), bagaimana pipa penyiapannya diatur dan umumnya seberapa banyak "kode inti" dapat dipusatkan tanpa harus menulis cabang kode platform khusus.
Atau, jika benar-benar batang kode yang terpisah biasanya dipelihara untuk setiap platform, bagaimana perpustakaan / kode digunakan kembali (dalam hal menghubungkan dan modularisasi)?
sumber
Untuk sebagian besar platform, Anda dapat menulis subsistem yang abstrak dari API khusus yang digunakan untuk memanggil dan mendapatkan informasi kembali dari platform yang Anda jalankan. IO API biasanya paling mudah untuk diabstraksikan - semua sistem file bekerja dengan beberapa asumsi mendasar tentang membuka, menutup, dan membaca dari file, bahkan ketika Anda memfaktorkan panggilan asinkron. Kemudian Anda memiliki sistem inti Anda seperti membaca input pengontrol, menanyakan waktu, mengakses memori dan primitif utas, yang sebagian besar bekerja dengan cara yang sama.
Bahkan grafik dapat diabstraksi untuk sebagian besar, dan memang di sebagian besar mesin bagus mereka. Tetapi Anda harus mengemas barang-barang 'yang dapat diurai' ke dalam kotak hitam di mana Anda tidak diizinkan untuk mengetahui apa yang terjadi di dalamnya. Anda tahu bahwa Anda memiliki 'benda' yang Anda jadikan posisi tertentu di dunia. Anda tidak tahu bagaimana itu dibuat, hanya itu saja. Dan lapisan abstraksi grafis menangani semua detail untuk menampilkannya di layar. Pipeline khusus membangun platform mengemas data grafis sedemikian rupa sehingga dapat dirujuk dari engine tanpa benar-benar mengetahui bagaimana itu direpresentasikan secara internal.
Semua yang dikatakan, ketika benar-benar turun untuk pengiriman permainan, ada bagian-bagian tertentu yang Anda tidak bisa abaikan. Akan konyol untuk berpikir Anda bisa mengirimkan kode yang sama pada iPhone seperti pada 360 atau PS3, karena mekanisme input, cara operasi yang mendasar, dan kemampuan platform terlalu berbeda. Anda dapat membuat judul berukuran iPhone pada 360, tetapi harus membatasi mekanisme inputnya hanya pada yang dapat didukung oleh 360. Jadi, kursor virtual di layar mensimulasikan jari, dan mungkin menggunakan joystick tempat input accelerometer 3D digunakan.
Lebih masuk akal, bagian-bagian gim ini dapat ditulis dengan cara yang dapat digunakan kembali, dan modul kode individu dapat diangkut di antara platform, meskipun mayoritas judulnya berbeda. Misalnya jika Anda memiliki mesin keadaan AI, itu tidak terlalu peduli apakah itu berjalan di 360, PC, atau iPhone. Game Anda akan menggunakan banyak komponen seperti itu, dan selama mereka telah dirancang dengan baik sehingga mereka mengambil input dan output yang terdefinisi dengan baik, maka sisa gim dapat dililitkan di sekitar mereka, terlepas dari platform, dan menghindari keharusan menulis ulang semua itu. komponen.
Penggunaan kembali adalah kunci untuk pengembangan lintas platform, bukan mencari mesin satu ukuran yang cocok untuk semua yang bekerja pada semua platform. Bahkan jika hal semacam itu memang ada, itu akan sangat lumpuh dengan harus bekerja pada penyebut umum terendah, itu tidak akan banyak berguna untuk membuat game dengan.
sumber
Cara menggunakan mesin multiplatafom seperti Torque atau Unity3D . Tapi saya tidak berpikir mereka bekerja pada semua plataforms itu. Ada juga cara lain: mengembangkan satu mesin ...
sumber