Tag Archives

5 Articles
Tadinya Tentang Doki-doki Literature Club, Sekarang Tentang Ren’Py
doki-doki literature club, coded with Ren'Py

Tadinya Tentang Doki-doki Literature Club, Sekarang Tentang Ren’Py

Ada sebuah novel interaktif (visual novel) terbaru yang sedang populer saat ini di Internet. Nama novel tersebut adalah Doki-doki Literature Club (DDLC). DDLC merupakan sebuah novel interaktif horor yang menyajikan elemen penembus sekat (breaking 4th wall). Novel ini membuat cerita normal seperti novel pacaran lainnya; sampai satu titik pemain tanpa sadar membuat keputusan yang membuat depresi pemain. Itu sebabnya, permainan ini tidak dianjurkan untuk dimainkan oleh jomblo akut yang memiliki tendensi bunuh diri, dalam depresi, atau dalam masa terapi.

Anda mungkin bertanya, “menembus sekat pada bagian mana?” Saya tidak ingin membuka tabir misteri novel ini. Untuk menikmati novel ini, menurut saya, Anda harus mulai dari situs permainan dan membaca deskripsi perkenalan permainan ini di sana. Lalu, unduh dan mainkan. Anda akan mengerti mengapa deskripsi situsnya membuat permainan ini lebih mengerikan.

Permainan ini dapat diunduh gratis langsung dari situsnya. Anda bisa menyumbang di sana atau langsung ke laman unduhan. Permainan ini menyediakan berbagai tambalan terjemahan yang nampaknya disediakan oleh berbagai orang. Mungkin Anda tertarik untuk menerjemahkan ke dalam Bahasa Indonesia?

Yang menarik, saya menemukan bahwa berkas unduhan untuk GNU/Linux dan Windows menjadi satu. Besar berkas ZIP tersebut sekitar 240MB. Di dalam ZIP terdapat berkas DDLC.exe untuk Windows dan DDLC.sh untuk dijalankan di GNU/Linux.

Untuk menjalankan DDLC di GNU/Linux:

unzip ddlc-win.zip
DDLC-1.1.0-pc/DDLC.sh

Tentunya cara yang lebih gampang adalah membuka penjelajah berkas Anda; klik kanan untuk ekstraksi; dan klik DDLC.sh untuk menjalankan aplikasi. GNU/Linux tidak seheker zaman dulu.

Ingat! Jangan mainkan bila Anda jomblo akut!

Ren’Py

Saya bukan pengamat permainan. Saya lebih tertarik kepada teknologi yang ada di dalamnya. Ternyata, DDLC menggunakan pustaka Ren’Py sebagai tulang punggung. Ren’Py dikembangkan menggunakan bahasa Python. Pantas saja berkas DDLC untuk Windows dan GNU/Linux digabung. Berkas eksekusi ternyata hanya pembungkus untuk menjalankan skrip Python.

Ren’Py adalah sebuah perkakas pengembangan untuk membuat novel interaktif. Dia diterbitkan sebagai perangkat lunak bebas. Anda bisa memodifikasi sesuai kebutuhan Anda.

Pemasangan Renpy

Ada dua cara pemasangan: melalui berkas unduhan dan melalui distribusi. Karena suatu galat, Ren’Py membutuhkan pemasangan paket Python Tk. Paket ini diperlukan untuk membuat proyek baru. Jadi, untuk kedua metode tersebut, pastikan sudah dipasang:

sudo apt install python-tk

Setelah itu, aplikasi bisa dijalankan/dipasang seperti biasa.

Unduhan Situs

Anda dapat mengunduh di situsnya. Dengan cara normal, menggunakan penjelajah berkas favorit Anda, Anda dapat mengekstraksi dan menjalankan skrip renpy.sh tanpa perlu membuka terminal.

Ren'Py site's version

Ren’Py interface running from its site distribution.

Tetapi, saya beda! Berikut cara menjalankan:

wget https://www.renpy.org/dl/6.99.13/renpy-6.99.13-sdk.tar.bz2
tar xvfj renpy-6.99.13-sdk.tar.bz2
./renpy-6.99.13-sdk/renpy.sh

