Random Crash Di Unknown Horizons

Submitted by w41lf0x on Sat, 03/09/2013 - 18:00

Unknown Horizons LogoUnknown Horizons (umumnya disingkat UH) adalah sebuah permainan opensource yang sangat menarik. Setidaknya buat saya. Mungkin anda-anda lebih suka permainan bunuh-bunuhan, sambil melihat darah muncrat kemana-mana. Maka saya lebih suka permainan simulasi strategi. Membangun sesuatu dari nol, meningkatkannya dan berangkat dari situ pelan-pelan menguasai dunia. Meskipun hanya bergrafis dua dimensi, tetap saja permainan ini menantang buat saya. Itulah mengapa saya menyukai permainan Age Of Empires jaman dulu. Membangun peradaban itu menyenangkan, apalagi jika sambil belajar sejarah. Entah jalannya sejarah tersebut benar atau tidak, setidaknya tetap memberikan pelajaran buat saya.

Saat ini saya masih mencoba memainkan Unknown Horizons versi 2013.1. UH menggunakan program AI bernama FIFE, dan saya menggunakan FIFE versi 0.3.4. Hanya saja, tetap masih ada yang mengganjal dari permainan ini. Bukan soal permainannya. Ganjalan itu terdapat pada programnya. Entah mengapa saya selalu mengalami kerusakan segmentasi setelah permainan berjalan beberapa saat. Kerusakan itu biasanya terjadi saat saya menggerakkan sebuah obyek bangunan di atas peta untuk mencari lokasi yang tepat ketika masuk modus pembangunan. Tiba-tiba saja permainan berhenti seakan-akan terjadi sebuah kegagalan proses.

Untuk mengetahui apa yang terjadi sebenarnya, saya menjalankan ulang UH dari terminal. Kemudian saya berusaha mengulangi urutan perlakuan sampai kesalahan yang sama muncul. Karena saya menjalankannya dari terminal, saya bisa melihat bahwa telah terjadi kegagalan identifikasi obyek, dalam hal ini obyek tersebut adalah sebuah fungsi yang dipanggil pada saat saya menggerakkan obyek bangunan di atas peta. Berikut ini adalah pesan debug yang saya peroleh dari terminal:

Traceback (most recent call last):
  File "/usr/bin/unknown-horizons", line 470, in 
    main()
  File "/usr/bin/unknown-horizons", line 280, in main
    ret = horizons.main.start(options)
  File "/usr/lib/python2.7/site-packages/horizons/main.py", line 290, in start
    horizons.globals.fife.run()
  File "/usr/lib/python2.7/site-packages/horizons/engine/engine.py", line 273, in run
    self.loop()
  File "/usr/lib/python2.7/site-packages/horizons/engine/engine.py", line 287, in loop
    f()
  File "/usr/lib/python2.7/site-packages/horizons/timer.py", line 112, in check_tick
    f(self.tick_next_id)
  File "/usr/lib/python2.7/site-packages/horizons/scheduler.py", line 96, in tick
    callback.callback()
  File "/usr/lib/python2.7/site-packages/horizons/world/units/movingobject.py", line 229, in _move_tick
    self._instance.follow(action, self._route, speed)
  File "/usr/lib/python2.7/site-packages/fife/fife.py", line 8662, in follow
    return _fife.Instance_follow(self, *args)
RuntimeError: _[NotFound]_ , Something was searched, but not found :: action move_as_����eer0 not found
AL lib: (EE) alc_cleanup: 1 device not closed

Pada awalnya saya menyangka kegagalan identifikasi fungsi tersebut terkait dengan lokalisasi yang saya gunakan, yaitu id_ID.UTF-8. Tetapi kemudian saya pikir tidak juga karena saya menggunakan lokalisasi +UTF-8 yang artinya sistem saya mendukung karakter unicode. Jadi saya benar-benar buntu sampai di sini. Saya sudah melaporkan hal ini ke pusat pengembangan Unknown Horizons di github dengan nomor isu #2039. Jika teman-teman yang kebetulan memainkan permainan ini dan kemudian mengalami permasalahan serupa, mohon kiranya mengirimkan juga hasil debugnya ke isu tersebut.

Berikut ini adalah sistem yang saya gunakan:

  • CPU: AMD E-350 Processor AuthenticAMD GNU/Linux
  • VGA: AMD Radeon HD 6310
  • OS: Slackware-current, Linux c435 3.7.9-wls (SMP), i686
  • Driver: AMD Catalyst 13.1 (FGLRX 9.012)
  • Software: Python 2.7.3, FIFE 0.3.4, Unknown-Horizons 2013.1

Selamat bermain...