Cara termudah dan paling menyenangkan untuk memprogram game 2D? Flash? XNA? Mesin lain? [Tutup]

20

ini adalah posting yang merinci pencarian saya untuk cara yang paling menyenangkan bagi seorang programmer game hobbyist untuk mempermanis waktu luangnya dengan membuat game.

Persyaratan saya: Saya melihat Flash dulu, saya membuat beberapa game kecil tapi saya ragu dengan kinerjanya. Saya ingin membuat game strategi yang cukup besar, dengan beberapa ratus unit bertarung secara bersamaan, termasuk ledakan dan animasi. Juga peta yang dapat diperbesar. Saya melihat Adobe memiliki API 3D baru untuk Flash, tetapi saya tidak tahu apakah itu meningkatkan kinerja 2D juga, saya tidak dapat menemukan apa pun yang terkait dengan pertanyaan itu pada sesi MAX10 mereka. Apakah Anda mengatakan bahwa Flash adalah teknologi yang baik untuk membuat game 2D besar dengan mudah? Saya sangat suka Actionscript, dan saya suka betapa mudahnya semuanya di Flash. Ada beberapa mesin yang tersedia yang membuatnya lebih mudah.

Saya hanya melakukan ini untuk bersenang-senang, dan akan lebih baik lagi jika ada animasi / editor partikel yang tepat tersedia dan jika mesin yang saya gunakan, akan tersedia untuk berbagai platform. (sehingga lebih banyak orang dapat memainkan game saya setelah selesai). Saya juga ingin tersedia di banyak platform seluler. (karena saya suka input sentuhan untuk beberapa alasan)

Saya tahu kerangka kerja XNA dengan cukup baik, tetapi tidak ada mesin yang baik untuk itu, dan itu hanya akan berjalan pada Windows, yang merupakan mematikan besar. Yang lebih besar adalah, Anda harus menginstal XNA yang dapat didistribusikan kembali setiap kali Anda ingin memberikan gim tersebut kepada seseorang. Jika saya menggunakan XNA, saya harus membuat semua alat sendiri, dan saya mungkin harus membuatnya dengan WPF. (Saya ingin membuat alat dengan Adobe AIR, tapi sayangnya API untuk manipulasi gambar dll. Jauh lebih buruk di Flash, daripada di XNA / WPF.) Sekarang, saya sadar bahwa saya bisa membuat mesin sendiri yang mendukung masing-masing platform tersebut, tetapi sejujurnya, itu akan menjadi pekerjaan yang terlalu banyak membajak melalui API. Lagi pula, saya ingin membuat game, bukan mesin.

Jadi pertanyaannya menjadi: Apakah mungkin ada platform lintas (gratis atau gratis untuk dikembangkan?) Mesin yang tersedia yang dapat saya gunakan untuk pengembangan 2D? Saya lebih suka: C #, Actionscript. Saya tidak keberatan menggunakan c ++ jika toolset di atas rata-rata, tapi saya sangat ragu bahwa ada sesuatu di luar sana seperti itu. Tolong buktikan saya salah :) Jadi ringkasan: Saya ingin menggunakan Flash, tapi saya tidak tahu apakah itu cukup baik. Saya bukan seorang penulis naskah, saya ingin beberapa API nyata yang dapat saya gunakan di dalam IDE yang tepat.

Sekedar informasi, saya melihat beberapa alternatif, saya sebenarnya sudah lama mencari. Anda akan banyak membantu saya untuk membuat keputusan akhirnya.

  • Dari segi fitur, mesin Flatredball akan ideal. Tetapi saya mencoba alat mereka, dan sejujurnya, itu mengerikan. Benar-benar tidak dapat digunakan, saya harus membuatnya sendiri. Saya tidak melihat API mereka, tetapi jika alat mereka sangat buruk, saya tidak cenderung untuk melihat lebih jauh.

  • Unity3D. Yang ini cukup bagus, tapi saya benar - benar tidak perlu 3D , dan itu cukup ... banyak pekerjaan untuk dipelajari. Saya juga tidak suka bahwa itu sangat mahal untuk digunakan untuk platform yang berbeda dan saya hanya bisa kode untuk itu melalui scripting. Anda harus membeli setiap platform secara terpisah. Kegunaan editor adalah rata-rata, keseluruhan produk cukup baik untuk sebagian besar tujuan, tetapi mempelajarinya sendiri akan berlebihan.

  • 3D Siwa. Ini terlihat cukup bagus, tetapi sekali lagi: Saya tidak benar-benar membutuhkan 3D. Kegunaan editor sedikit lebih buruk daripada Unity3D menurut saya dan tidak jelas bagi saya bagaimana memulai pemrograman. Saya pikir ini membutuhkan C ++ untuk pengkodean, jadi itu negatif juga. Saya ingin bersenang-senang, dan c # menyenangkan;)

  • SDL. Sejujurnya, saya masih perlu port ke semua implementasi SDL yang berbeda. Dan saya tidak suka pemrograman gaya OpenGL, itu hanya jelek. Dan perlu c ++, saya tahu bahwa mungkin ada beberapa pembungkus yang tersedia, tetapi saya tidak suka menggunakan pembungkus, karena ...

  • Irrlicht. Banyak fitur, tetapi dukungan tampaknya rendah dan ditujukan untuk penggemar. Binding C # dijatuhkan berulang kali. Saya bukan penggemar mesin, saya hanya ingin membuat game. Saya tidak melihat ini terjadi dengan Irrlicht.

  • Ogre3D. Terlalu banyak pekerjaan, itu hanya mesin grafis. Juga tidak ada banyak dukungan platform dan c ++.

  • Torsi2D. Biaya sesuatu untuk digunakan, dan saya tidak mendengar banyak hal baik tentang dukungan dan dokumentasi. Juga ada biaya tambahan untuk setiap platform.