Atau gunakan cara yang lebih normal.

Paket Distribusi

Pada distribusi Debian 9 (Stretch), Ubuntu 16.04 atau terbaru, dan segala turunannya:

sudo apt install renpy

Saya lebih menyarankan cara ini karena semua paket pustaka yang dibutuhkan akan ikut dipasang.

Vanilla Ren'Py installed from Ubuntu.

Vanilla Ren’Py installed from Ubuntu repository.

Versi distribusi menyediakan layar yang lebih bersih karena pemelihara paket membagi Ren’Py menjadi beberapa bagian:

  • python-renpy, paket modul Python Ren’Py.

  • renpy, paket utama untuk memasang Ren’Py

  • renpy-demo, demo-demo yang bisa dijadikan acuan untuk mempelajari Ren’Py.

  • renpy-doc, dokumentasi penggunaan Ren’Py.

  • renpy-thequestion, contoh satu novel interaktif sederhana yang telah dikembang dengan Ren’Py.

Saya hanya memasang renpy dan tidak yang lain. Silakan pasang saja yang lain bila ingin.

Memasang dari Github

Cara lain yang lebih abnormal adalah Anda mengunduh sendiri dari Github dan mengompilasi aplikasi Ren’Py dari kode sumber. Silakan baca sendiri caranya di sana. Saya tidak membahas karena takut tulisan ini jadi kepanjangan.

Sekilas Penggunaan Ren’Py

Saya tertarik membuat aplikasi interaktif sederhana. Ada sedikit kekurangan saat membuat proyek baru. Saya harus membuat sebuah direktori kosong. Sepertinya Ren’Py tidak bisa membuat direktori baru untuk wisaya proyek baru.

Ya, sudah. Toh, membuat direktori baru hanya sejauh klik kanan atau mkdir:

mkdir ~/Proyek/Respy

Catatan: tanda ~ artinya direktori rumah (/home/test pada contoh)

Setelah itu, klik + Create New Project

Khusus untuk penggunaan Ren’Py yang pertama kali, kita akan ditanyakan direktori dasar untuk setiap proyek nantinya disimpan.

Project's root directory

First time using Ren’Py we will be asked about its project’s root directory.

Masukkan nama proyek:

New Project name

New Project name. Yeah, I don’t have a naming sense.

Setelah memasukkan nama proyek, tekan tombol ENTER untuk ke layar berikutnya.

Layar berikutnya untuk pemilihan templat bahasa. Sayangnya, templat Bahasa Indonesia saat ini tidak tersedia. Ya, sudah, langsung saja klik Continue.

Select primary language for your new project.

Select primary language for your new project.

Layar berikutnya untuk pemilihan tema awal. Pilih sesuai selera lalu  klik Continue.

Theme selection

Theme selection

Setelah itu, proyek Entah Apa Ini sudah termasuk dalam daftar proyek yang bisa diakses.

Our new project now appeared on the project list.

Our new project now appeared on the project list.

Kalau mau menjalankan aplikasi yang dibuat, klik Launch Project. Menu di sebelah kanan menyediakan apa saja yang bisa dikerjakan pada aplikasi.

Sekilas Utak-atik Proyek Ren’Py

Untuk proyek Entah Apa Ini, saya membuat beberapa perubahan berikut:

  • Mengubah resolusi dari 800×600 menjadi 720p (1280×720). Ada di game/options.rpy dengan opsi config.screen_width dan config.screen_width
  • Membuat direktori gambar dan menaruh semua gambar di sana: game/images
  • Skenario/alur permainan dibuat di game/script.rpy

Saya sudah membuat repositori GIT kalau hendak iseng-iseng mencoba.

Untuk mengunduh:

git clone https://github.com/jpmrblood/renpy-entahlah.git

Untuk menjalankan:

renpy renpy-entahlah

Distribusi

Sayangnya, versi pemaketan Ubuntu 16.04 yang saya gunakan tidak dapat membuat berkas distribusi. Anda harus menjalankan aplikasi Ren’Py yang diunduh dari situsnya. Berikut caranya setelah memuat proyek tersebut.

