EVE Online: The Move to Python 3 Begins!
Oleh Zai · Let's Make It Easy
Dipublikasikan 2026-08-27
Migrasi Python 2 ke Python 3 sering terdengar seperti pekerjaan mengganti angka di nama versi. Di EVE Online, skalanya membuat gambaran itu langsung runtuh. Simon Willison meran...
Migrasi Python 2 ke Python 3 sering terdengar seperti pekerjaan mengganti angka di nama versi. Di EVE Online, skalanya membuat gambaran itu langsung runtuh. Simon Willison merangkum pengumuman resmi EVE tentang perpindahan yang akan dimulai dari codebase lama dan besar.
1. Apa yang sedang dipindahkan?
EVE Online sudah memakai Stackless Python sejak 2003. Menurut ringkasan tersebut, upgrade besar terakhir ke Stackless Python 2.7 terjadi pada 2010. Jadi persoalannya bukan sekadar memperbarui interpreter di satu service. Ada sejarah runtime, library, dan perilaku aplikasi yang ikut terbawa selama bertahun-tahun.
2. Mengapa angka baris kode bukan cerita lengkap?
Rencana awalnya memakai script futurize terhadap sekitar 2,4 juta baris kode. Setelah itu, tim masih harus meninjau sekitar 20.000 lokasi yang bisa berubah perilakunya antara Python 2 dan Python 3. Contoh kecilnya adalah pembagian integer: 1 / 2 menghasilkan 0 di Python 2, sedangkan Python 3 menghasilkan 0,5.
Script membantu menemukan pola, tetapi tidak bisa memutuskan maksud bisnis atau gameplay dari setiap baris. Bagian manual justru menentukan apakah hasil konversi tetap benar.
3. Pelajaran untuk builder
Kalau Anda mewarisi aplikasi Python lama, mulai dari inventaris dependency dan uji perilaku, bukan dari edit massal. Tandai operasi yang berubah semantik, jalankan test yang menangkap output penting, lalu pisahkan perubahan mekanis dari keputusan yang butuh review manusia.
Pengumuman ini belum memberi hasil migrasi final. Ada juga pertanyaan soal pengganti Stackless di EVE Online; materi terkait yang disebut Simon Willison membahas Carbon engine untuk EVE Frontier, bukan bukti bahwa seluruh EVE Online sudah memakai arsitektur yang sama.
4. Checklist migrasi
Buat daftar modul yang paling sensitif terhadap perubahan runtime. Prioritaskan parser, serialisasi, operasi angka, encoding teks, dan kode yang berinteraksi dengan database atau network. Untuk game online, regression test tidak cukup hanya memeriksa apakah proses hidup; hasil simulasi, latency, dan kompatibilitas data lama juga perlu dibandingkan.
Tim yang mengerjakan migrasi seperti ini juga perlu memisahkan perubahan yang mudah di-rollback dari perubahan yang menyentuh format data. Rilis bertahap akan lebih aman daripada satu cutover besar, terutama ketika pemain dan service lama masih aktif bersamaan.
Saat membuat rencana, jangan hanya menghitung effort konversi. Hitung juga waktu untuk membaca diff, memperbaiki test yang terlalu rapuh, dan menjalankan canary di environment yang menyerupai production. Dokumentasi keputusan akan membantu anggota tim lain memahami mengapa pola tertentu tidak boleh diubah sembarangan setelah migrasi.
Simpan hasil test sebelum dan sesudah perubahan agar regresi terlihat, bukan hanya terasa saat pemain melapor. untuk tim
Referensi: https://simonwillison.net/2026/Aug/25/eve-online-move-to-python-3/