Alat apa yang harus saya pertimbangkan jika tujuan saya adalah membuat game tersedia untuk sebanyak mungkin platform? [Tutup]

8

Kami berencana mengembangkan game puzzle 2D berbasis grid, dan meskipun masih sangat awal dalam tahap perencanaan, kami ingin membuat keputusan dengan baik sejak awal.

Strategi kami adalah membuat game tersedia untuk sebanyak mungkin platform, misalnya PC (Windows, Mac dan / atau Linux), ponsel (iPhone dan / atau ponsel berbasis Android), konsol game (XBLA dan / atau PSN) PC akan memiliki penekanan, tetapi saya percaya itu adalah platform yang paling fleksibel sehingga seharusnya tidak menjadi masalah.

Jadi, bahasa pemrograman, mesin gim, kerangka kerja dan alat apa saja yang paling cocok untuk tujuan kami?

PS: Saya bertaruh satu set alat tidak akan mencakup SEMUA dari mereka, dan bahwa masih akan ada semacam upaya "menerjemahkan" untuk beberapa platform, tetapi kami ingin tahu apa yang paling jauh jangkauannya.

Kenji Kina
sumber

Jawaban:

12

Kami memiliki kerangka kerja C ++ yang tebal di atas lapisan platform yang tipis, juga C ++. Porting game ke platform baru adalah masalah menerapkan lapisan platform baru, yang karena sangat tipis, itu cukup cepat dilakukan.

Juga, semua dependensi kami adalah open source dan lib platform silang, seperti SDL, Ogg, LibPNG, dll.

Sebagai contoh, kami memiliki platform Win32 / DirectX, platform SDL / OpenGL untuk Linux dan Mac, bekerja pada platform iOS untuk iPhone / iPad, dan port android juga dimungkinkan. Untuk beberapa waktu kami memiliki platform Playground, yang berarti kerangka kerja kami berjalan di atas mesin PlayFirst Playground. Pendekatan berlapis ini memungkinkan Anda untuk memanfaatkan antarmuka apa pun yang Anda miliki ke perangkat keras / OS yang mendasarinya, selama Anda dapat menggambar quad bertekstur, mendapatkan beberapa input dan memainkan suara, Anda sudah cukup siap.

Saya akan dinyalakan karena hal ini, tetapi C ++ mungkin adalah bahasa yang paling lintas platform. Setiap arsitektur dan OS yang paling mungkin memiliki kompiler C ++ atau gcc dapat di-porting ke sana.

ggambett
sumber
3
Tanpa nyala api, ini adalah pernyataan yang benar dan bagian dari alasan kami masih menggunakannya.
Klaim
9

Cukup gunakan Unity

Tetrad
sumber
Kesan umum tampaknya Unity itu keren untuk 3D, tetapi tidak begitu keren untuk 2D. Dan pertanyaannya adalah tentang game 2D
bluescrn
6
Mengingat saya telah mengirim game 2D dengan Unity (dan begitu juga orang lain: unity3d.com/gallery/game-list ), saya harus tidak setuju dengan kesan umum. Ya, ada tidak ada yang dibangun di cara menggambar batched animasi sprite, tetapi Anda dapat dengan mudah memperpanjang editor untuk melakukannya sendiri. Itu, dikombinasikan dengan hal yang paling dekat dengan kompatibilitas platform lintas tombol dan tombol masuk yang rendah membuatnya menjadi jawaban yang paling jelas.
Tetrad
Saya harus setuju. Saya sudah membaca ini dan ini dan menggunakan 2D Toolkit dan saya harus mengatakan bahwa lebih mudah untuk melakukan 2D daripada yang saya kira.
NoobsArePeople2
1
Tautan hanya menjawab, komentar menebus itu cukup saya kira. : /
MichaelHouse
6

Saya baru tahu tentang NME beberapa hari yang lalu di pertanyaan lain dan berpikir mungkin ada baiknya menyebarkan berita. Mengenai masalah dukungan multi-platform, halaman depan menyatakan sebagai berikut:

Memilih NME membuka peluang yang hampir tak ada habisnya. Buat satu aplikasi dan publikasikan ke Facebook, iOS App Store, Katalog Aplikasi webOS, Android Market, Mac App Store, Ubuntu Marketplace, NOOK Apps, Chrome App Store, Steam dan pasar lainnya tanpa menulis kode khusus untuk setiap platform .