Hasilnya nanti berupa berkas ZIP yang bisa dijalankan langsung.

Terakhir

Untuk apakah aplikasi ini? Saya melihat potensi selain untuk membuat permainan, Anda bisa membuat semacam kuis interaktif untuk anak kecil sebagai bahan mata ajar. Anda bisa mengubah tata letak sehingga bisa membuat aplikasi ini menjadi ujian langsung.

Selamat berkarya!

Bacaan Lebih Lanjut

Unduhan Tak Berujung Pada EA Origin

Unduhan Tak Berujung Pada EA Origin

Pada saat hendak mengunduh sebuah permainan, Origin selalu pada keadaan “Preparing Download”. Rasanya tidak mungkin semalaman ditinggal masih pada status tersebut. Ketika WINE dijalankan dari terminal GNU/Linux, saat mengunduh permainan ada pesan ini berulang-ulang:

fixme:netprofm:list_manager_GetConnectivity 0x17a640, 0x33cd98

Setelah saya mencari tahu, ternyata ada masalah pada Qt5Network.dll yang dipakai oleh Origin. Intinya, karena proses pemanggilan (system call) pada wineserver terlalu panjang, unduhan tak juga diproses. Maka, solusinya Qt5Network.dll harus ditambal untuk menggunakan tembolok pada TcpSockets. Hal ini mengurangi system call yang berlebihan sehingga unduhan bisa berjalan.

Ya, sudah, selanjutnya silakan pergi ke direktori Origin. Kebetulan saya menggunakan Playonlinux, normalnya ada di “~/.wine/drive_c/Program Files/Origin/”

cd "~/PlayOnLinux's virtual drives/wine_csmt/drive_c/Program Files/Origin"

Lalu, selanjutnya unduh tambalan untuk Qt5Network.dll.

wget "https://bugs.winehq.org/attachment.cgi?id=47911" -O Qt5Network.bin.patch

Selanjutnya, buat salinan Qt5Network.dll untuk berjaga-jaga.

cp Qt5Network.dll{,.orig}

Terakhir, tambalan dimulai.

patch -Np0 -i ~/Unduhan/Wine/Qt5Network.bin.patch

Lalu jalankan Origin dan siap untuk mengunduh.

Bacaan Lebih Lanjut

Origin (EA Game Downloader) pada GNU/Linux

Origin (EA Game Downloader) pada GNU/Linux

Saya sebenarnya tidak menyukai EA dan Ubisoft. Praktik DRM mereka tidak saya sukai. Namun, rekan saya menyuruh saya untuk obyektif.

Ada permainan-permainan gratis yang diberikan oleh EA saat ini. Mungkin mereka berusaha merebut potongan kue yang lebih besar dari Steam. Ya, sudah, saya pun mencoba langsung memasang Origin.

Eh, ternyata ada galat seperti ini:

Origin: Online login is currently unavailable

Origin: Online login is currently unavailable

Yah. Untung saya cepat menemukan masalahnya. Menurut Galat #35902, galat ini disebabkan oleh karena sertifikat CA yang digunakan oleh EA sudah dibuang dari paket kumpulan CA Certifacates GNU/Linux yang terbaru. Hal ini karena GTE CyberTrust Global menggunakan 1024-bit. Astaga, di saat orang-orang sudah mulai menggunakan 4096-bit masih saja ada yang menggunakan enkripsi sepanjang itu.

Ah, sudahlah, saya tak sudi memasang sertifikat itu di komputer saya. Saya hanya akan memasang di lokal WINE saja. Intinya saya dapatkan dari artikel WineHQ.

Sebelum dimulai, saya mendapatkan sertifikat GTE CyberTrust Global dari TBS Internet. Caranya:

wget http://www.tbs-x509.com/GTECyberTrustGlobalRoot2018.crt

Atau gunakan aplikasi selain WGET untuk mengunduhnya.

Pertama-tama, pasang Internet Explorer 6. Cara paling mudah:

