5 poin oleh GN⁺ 2025-04-29 | 3 komentar | Bagikan ke WhatsApp
  • Tim pengembang Architect of Ruin awalnya memulai pengembangan dengan engine Bevy dan Rust, tetapi beralih ke Unity dan C# karena berbagai masalah praktis
  • Terlepas dari kelebihan Rust dan Bevy, muncul kendala seperti kolaborasi, kebutuhan akan abstraksi tingkat tinggi, perubahan API yang sering, menurunnya efisiensi belajar dengan AI, dan keterbatasan modding
  • Mereka mencoba memindahkan 3 fitur inti ke Unity sebagai uji coba, lalu berhasil memverifikasinya hanya dalam 3 hari dan menyelesaikan porting keseluruhan dalam 6 minggu
  • Setelah beralih, jumlah kode berkurang, kecepatan pengembangan meningkat, dan alat-alat ekosistem pun bisa dimanfaatkan, sehingga kepuasan pengembangan naik drastis
  • Mereka menekankan bahwa meskipun kecintaan pada Rust dan Bevy tetap besar, ini adalah pilihan realistis untuk memenuhi kebutuhan proyek

Pengembangan Awal dengan Bevy dan Rust

  • Mereka menikmati model ECS Bevy dan pengecekan saat waktu kompilasi khas Rust, yang memberi pengalaman refactoring cepat dan stabilitas tinggi
  • Tilemap, skeletal animation, dan pipeline rendering kustom diimplementasikan sendiri dengan Bevy
  • Mereka mendapat banyak inspirasi dari semangat dan budaya diskusi aktif di komunitas Bevy

Emergent Problems: Masalah yang Ternyata Lebih Serius dari Perkiraan

  • Masalah kolaborasi: bagi anggota tim yang masih pemula di Rust, kompleksitas Rust menjadi hambatan belajar sehingga laju kontribusi menurun
  • Kurangnya abstraksi tingkat tinggi
    • Muncul kesulitan untuk cepat menerjemahkan ide gameplay ke dalam kode
    • Kurang fleksibel untuk kebutuhan prototyping cepat
  • Perubahan API yang sering: mereka kelelahan menghadapi ketidakstabilan API akibat perkembangan Bevy yang sangat cepat serta bug regresi yang muncul setiap kali update
  • Kurangnya dukungan pembelajaran AI: C# dan Unity didukung baik untuk pembelajaran berbantuan AI, tetapi Rust dan Bevy kekurangan informasi sehingga produktivitas menurun
  • Keterbatasan modding: mereka menilai sulit untuk memastikan scripting yang stabil dan kompatibilitas ABI dalam lingkungan Rust/Bevy

Keputusan Beralih: Eksperimen Unity

  • Mereka membandingkan Unreal, Unity, Godot, tetap memakai Bevy, dan membuat engine sendiri
  • Unity mendapat nilai tertinggi dari sisi kemudahan belajar, produktivitas, kemudahan kolaborasi, dan kemungkinan modding

Eksperimen 10%

  • Tiga tugas inti—tilemap, karakter (Spine), dan pembangunan UI—diuji dalam waktu kurang dari 3 minggu
  • Hasilnya, ketiga tugas selesai hanya dalam 3 hari, dan keputusan untuk beralih pun diambil

Proses dan Hasil Porting

  • Selama 6 minggu, semua sistem dan konten diimplementasikan ulang ke Unity
  • Mereka merasakan berkurangnya jumlah kode, hilangnya boilerplate, dan meningkatnya kecepatan pengembangan
  • Dukungan pembelajaran AI membaik, dan alat dalam ekosistem Unity seperti AStar Pathfinding dapat dimanfaatkan secara aktif

Kehidupan Setelahnya

  • Architect of Ruin kini sedang dikembangkan di atas Unity dengan tetap mempertahankan penerapan ide yang cepat dan produktivitas tinggi
  • Mereka menegaskan bahwa rasa hormat yang mendalam terhadap Rust dan Bevy tidak berubah, tetapi pilihan yang sesuai untuk proyek tetap diperlukan
  • Ke depan, mereka berencana membagikan detail implementasi berbasis Unity dan pengalaman porting tambahan