Saya belum mengujinya secara pribadi, tetapi menurut saya itu menarik karena berbagai alasan:

  • API sangat mirip dengan Flash , yang sudah dikenal banyak orang. Saya pribadi telah melakukan banyak permainan di Flash / AS3 sebelumnya dan cukup mudah untuk dipelajari dan digunakan.
  • Ini menggunakan bahasa yang disebut Haxe yang sangat mirip dengan ActionScript 3, tetapi dapat dikompilasi ke dalam banyak format , termasuk asli C ++.
  • Di atas, dikombinasikan dengan beberapa saluran pipa cerdas yang disiapkan untuk Anda oleh NME, memungkinkannya menjadi sangat multi-platform . Pada PC Anda dapat menargetkan Windows, OS X dan Linux, dan pada ponsel Anda dapat menargetkan iOS, Android dan webOS (sambil tetap mendapatkan kinerja asli dengan menggunakan C ++ dengan OpenGL ES di bawah tenda). Akhirnya itu juga memungkinkan pengembangan game web menggunakan kanvas Flash atau HTML5.
  • Ini sepenuhnya gratis .

Saya tidak punya banyak waktu untuk mencobanya saat ini, jadi jika seseorang melakukannya, akan sangat membantu jika Anda dapat meninggalkan umpan balik tentang hal itu.

David Gouveia
sumber
1

Nah itu tergantung, dapatkah Anda pemrograman dalam C / C ++, Obj-C dan C #?

Unity3D adalah yang terbaik 1 ukuran cocok untuk semua tetapi game 2D di dalamnya dapat sedikit rumit (untuk game 2D pula).

Jika Anda menargetkan Xbox dengan XNA (alias toko indie) maka Anda harus menggunakan C #. Tetapi Anda benar-benar tidak dapat menggunakan C # dengan iOS (kecuali dengan satu). Meskipun Anda dapat menggunakan C / C ++ untuk iOS, Anda masih perlu menggunakan sedikit Obj-C kecuali Anda menggunakan semacam perangkat menengah.

Jika Anda tidak menggunakan mesin, saya pikir hal terbaik yang harus dilakukan adalah menulis lapisan abstraksi Anda sendiri. Sehingga setiap panggilan ke perpustakaan Anda harus melalui lapisan tengah ini, jadi ketika tiba saatnya untuk port Anda hanya perlu mengubah implementasi dari lapisan abstraksi dan kode permainan Anda kurang lebih utuh.

PhilCK
sumber
1
Secara teoritis, xna touch memungkinkan xna game yang ditulis dalam c # untuk berjalan di ios melalui mono. xnatouch.codeplex.com
Steve H
@Steve H, Panggilan bagus, meskipun sepertinya ini akan mengunci Android.
PhilCK
@PhilCK Mono dapat dibuat untuk berjalan di Android dan iOS, dan MonoGame mendukung keduanya. Namun, Anda harus membayar lisensi dari Xamarin.
Cole Campbell
1

Jawaban lain telah mencakup alat dan bahasa dengan cukup baik, tetapi di sisi grafis, saya pasti akan merekomendasikan untuk membuat grafik (2D) Anda dalam format vektor dan memastikan bahwa mereka terlihat bagus pada ukuran kecil dan besar. Detail terlalu banyak turun dengan buruk, terlalu detail terlalu kecil.

Jarett Millard
sumber
1

Moai SDK adalah kerangka kerja open source dan saat ini dapat menerbitkan ke android, iOS dan chrome. Moai akan dapat diperluas untuk mencakup host seperti konsol game, tergantung pada keahlian dan pengetahuan Anda di bidang-bidang tersebut.

Vaillancourt
sumber
0

Saya akan mengatakan pilihan bahasa terbaik Anda adalah c #. Anda dapat menggunakannya untuk berkembang di Unity untuk sejumlah platform. c # juga merupakan bahasa yang digunakan di MonoTouch (untuk pengembangan untuk iOS) dan MondoDroid (belum keluar tetapi akan memungkinkan Anda menargetkan platform Android). Dan, tentu saja, c # dapat digunakan dalam XNA yang memungkinkan Anda menargetkan XBOX 360 dan Windows Phones.