winetricks ie6

Atau gunakan PlayOnLinux untuk memasang komponen IE6.

Selanjutnya,  buka Control Panel. Caranya:

wine control

Lalu kemudian masuk ke Internet Options ▶ Content ▶ Certificates… ▶ Trusted Certification Authorities

Internet Properties

Internet Properties with Content tab open for installing certificate

Kemudian, pada Trusted Certification Authorities tekan tombol Import… dan pilih sertifikat yang kita sudah unduh (GTECyberTrustGlobalRoot2018.crt).

Trusted Certificate with GTE root certificate installed

Trusted Certificate with GTE root certificate installed

Selesai dan jalankan Origin seperti biasa.

Disciple II berjalan di WINE
Disciple II main menu running at 1024x768

Disciple II berjalan di WINE

Disciple II main menu

Disciple II main menu running at 1024×768

Disciple II adalah permainan yang sangat lama. Kebetulan saya baru membelinya saat Steam sedang cuci gudang. Saya suka permainan yang lama-lama. Cara mainnya lebih kaya dan menegangkan. Yah, hitung-hitung menebus dosa telah memainkannya versi bajakan sewaktu belum tahu dan mampu dahulu.

Pemasangan berjalan seperti biasa. Tidak ada masalah dengan permainan ini. Dia permainan lama yang masih menggunakan pustaka non DirectX (mendukung juga, sih, DirectX 7.x).

TL;DR

Saya sedang malas menulis, ini dikerjakan dengan WINE versi 1.7.4. Terbitan WINE stabil terbaru saat tulisan ini ditulis. Intinya, saya menjalankan Disciple II pada modus emulasi destop.

Pustaka asli yang digunakan

Ini hanya sekedar menunjukkan apa saja yang digunakan versi asli.

Disciple 2 winecfg, nothing special, really...

Disciple II winecfg, nothing special, really…

Tidak ada yang aneh. Ini hanya konfigurasi bawaan dari zaman dahulu memasang Steam.

Konfigurasi Emulasi Destop

WINE harus dikonfigurasi agar menjalankan aplikasi Steam pada modus emulasi destop. Jangan lupa menjalankan ulang Steam kalau sudah mengubah ini.

Disciple 2 Emulate desktop

Disciple 2 Emulate desktop

Pada aplikasi konfigurasi WINE, saya membuat emulasi destop dengan resolusi 1024×768. Mengapa tanggung? Karena monitor saya hanya sanggung pada mode 1600×900. Jadi, kalau saya ubah jadi yang tertinggi, 1280×1024, ada sebagian yang tidak muat di layar.

Konfigurasi Disciple II

Di versi Steam, disediakan fungsi untuk mengonfigurasi aplikasi permainan.

Disciple 2 configuration

Disciple II configuration

Tidak ada yang istimewa, hanya mengaktifkan DirectX dan modus kompabilitas.

— SELESAI —

Cara Curang

Sebenarnya saya tidak melakukan emulasi destop. Saya malas mengubah-ubah konfigurasi Wine. Lebih baik saya ubah pintasan untuk menjalankan Disciple II. Saya menambahkan emulasi destop sebagai parameter. Sehingga, berkas pintasan jadi seperti ini:

$ cat ~/.local/share/applications/wine/Programs/Steam/Disciples\ II\ Gallean\'s\ Return.desktop
[Desktop Entry]
Name=Disciples II Gallean's Return
Exec=env WINEPREFIX="$HOME/.wine" wine explorer /desktop=disciple2,1024x768 C:\\\\windows\\\\command\\\\start.exe steam://rungameid/1640
Type=Application
StartupNotify=true
Icon=A0AD_07e2c19a4468db3ab5f2f4b7181da8ad819b2f1f.0

Saya menyensor WINEPREFIX dan mengganti direktori rumah saya dengan $HOME. Sesuaikan dengan Anda. Ganti $HOME dengan direktori rumah Anda.

Berkas ini sebenarnya diciptakan oleh WINE sewaktu memasang aplikasi. Jadi, saya hanya menambahkan modus destop (seperti yang tercetak tebal). Tidak ada yang berubah selain itu.