Kesimpulan

  • Mereka mengakui telah gagal mengevaluasi opsi secara adil saat memulai
  • Meski menginvestasikan waktu untuk mengubah arah, pada akhirnya mereka menilai justru mendapatkan lebih banyak waktu
  • Mereka menyadari bahwa untuk mewujudkan visi pengembangan, penilaian realistis yang melampaui naluri itu penting

3 komentar

 
aer0700 2025-04-30

Sepertinya mungkin ada engine GUI yang memakai Rust sebagai bahasa scripting, tetapi saya tidak tahu apakah ada yang digunakan di level production. Kadang muncul juga kisah kegagalan? tentang membuat game dengan Rust, ya... kalau kisah kegagalan muncul sih rasanya wajar, tetapi entah kenapa saya merasa jarang mendengar cerita suksesnya. Pasti ada juga orang yang memakainya dengan baik di suatu tempat.

 
qwqwhs 2025-04-30

Sebaliknya, bukankah mungkin mereka tidak mengunggahnya karena berpikir kalau dipakai dengan baik, hasilnya memang kira-kira akan seperti ini?

 
GN⁺ 2025-04-29
Opini Hacker News
  • Ada lagi kasus proyek game dengan Rust yang gagal. Ini hal yang disayangkan

    • Sedang mengembangkan klien metaverse dengan Rust selama hampir 5 tahun, dan memakan waktu terlalu lama
    • Orang lain mengerjakan proyek serupa dengan C#/Unity dalam waktu kurang dari 2 tahun
    • Basis pengguna pengembangan game 3D dengan Rust sangat kecil
    • Belum ada contoh pengembangan judul AAA dengan Rust, dan juga belum ada yang berhasil menyelesaikan masalah performa
    • Stack yang digunakan adalah Rend3/Egui/Winit/Wgpu/Vulkan, dan selain Vulkan, bug-nya banyak
    • Terlalu banyak crate berbeda yang ingin memiliki event loop
    • Crate sering direfaktor setiap beberapa bulan sehingga API-nya rusak
    • Dereferensi di Rust itu sulit
    • Rust memerlukan cara yang konsisten untuk single owner dan dereferensi
    • Trait di Rust bukan objek, dan tidak cocok untuk membangun hierarki objek
  • Ini terdengar seperti pelajaran bagus tentang mengapa engine game komersial mendominasi pengembangan game

    • Ada banyak hal yang harus dilakukan untuk membuat game, tetapi sebagian besar sebenarnya adalah masalah yang sudah terpecahkan
  • Saya suka Rust sebagai pengganti C++, tetapi saya pikir C++ tidak cocok untuk sebagian besar proyek

    • Sepertinya banyak orang memilih Rust karena menganggapnya lebih efisien
  • Pengembangan game dengan Rust seperti membuka wilayah perintis, dan membutuhkan banyak kerja

    • Rust belum siap
  • Saya suka Rust, tetapi sulit untuk iterasi cepat

    • Pernah mencoba Bevy, tetapi kembali ke Godot
  • Di proyek saya, saya beralih dari Rust ke Go, dan kecepatan iterasinya jadi lebih cepat

    • Kodenya lebih rapuh, tetapi menurut saya itu pilihan yang tepat mengingat sifat proyeknya
  • Tingginya volatilitas ekosistem Rust adalah kekurangan yang tidak terduga

    • Crate sering ditinggalkan, dan saya pikir ini karena orang-orang itu sebenarnya ingin terutama memakai Rust
  • Seorang pengembang membuat engine game dengan C, lalu mengembangkan game-nya dengan Lua

    • Ada pemisahan yang jelas antara engine game dan game itu sendiri
    • Game bernama 'Sapiens' berhasil dirilis di Steam
  • Bekerja dengan Rust hampir selalu lebih sulit

    • Ini adalah pendapat berdasarkan pengalaman pribadi
  • Tujuan proyeknya adalah agar saudara yang tidak menulis kode bisa ikut berkontribusi

    • Terasa seperti harus terus melakukan upgrade ke versi terbaru
    • Studio yang memakai Unity tidak sering upgrade versi kecuali ada bug tertentu yang diperbaiki