Cukup banyak mencakup semuanya. Masih akan ada pekerjaan yang harus dilakukan dalam kenyataan bahwa Anda akan menggunakan alat yang berbeda untuk memanipulasi konten gim, tetapi logika gim inti Anda tidak perlu diubah jika semuanya ada di c #.

oh dan tentu saja c # digunakan di Silverlight yang akan membiarkan Anda menargetkan web juga.

Tak berguna
sumber
2
Meskipun itu adalah bahasa yang baik, C # tampaknya pilihan yang cukup buruk untuk dev lintas-platform game, sungguh. Seperti halnya masalah kinerja pada platform non-PC, ingatlah bahwa Anda hanya memiliki XNA tersedia di beberapa platform, dan bahwa Anda akan kehilangan sejumlah besar perpustakaan lintas platform yang berpotensi berguna yang akan tersedia jika Anda menggunakan C / C ++. Ya, ini berarti tidak mendukung Windows Phone atau Xbox Indie Games tanpa port lengkap (tapi apakah itu benar-benar kerugian besar, dari sudut pandang penjualan, ketika Anda dapat mendukung hampir semua hal lain?)
bluescrn
0

Langkah pertama mungkin adalah membuat game, setidaknya prototipe yang layak, menggunakan alat / teknologi favorit Anda, untuk platform tunggal (atau sejumlah kecil platform).

Sangat mudah untuk terjebak dalam pengembangan alat / teknologi lintas platform. Berfokus terlalu banyak pada lintas-platformness sebelum memiliki game adalah semacam optimasi prematur. Ini tentu layak untuk dipikirkan sejak awal, tetapi jangan menghabiskan seluruh waktu Anda untuk itu sampai Anda benar-benar memiliki permainan.

Mencoba untuk mendukung setiap platform sebelum mengetahui apakah game itu akan sukses terdengar seperti strategi berisiko tinggi - terutama jika itu adalah game beranggaran rendah yang sederhana (di mana biaya pengembangan sistem lintas platform bisa jauh lebih besar daripada biaya pengembangan game) diri?).

Tidakkah masuk akal untuk meluncurkannya pada sejumlah kecil platform, melihat seberapa baik itu, dan menentukan apakah layak untuk mendukung platform yang lebih menantang (mis. Sistem yang kurang kuat, yang memiliki perangkat input yang tajam, atau yang membutuhkan lengkap port ke C # atau Java)

bluescrn
sumber
0

Saya tahu ini tidak populer, tetapi AS3 dengan Starling mungkin menjadi jawaban Anda untuk seluler, desktop, dan web. Ini MENAKJUBKAN dan melakukan dengan cara yang mengejutkan. Saya membuat dan game kinect iOS yang juga berjalan di windows dan android. Tidak ada hal lain yang dapat menangani kebutuhan komputasi dan lintas platform itu. Juga - Anda dapat menghubungkan semua proyek Arduino dengan mulus. Kebanyakan orang tidak memperhatikan apa yang telah dilakukan Adobe terhadap alat pembangun flash / flash pada akhir-akhir ini ....

pengguna27131
sumber
-3

Flash dan Java memiliki dukungan yang sangat luas; mereka bekerja pada semua PC (lebih atau kurang) dan banyak perangkat seluler (lebih atau kurang), dan saya yakin mereka mudah untuk port ke konsol seperti proyek lain dengan pengaruh PC.

Gregory Avery-Weir
sumber
3
Anda tidak akan mendapatkan Java pada platform 360 atau PS3, atau iOS. Begitu juga untuk flash. Sejauh menyangkut bahasa, saya berpendapat bahwa C ++ jauh lebih portabel dalam kasus umum, selain khusus XNA (tetapi tidak XBLA).
Tetrad
Flash terkadang digunakan untuk hal-hal seperti UI dan minigame dengan middleware seperti Scaleform ( scaleform.com/products/gfx ). Saya tidak dapat menemukan banyak info tentang Java untuk konsol, meskipun dukungan Bluray PS3 tampaknya melibatkan JVM sederhana. Apapun, Anda harus melakukan banyak pekerjaan untuk mem-port sesuatu ke konsol (kurang untuk 360 jika awalnya di XNA). Jika Anda mendesain kode Anda untuk portabilitas, bahkan beralih bahasa di port tidak mungkin dilakukan.
Gregory Avery-Weir