Prime World di GNU/Linux dengan WINE
Prime World launcher

Prime World di GNU/Linux dengan WINE

Prime World launcher

Prime World launcher

Prime World adalah “yet another Three Corridors” game yang dibuat oleh pembuat yang sama dengan Heroes Might and Magic V, Nival. Varian Three Corridors yang terkenal saat ini adalah DoTA, DoTA 2, dan HoN. Prime World termasuk dalam kategori Free to Play alias gratis dan saat ini masih versi Beta.

Prime World bukan hanya sekedar varian Three Corridors. Ia juga menyediakan misi seperti permainan RPG. Ia juga menyediakan perluasan bangunan seperti Heroes Might and Magic. Sedikit lebih kompleks tapi masih belum seberapa dibandingkan Civilization.

Konfigurasi WINE

Berikut konfigurasi WINE yang berhasil menjalankan Prime World.

Versi 1.7.3
Pustaka yang diubah
winecfg 1.7.3

winecfg 1.7,3

Beberapa Ganjalan

Ada beberapa ganjalan yang saya alami dengan permainan ini.

Gagal tersambung ke peladen

PeladenPrime World mungkin terbatas. Saya mengalami kesulitan untuk mengaksesnya. Kegagalan ini disebabkan oleh karena aplikasi gagal menemukan pembaharuan terbaru yang ada di peladen.

Gagal memasang Prime World

Terus terang, memasang Prime World di Steam itu bikin stres dan gila. Sudah seminggu saya gagal memasangnya. Sepertinya peladen Prime World masih perlu ditingkatkan. Untungnya, di halaman unduh, Naval versi Torrent. Saya menggunakan versi Torrent.

Saat penulisan besar berkas yang diunduh sebesar 1,2GB dalam bentuk berkas Zip. Saya mengekstraksi isi berkas tersebut ke direktori Prime World yang di Steam ($STEAMAPPS/common/PrimeWorld). Perhatikan kalau versi unduhan ini nama direktorinya “Prime World” atau terpisah spasi.

Saat permainan tiba-tiba tidak terjadi apa-apa dan semuanya berhenti

Saya mengalami ini saat saya sudah menang atau mencapai suatu capaian tertentu. Secara tak sengaja saya menemukan aplikasi yang memblokir. Sepertinya ada aplikasi khusus yang berjalan di belakang saat terjadi kemenangan.

Saya membuka terminal dan melakukan ini:

$  killall PW_Game.exe

Ini saya lakukan di setiap penghujung misi. Sebab, biasanya di saat itu aplikasi menjadi tidak responsif.

Diseminasi Prime World

Saya mendapati beberapa komponen yang menarik:

  • Halaman depan menggunakan Qt4 sehingga dapat menggunakan HTML sebagai perias (yah, mirip-mirip Manokwari).
  • Permainan menggunakan FMOD Ex sebagai speech engine.
  • Aplikasi menggunakan ACE dan Terabit sebuah framework pemrograman. Jangan-jangan dia menggunakan pustaka knetwork untuk menyediakan koneksi Internet.
  • Aplikasi menggunakan DirectX 9. Tapi, kalau dari komponen, seharusnya bisa dibuat dengan OpenGL sehingga bisa dibawa ke Sistem Operasi lain (GNU/Linux misalnya).
  • Beberapa pustaka FOSS seperti OpenSSL, TIFF, libjpeg, dan lain-lain pun terlihat.

Ini makanya saya tertarik membahas penuh Prime World. Kebanyakan komponennya menggunakan pustaka FOSS. Bahkan, bisa saja dibuat dengan menggunakan Torque 3D. Tentu saja, tidak ada yang dapat mengalahkan inovasi. Pembuatan permainan bukan soal grafis atau lainnya, tetapi keasyikan bermain itu sendiri (gameplay experience). Penggunaan engine pihak ketiga hanya mengurangi waktu teknis dan memberi waktu lebih untuk mengembangkan isi permainan itu sendiri.