Pembangun Go Berdebat Tentang Peranan Bahasa Dalam Pembangunan Permainan Ketika Port DOOM Mencetuskan Perbincangan

Pasukan Komuniti BigGo
Pembangun Go Berdebat Tentang Peranan Bahasa Dalam Pembangunan Permainan Ketika Port DOOM Mencetuskan Perbincangan

Sebuah port Go baharu bagi enjin permainan klasik DOOM telah mencetuskan perbincangan menarik dalam kalangan pembangun tentang kedudukan Go dalam pembangunan permainan dan perbandingannya dengan bahasa pengaturcaraan lain. Projek ini, yang dipanggil GORE , mewakili transpilasi lengkap enjin permainan legenda dari C kepada Go , menghapuskan kebergantungan platform sambil mengekalkan pengalaman permainan asal.

Ciri-ciri Projek GORE:

  • Agnostik platform (berfungsi di mana-mana sahaja Go berfungsi)
  • Tiada kebergantungan CGo
  • Menyokong pelbagai versi DOOM ( DOOM , DOOM II , Ultimate DOOM , Final DOOM )
  • Selamat memori dengan pengumpul sampah Go
  • Sokongan kompilasi silang
  • Memerlukan Go 1.24+ dan fail WAD

Kesesuaian Go untuk Pembangunan Permainan

Respons komuniti menunjukkan sentimen bercampur tetapi secara amnya positif tentang penggunaan Go untuk pembangunan permainan. Sesetengah pembangun menghargai bahawa projek ini menunjukkan alternatif kepada pendekatan tradisional C dan C++ dalam permainan. Perbincangan menonjolkan keupayaan kompilasi merentas platform Go dan ciri keselamatan memori sebagai kelebihan ketara berbanding bahasa peringkat rendah.

Walau bagaimanapun, perbualan juga menyentuh tentang batasan Go dalam ruang permainan. Bahasa ini pada masa ini kekurangan perpustakaan grafik dan pembangunan permainan yang meluas berbanding dengan ekosistem yang lebih mantap. Ebitengine , yang disebut dalam projek ini, nampaknya merupakan salah satu daripada beberapa kerangka pembangunan permainan yang terkenal yang tersedia untuk pembangun Go .

Batasan Semasa:

  • Satu contoh per proses disebabkan pembolehubah global
  • Pemalar yang dieksport secara rawak daripada penukaran C
  • API luaran terhad untuk pemeriksaan keadaan
  • Beberapa blok kod tidak selamat yang masih tinggal
  • Sokongan input terhad dalam versi terminal

Perbandingan Bahasa dan Falsafah Reka Bentuk

Perdebatan yang agak hangat muncul mengenai perbandingan Go dengan Python , dengan pembangun membincangkan sama ada Go boleh dianggap sebagai Python 4.0 . Komuniti menunjukkan perbezaan asas antara bahasa-bahasa tersebut - sifat terkompil Go berbanding pendekatan ditafsir Python , dan fokus Go pada konkurensi berbanding penekanan Python pada kemudahan penggunaan.

Go memberi tumpuan kepada konkurensi, Python pada memudahkan perkara dilakukan dengan kod. Banyak perkara yang merupakan satu baris dalam Python , dalam Go memerlukan agak banyak baris atau boilerplate.

Perbincangan mendedahkan bahawa walaupun Go menawarkan fleksibiliti taip struktur yang serupa dengan bahasa skrip, ia memerlukan kod yang lebih bertele-tele untuk tugas yang dikendalikan bahasa lain dengan lebih ringkas.

Pelaksanaan Teknikal dan Batasan

Projek GORE mempamerkan kedua-dua kekuatan Go dan batasan semasa. Port ini berjaya menghapuskan kebergantungan CGo dan kod khusus platform, menjadikannya benar-benar merentas platform. Walau bagaimanapun, pembangun mencatatkan beberapa cabaran yang masih tinggal, termasuk kehadiran pembolehubah global yang menghalang berbilang instans permainan dan beberapa blok kod tidak selamat yang masih tinggal.

Pendekatan projek untuk mentranspil kod C kepada Go , kemudian membersihkannya secara manual, mewakili jalan tengah yang menarik antara penukaran automatik dan penulisan semula lengkap. Kaedah ini mengekalkan struktur permainan asal sambil menjadikannya lebih idiomatik kepada gaya pengaturcaraan Go .

Perbincangan komuniti mencadangkan bahawa walaupun Go mungkin bukan pilihan pertama untuk pembangunan permainan, projek seperti GORE menunjukkan daya majunya untuk aplikasi permainan tertentu, terutamanya yang mengutamakan keserasian merentas platform dan keselamatan memori berbanding prestasi mentah.

Rujukan: GORE