Maksi
sumber
FRB SDK Tools buruk (Lem khususnya, saya tidak menggunakannya) tetapi menghemat waktu Anda menulisnya dan format file yang sederhana jika menulis alat Anda sendiri adalah suatu keharusan. API tidak terlalu buruk dan sepertinya cocok untuk lingkup ini, masalah terbesar saat ini adalah kurangnya port XNA 4.0 untuk PC dan Xbox. Juga, redis XNA dan prasyarat lainnya dapat menjadi bagian dari instalasi - dan menggunakan clickonce Anda dapat memiliki pembaruan otomatis dan penyebaran siap untuk digunakan.
Oskar Duveborn
Yah, maksud saya adalah bahwa saya tidak akan menggunakannya, dan karena itu alat tidak berguna. Mereka terus menabrak saya di samping UI / perasaan umum buruk mereka. Bagaimana jika ternyata mereka kehilangan fitur tertentu? Bahkan jika mereka open source, saya tidak ingin pergi ke dekat basis kode itu. Kelihatannya kasar, tetapi saya benar-benar hanya ingin pemrograman yang santai, dan FRB tampak seperti kue frustrasi. Bayangkan saja: Saya mencoba editor partikel dan bahkan tidak dapat menemukan tombol untuk membuka file gambar. Yang bisa dibilang satu-satunya fitur terpenting yang dibangun di atas segalanya.
Maxi
Bukan jawaban yang lengkap, tetapi skala Flash lebih baik daripada yang mungkin Anda pikirkan. Jika Anda blit ke kanvas bitmapdata alih-alih menggunakan tampilan stack, dan melakukan beberapa optimasi sederhana, Anda bisa memeras lebih banyak daripada yang terlihat dengan solusi yang lebih naif.
Gregory Avery-Weir
Listitem di Particle Editor hanya disebut "tekstur" pada panel properti emitor ^^ Ada tutorial tentang semua alat sehingga pembuat konten yang tidak mengkode dapat membantu. Tapi ya, UI benar-benar mengerikan dari sudut pandang desain interaksi.
Oskar Duveborn
1
Berkenaan dengan XNA menjadi Windows saja, ada implementasi open source dari XNA's API yang disebut MonoGame yang akan berjalan pada semua jenis platform non-Windows: cocoa-mono.org/archives/400/… Saya belum menggunakannya sendiri tetapi itu memang ada.
chaosTechnician

Jawaban:

10

Pygame adalah favorit saya. Karena pemrograman dengan python berarti Anda akan memprogram dengan cepat dan karena hal-hal 2D cepat dilakukan, pygame akan menyenangkan ...

jokoon
sumber
Sebagai bonus jika Anda memutuskan ingin pindah ke dunia 3d, ada kerikil yang membungkus GL dengan kulit ular;)
Wayne Werner
9

Saya telah menggunakan LÖVE untuk beberapa waktu sekarang dan saya sangat menyukainya. Anda harus belajar Lua, tetapi itu adalah sedikit bahasa yang menyenangkan untuk dipelajari. Orang-orang di forum sangat membantu.

egarcia
sumber
Apa kinerjanya? IDE apa yang bisa saya gunakan?
Maxi
1
Saya yang kedua ini. Kami menggunakan Lua dan LOVE untuk game Global Game Jam kami dan itu berhasil dengan fantastis. Mereka telah mengumpulkan banyak pustaka sumber terbuka yang hebat di bawah satu API umum, dan setiap rilis terus menjadi lebih baik. Performanya hebat (Lua sangat cepat!), Dan banyak fitur OpenGL canggih seperti FBO diekspos, yang jarang terjadi pada banyak mesin 2D. Di atas semua kebaikan itu, itu cross-platform (Win / Mac / Linux). Saya pasti akan memberikan tampilan yang bagus.
Bob Somers
1
@ Maxi: Dengan cinta Anda hanya perlu editor, dan konsol di mana Anda dapat menulislove .
egarcia
2
Apakah Rusia membuat game dengan itu? Itu akan Dari Rusia dengan Cinta: P
Bart van Heukelom
5

