Implementasi Dialogue Tree pada Permainan RPG Menggunakan Linked List

Ferdinand Putra Gumilang Silalahi – NRP: 5025201176

Departemen Teknik Informatika

Fakultas Teknologi Informatika Cerdas

Institut Teknologi Sepuluh Nopember

Email: gumilangsilalahi3@gmail.com

ABSTRAK

Makalah ini membahas pengimplementasian dialogue tree pada permainan elektronik. Struktur data yang digunakan adalah modifikasi dari struktur data linked list. Modifikasi yang dibuat adalah adanya node di dalam node utama di linked list yang berguna untuk menyimpan semua pilihan dialog yang mungkin pada linked list.

  1. Pendahuluan

Pada permainan video, dialog adalah salah satu komponen terpenting yang digunakan untuk menceritakan naratif dari permainan tersebut. Pada permainan yang lebih modern, pilihan dari pemain adalah aspek yang dipertimbangkan dalam pengembangan sehingga sebuah jenis dialog yang memperhitungkan input dari pemain diperlukan. Dialogue Tree adalah jenis dari dialog pada permainan video yang dapat menerima input dari user di titik tertentu sehingga dapat mengubah berjalannya percakapan yang terjadi.

Dialogue tree memiliki beberapa properti yang perlu diperhatikan. Yang paling utamanya, dialogue tree harus memuat teks dialog yang akan digunakan. Selain itu, dialogue tree memerlukan pilihan dialog yang interaktif. Pengguna harus dapat memilih pilihan dialog yang ingin mereka utarakan. Pilihan dialog itu juga berisi penunjuk yang menunjuk kepada bagian dialog sesudahnya, sehingga dialog dapat berjalan dari node ke node. Terakhir, pohon dialog, khususnya pada permainan RPG, dapat berinteraksi dengan lingkungan permainan yang lebih luas sesuai dengan pilihan dialog yang dipilih oleh pemain.

  1. Dasar Teori
  1. Linked List

Diagram, box and whisker chart

Description automatically generated

Linked list adalah sebuah struktur data di mana elemen-elemennya tidak disimpan pada blok memori yang berurutan. Pada linked list, satu elemen, atau disebut node, berisi data yang disimpan dan sebuah penunjuk yang menunjuk ke lokasi data selanjutnya di memori. Pada linked list, satu node linked list dapat memiliki lebih dari satu panah penunjuk yang mengarah ke node selanjutnya, sehingga Linked List dapat digunakan untuk membangun struktur data yang lebih rumit.

  1. Linked List pada Dialogue Tree

Dalam implementasinya, Dialogue Tree menggunakan modifikasi dari struktur data Linked List. Seperti linked list pada umumnya, sepotong dialog akan disimpan dalam satu node yang menerima tipe data String. Akan tetapi, untuk memastikan bahwa pohon dialog memenuhi karakteristik dan properti di pendahuluan, pointer pada linked list tidak bisa sebatas menunjuk ke node selanjutnya saja. Pointer yang menunjuk ke node selanjutnya diinkorporasikan ke dalam node respons.

Node respons, dibandingkan dengan node dialog yang lebih umum, berisi sebuah return code dan pointer ke node selanjutnya, ditambah dengan teks yang berisi dialog respons dari pemain. Return code berfungsi untuk memenuhi kaidah dialogue tree yang harus dapat berinteraksi dengan lingkungan permainan yang lebih luas. Return code yang diberikan pada akhir dialog dapat menandakan berbagai macam hal. Pada contoh ini, return code berfungsi untuk menandakan apakah sebuah quest, atau tugas yang harus dilakukan pemain, diterima oleh pemain atau tidak. Cabang dan pilihan dialog berbeda akan mengembalikan nilai yang berbeda, sehingga diterima atau tidaknya sebuah quest dapat ditentukan oleh pemain berdasarkan pilihan dialognya.

Untuk memudahkan dalam penjalanan dialogue tree, setiap node dan node respons yang dibuat akan disimpan ke dalam struktur data yang dapat diakses dengan cepat, seperti array atau array list pada bahasa pemrograman Java khusunya. Pohon dialogue akan dieksekusi dengan membuat sebuah pointer yang menunjuk ke node paling awal di dialogue tree. Lalu, program akan menampilkan teks yang ada di node tersebut lalu menampilkan juga semua respons yang mungkin. Jika sebuah respons dipilih, pohon dialog akan berpindah ke node selanjutnya yang ditunjuk oleh node respons yang telah dipilih. Eksekusi dialog akan berhenti jika node selanjutnya yang ditunjuk node respons bernilai null.

  1. Implementasi

Berikut adalah implementasi kode untuk dialogue tree

        Gambar 1: Kode eksekusi dialog

Graphical user interface, text

Description automatically generated

Gambar 2: Kode dialogue node

Graphical user interface, text, application, email

Description automatically generated

        Gambar 3:  kode dialogue option

  1. Hasil Run Program

Pada implementasinya, program mengoutput sebuah dialogue tree yang dapat dijalankan oleh pengguna.Text

Description automatically generated

  1. Kesimpulan

Dialogue tree adalah komponen yang sangat penting bagi permainan video yang memiliki elemen naratif yang kuat. Struktur data yang digunakan untuk mengimplementasikannya adalah linked list yang dimodifikasi. Setiap node berisi teks dialog yang dikatakan dan setiap pointer ke node selanjutnya adalah node respons yang berisi teks respons, return code, dan pointer itu sendiri.

Daftar Pustaka

Geeksforgeeks.2021.Linked List Data Structure.Diambil dari geeksforgeeks.org:    https://www.geeksforgeeks.org/data-structures/linked-list/