Saya memutuskan untuk menggunakan Flash. API 3D Molehill baru dapat digunakan untuk menggambar sprite 2D dalam ruang 3D jauh lebih cepat juga. Saya tidak melihat alasan mengapa Flash seharusnya tidak cukup cepat untuk permainan yang saya jelaskan sebelumnya. Saya harus membuat alat sendiri, tetapi saya mungkin harus tetap melakukannya. Menggunakan AIR untuk membangun alat juga menurut saya cukup rapi. Flash juga memiliki jangkauan terluas dengan platform, yang keren.

Maksi
sumber
Coba Cocos2d-x . Itu yang saya gunakan untuk pengembangan game indie saya.
Stephen Furlani
1
Flash mungkin merupakan pilihan yang baik, karena ada alat dan perpustakaan yang sangat bagus (matang) untuk flash di luar sana. API Molehill akan mengambil banyak beban dari CPU (sebelumnya semuanya ditangani oleh CPU). Anda harus berpikir tentang distribusi game Anda. Flash biasanya berarti permainan berbasis browser ...
bummzack
Dan berhati-hatilah dengan game mobile, flash dan ponsel adalah kombinasi yang buruk.
Gustavo Maciel
" Dan berhati-hatilah dengan game mobile, flash, dan ponsel adalah kombinasi yang buruk. " @ Gtoknu, ada alasan mengapa?
NemoStein
@NemoStein Cobalah mencari di youtube beberapa flash yang berjalan di ponsel. Juga, adobe menghentikan pengembangan flash-nya ke android, dan tidak ada flash untuk iOS.
Gustavo Maciel
4

Coba SFML

svenstaro
sumber
Meskipun berguna, SFML hanyalah API grafik / jaringan / suara, bukan mesin game berfitur lengkap (meskipun cukup dekat).
a_m0d
2

Coba Cocos2d-x . Itu yang saya gunakan untuk pengembangan game indie saya.

Ini adalah platform OpenGL (ES) yang teruji dan benar yang memiliki suara, fisika, dan bahkan sedikit 3D yang telah keluar untuk iPhone untuk sementara waktu sekarang, dan baru saja datang ke platform lain.

Stephen Furlani
sumber
2

Karena Anda mengatakan Anda menyukai Actionscript tetapi mencari lintas platform, lihat HaXe + NME . HaXe adalah bahasa yang mirip dengan Actionscript, tetapi dapat dikompilasi ke Flash, Javascript, PHP, atau C ++. NME adalah perpustakaan yang mirip dengan perpustakaan grafis Flash, tetapi berjalan pada platform lain juga. Kombinasi ini memungkinkan Anda mengkompilasi ke banyak platform berbeda.

Saya belum menggunakan NME tetapi tes pertama saya dengan HaXe + Molehill (hanya beberapa hari yang lalu) menghasilkan 60fps ketika merender 10.000 spanduk berputar 16x16 di laptop saya. Saya hanya menggunakan HaXe selama beberapa hari dan tidak memiliki pengalaman yang cukup untuk memastikan bahwa itu adalah hal yang tepat untuk Anda, tetapi perlu dicoba.

amitp
sumber
1

Saya pribadi penggemar berat Allegro 5 , tetapi ini adalah API C. Meski begitu, API sederhana yang keluar dari jalan Anda dan menyediakan akses ke:

  • Grafik 2D (didukung oleh OpenGL atau D3D, tergantung platfom)
  • Suara
  • Font (termasuk bitmap dan TTF)
  • Input (mouse & keyboard)
  • PhysicsFS (virtualisasi sistem file)
  • Memuat gambar

5.1 juga akan menambahkan dukungan shader.

SDL 1.3 juga terbentuk dengan cukup baik. Sam tampaknya sudah selesai membuat perubahan API utama, dan apa yang sudah ada di dalamnya sudah cukup stabil. Masih ... ini bahkan belum beta, dan Allegro 5.0 dirilis.

Memang, untuk game yang lebih kompleks dan canggih Anda mungkin ingin memasangkan Allegro 5 dengan semacam perpustakaan fisika ( Box2D , misalnya). Namun, Anda bisa mendapatkan jalan yang sangat panjang, dan bersenang-senang, dengan apa yang tidak lebih dari apa yang Allegro 5, pustaka standar C atau C ++, dan kode Anda sendiri.

Greg Jandl
sumber