31 Agustus 2018

Membangun Server dan Database (Personal Computer/OFFLINE)

Cara kerja server side dan client side

Server pada dasarnya adalah sebuah komputer yang menyimpan data-data yang dapat diakses dan diproses oleh game engine pada client side. Pada RO, Server digunakan sebagai akses data player juga menyimpan segala jenis riwayat seperti pick log, chat log, dan lain-lain. Server juga bisa digunakan sebagai Website/Portal.

Pada Artikel ini, saya akan menjelaskan bagaimana caranya untuk membuat Private Server menggunakan OS WINDOWS untuk bermain sendiri atau bermain bersama dengan LAN (OFFLINE)

Langkah Pertama

yang kamu butuhkan adalah, mendownload file Emulator pilihan kamu.

Pada Windows, biasanya kamu akan membutuhkan program tambahan seperti TortoiseGit, kamu bisa langsung mendownload archive dalam bentuk Zip,


Men-download langsung dalam bentuk ZIP, tanpa menggunakan TortoiseGit (pada OS Windows) 

Tapi, lebih disaran untuk mendownload dengan menggunakan TurtoiseGit, langkahnya ikuti pada masing-masing emulator yang kamu pilih :

  • Cara download dan install rAthena dengan TurtoiseGit : Klik Disini
  • Cara download dan install Hercules dengan TurtoiseGit : Klik Disini


Langkah Kedua, mengatur interkoneksi antar server.

Ragnarok Online menggunakan server berbasis AEGIS, dimana terdapat tiga server yang saling berhubungan yaitu, 

  • Login Server, memproses data ketika ID dan Password di input.
  • Char Server, memproses data karakter yang ada didalam ID
  • Map Server, memproses karakter dan Script-script seperti NPC, monster, warp portal, dan lain-lain.


NOTE :

  • Jika Login Server mati, ID yang berhasil login tetap bisa memilih karakter dan melanjutkan permainan seperti biasa didalam dunia game.
  • Jika Char Server mati, ID yang berhasil login, memilih karakter, dan berhasil masuk kedalam game, tetap dapat bermain, namun, segala update seperti naik level, perubahan stat, perubahan skill, dan item yang didapat tidak akan tersimpan (roll back).
  • Jika Map Server mati, ID tetap dapat proses dan bisa memilih karakter, namun, karakter tidak dapat masuk ke dunia game, semua karakter yang berhasil masuk kedalam server akan keluar dari game (Disconnect).

Pada versi emulator terdahulu, kamu bisa langsung merubah settingan interkoneksi server dengan merubah beberapa file, namun, untuk beberapa versi terbaru, kamu harus melakukan compile terlebih dahulu.

Pada OS Windows (Hanya support Visual Studio 2013 keatas),

  • Download versi terbaru Visual Studio (pada saat tulisan ini dibuat, Penulis menggunakan Microsoft Visual Studio 2015 Community Edition), setelah selesai men-download, Install. 
  • Pada rAthena, buka rAthena.sln pada folder rAthena mu,
  • Pada Hercules, Buka Hercules-12.sln jika kamu punya MS Visual Studio 2013, buka Hercules-14.sln jika kamu punya MS Visual Studio 2015, buka Hercules-15.sln jika kamu menginstall MS Visual Studio 2017 (Perhatikan versi Visual Studio yang kamu install !)
  • Cari Debug (pada tanda merah), rubah ke Release 

  • Klik kanan Solution Mode (pada tanda biru), pilih Build solution. Jika kamu sudah pernah meng-compile server mu, pilih Rebuild solution (akan berguna nanti jika kamu merubah source file).
  • Tunggu sampai proses compile selesai, kecepatan waktu compile tergantung dari spek komputer kamu.
  • Jika proses compile selesai, periksa folder rAthena / Hercules mu, periksa adakah login-server.exe, char-solution.exe, map-server.exe, dan mapcache.exe. Bila tidak ada, berarti proses compile gagal.

Untuk Linux, maaf penulis belum pernah mencoba menggunakan OS Linux / Unix pada Personal Computer, silahkan mengecek dokumentasi pada masing-masing emulator yang akan kamu gunakan.

Istirahat sebentar ya, sampai disini kamu sudah berhasil mempersiapkan server mu, untuk melanjutkan ke tahap selanjutnya, kamu membutuhkan SQL Server sebagai database. Mungkin beberapa dari kamu pernah mendengar TXT Server dan SQL Server untuk versi eAthena. Dimana kamu mendownload TXT Server jika ingin bermain secara lokal / LAN / offline, dan mendownload SQL Server jika ingin benar-benar menjadi sebuah Ragnarok Online dan orang lain bisa bermain dari kejauhan.

Sejak rAthena mulai berkembang (sebelum beberapa staff terpecah dan membangun saingannya Hercules), pada update revisi r15503, rAthena berhenti mensupport TXT Server. Sebagai gantinya, rAthena merilis aplikasi bernama rAsql, dimana para developer tidak perlu repot-repot membangun webserver beserta SQL Server dalam mengembangkan PSRO nya. rAsql hanya berfungsi sebagai mySQL portable, kamu tetap bisa menggunakannya untuk bermain LAN.

Langkah Ketiga, Membuat Database.

Oke, masuk ke tahap selanjutnya, yaitu membuat database untuk server kamu. Karena menggunakan mysql server membutuhkan webserver dan membuatnya agak merepotkan, kita hanya perlu mendownload rAsql sebagai database untuk database. rAsql pada dasarnya dibuat oleh tim developer rAthena menggunakan HeidiSQL Portable, namun jika Hercules adalah pilihan emulator mu, kamu tetap dapat menggunakan aplikasi tersebut.

Menggunakan rAsql.

  • Download rAsql melalui TortoiseGit atau download file ZIP nya langsung
  • Setelah terdownload, buka folder rAsql mu, jalankan start_mysql.bat, tunggu beberapa saat hingga muncul jendela login form.
  • Default Username = ragnarok, password = ragnarok.
  • Isi Username dan password, lalu pilih login, jika ada confirmation form muncul, pilih saja NO (don't save), setelah itu akan muncul jendela baru yang lebih besar (HeidiSQL Portable).

  • Pada kolom kiri, klik kanan pada Unnamed (Kalau kamu tidak merubah apapun saat login), lalu pilih Create New, kemudian Database.
  • Isi nama database yang kamu inginkan (disini penulis menggunakan nama fn2016), tidak perlu menggunakan huruf kapital, agar mudah dihapal.
  • Alternatif lain, kamu bisa menggunakan Database ragnarok yang sudah default ada di dalam SQL.
  • Klik pada Database yang sudah kamu buat, kolom sebelah kanan masih terlihat kosong.
  • Pada kolom sebelah kanan, pastikan label Database: mu sudah terklik, kemudian klik menu Import dan klik Load SQL Files.

  • Cari folder rAthena / Hercules, lalu buka folder sql-files, kamu akan melihat beberapa file seperti dibawah untuk Hercules. Untuk rAthena, memiliki file lebih banyak, yaitu adanya item_shop_db, item_shop_db2, dan Roulette_default_data. Perhatikan pula untuk beberapa file seperti item_db dan mob_db, terdapat file item_db_re dan mob_db_re,.Re disini berarti Renewal, yang artinya, isi file tersebut berisi data-data yang dibutuhkan jika kamu akan menggunakan renewal sebagai mode game (3rd Job).

  • TIdak ada urutan yang spesifik untuk mengimport SQL file tersebut, kamu juga bisa memasukan sekaligus semua file dengan menggunakan CTRL+Klik kiri, namun, akan lebih baik jika kita masukan satu persatu sambil mengerti apa saja isi file tersebut. Berikut adalah urutan yang biasa penulis lakukan saat import data SQL. 
    (NOTE: Setiap kali memilih memilih file, pastikan kamu menekan tombol  Execute SQL (Tombol play berwarna biru pada toolbar, dan tunggu sampai proses selesai sebelum meng-import file lain).
  • main.sql - berisi table untuk data yang berhubungan dengan ID, character, guild, dan lain-lain
  • item_db, item_db_re, dan item_db2 - berisi table data-data item,
  • mob_db, mob_db_re, dan mob_db2 - berisi table data-data monster,
  • mob_skill_db, mob_skill_db_re, dan mob_skill_db2 - berisi table data skill monster
  • logs.db - berisi table untuk riwayat server mu, seperti chat_log, pick_log, dan zeny_log yang akan berguna untuk mencari kecurangan pada GM mu, hehe
  • untuk rAthena, masukan file sisanya yaitu, item_shop_db, item_shop_db2, dan Roulette_default_data
  • Setelah satu persatu file SQL kamu import, klik tombol Refresh pada toolbar, lalu pilih nama Database mu pada kolom sebelah kiri. Sekarang database harusnya sudah terisi table-table database yang kamu perlukan untuk menjalankan Private Server mu.



  • Selanjutnya, cari table login pada kolom sebelah kanan lalu klik 2x pada table tersebut. Lalu klik Label Data seperti gambar dibawah. Dan kamu akan melihat ada data default dengan Account ID 1, nama ID s1, password nya p1, untuk sementara, kamu tidak perlu merubah ini, tapi nanti, jika kamu berniat untuk membuat servermu Online, maka kamu harus merubah ID dan Password tersebut. (NOTE : Sex, S, = Server, M = Male, F = Female). Table login berisi data-data seperti ID, password, email, last login, dan lain-lain (Kamu bisa melihat-lihat sendiri hehe). 

  • Untuk sementara, kita tinggalkan dahulu rAsql terbuka dan pindah ke tahap selanjutnya.

NOTE : rAsql bisa di duplikasi, namun beda folder, maka beda pula isi database yang akan muncul saat mysql dibuka.


Langkah Keempat, Menghubungkan Server dan Database.

Langkah terakhir adalah merubah file config, untuk bermain secara offline kita tidak memerlukan banyak perubahan, pastikan kamu sudah mendownload dan menginstall Notepad++ untuk memudahkan pekerjaanmu. Jika belum, cek kembali artikel Membangun Private Server Ragnarok Online.

Masuk kedalam rAthena / Hercules, dan buka folder conf, periksa apakah folder import sudah ada atau belum, jika belum buatlah folder bernama import (huruf kecil semua). dengan folder import, kamu tidak perlu bolak balik scroll config yang mau dirubah, karena isi file confignya lumayan penuh dengan deskripsi masing-masing fungsi.

Buka aplikasi Notepad++, buat file baru melalui menu New (CTRL+N) pada Notepad++

(NOTE: Jika folder import dan isinya sudah ada sedari awal, kamu cukup membuka file-file dibawah satu persatu ke Notepad++)

- char_conf

  • Pada char_conf, kamu harus merubah username dan password (Default, username = s1, password = p1), kamu juga bisa merubah nama server, dan menambah huruf, angka, dan simbol yang dapat digunakan pada saat membuat Karakter. Pada file ini kamu juga bisa merubah senjata, armor, dan zeny awal, juga posisi koordinat spawn pertama kali setelah membuat karakter baru.

  • userid dan passid ini harus sama dengan yang ada didatabase, jika kamu tidak merubahnya di database, kamu tidak perlu merubah yang di config.
  • Nama server tidak boleh ada spasi, nama server akan muncul saat kamu memilih server dan saat karakter masuk kedalam game.
  • login_ip dan char_ip default adalah 127.0.0.1 (atau localhost), pada beberapa tutorial mengharuskan kamu untuk menggunakan LAN IP komputer kamu, misalnya 192.169.0.2, tapi server akan tetap berjalan dengan IP default yang disediakan
  • Save, bila kamu belum punya file char_conf pada folder import, buatlah file tersebut dengan file type : All type.


- map_conf

  • Sama seperti char_conf, userid dan passid harus sama dengan yang ada di database.
  • char_ip disini tetap default 127.0.0.1
  • map_ip diharuskan menggunakan WAN IP pada beberapa tutorial, namun untuk saat ini, biarkan saja default 127.0.0.1
  • Save, bila kamu belum punya file map_conf pada folder import, buatlah file tersebut dengan file type : All type.


- inter_conf

  • inter_conf berisi pengaturan untuk koneksi login-server, char-server, map-server, dan logs ke database.
  • Pada file ini, kamu cukup masukan username dan password MYSQL pada masing-masing server, dan rubah nama database sesuai dengan nama database mu. (Disini saya menggunakan fn2016 sebagai nama database).

  • Save, bila kamu belum punya file inter_conf pada folder import, buatlah file tersebut dengan file type : All type.

Selesai

Sampai disini seharusnya kamu sudah dapat untuk menjalankan servermu. Untuk menjalankan servermu, buka folder rAthena / Hercules, lalu klik run-server.bat, atau klik satu persatu secara berurutan login-server.exe, char-server.exe, terakhir map-server.exe.

Untuk beberapa OS Windows, biasanya akan ada jendela warning dari Firewall. Pastikan kamu mengizinkan semua network untuk menjalankan server.


Jika berhasil, kamu akan melihat ketiga server menampilkan Status login / char / map server is ready. Selamat! kamu sudah berhasil dan bisa melanjutkan ke tahap selanjutnya.


Troubleshooting.

Problem : Server tidak jalan / auto close 
Solusi : Periksa pesan error sebelum jendela tertutup, atau periksa apakah mysql sudah jalan atau belum.

Problem : SQL Error Access Denied
Solusi : Periksa inter_conf, apakah username dan password sudah benar atau tidak.

Problem : File login-server.exe, char-server.exe, dan map-server.exe tidak ada
Solusi : kamu belum benar dalam proses compile, coba ulangi.

Menghentikan Server.
Untuk menghentikan server, kamu cukup meng-close satu persatu jendela server. Untuk menghentikan rAsql buka folder rAsql kamu, dan klik mysql-stop.bat.

30 Agustus 2018

Tutorial Membuat Private Server Ragnarok Online


Setelah artikel berisi tentang sedikit sejarah dunia Ragnarok Online, sekarang saya ingin membagikan pengalaman saya membuat PSRO (Private Server Ragnarok Online), disini saya akan membuat tutorial membuat PSRO mulai dari emulator sampai dengan rilis, dengan catatan, konfigurasi yang saya gunakan hanyalah gambaran umum pada emulator yang populer saat ini, seperti rAthena dan Hercules, karena emulator jaman sekarang pada dasarnya menggunakan basis konfigurasi yang sama, untuk lebih jelasnya, kamu bisa search di google perbedaan masing-masing emulator.

Berikut hal-hal yang kamu butuhkan untuk membuat private server mu sendiri:
1. Komputer atau VPS untuk server 
Minimal spesifikasi yang dibutuhkan
- Processor Pentium Dual Core (Setara atau versi yang lebih baru)
- Sisa RAM 1Gb
- Sisa Storage HDD 10Gb
2. OS Windows atau Linux base (CentOS, Ubuntu, Fedora) 32 bit / 64 bit
3. Webserver dan mySQL Server
4. kRO dan Translated Client Data
5. grf Extractor/Builder
5. Notepad++ (wajib!) : Download
6. Emulator, rAthena / Hercules / 3ceam (pilih salah satu)

Optional :
- Adobe Photoshop / GIMP
- Microsoft Visual Basic Express
- rAsql
- Control Panel, FluxCP / Stargames / Ceres (FluxCP preferable)
- Ngerti bahasa inggris (Asli, ini penting)

Program lain yang dibutuhkan, akan penulis isi pada masing-masing tahap pengerjaan, yaitu:

Optional :
12. Patcher

Terima kasih sudah membaca artikel ini, semoga bermanfaat :)
*Link akan menyusul, setelah masing-masing artikel selesai dibuat.

Logs :
31/08/18 : Halaman Membangun Server Side dan Database ditambahkan.
01/09/18 : Halaman Membangun Client Side ditambahkan.
02/09/18 : Halaman Hexing Ragnarok EXE ditambahkan
07/09/18 : Halaman Menjalankan Server dan Test Play ditambahkan.
11/09/18 : Halaman Membuat akun GM ditambahkan.
18/09/18 : Halaman Memasang / Menghapus NPC ditambahkan
19/01/19 : Halaman Membuat NPC ditambahkan
25/01/19 : Halaman Mengatur Command GM / Player ditambahkan.
19/10/19 : Halaman Menambah Custom Item ditambahkan
02/11/19 : Halaman Mengatur Spawn Mob, Warp Portal, dan Mapflag ditambahkan.
30/11/19 : Halaman Custom Graphic ditambahkan

29 Agustus 2018

Sedikit Sejarah Ragnarok Online


Ragnarok Online, atau yang lebih dikenal dengan RO, game MMORPG buatan Korea Selatan yang pertama kali rilis pada tahun 2003 di Indonesia, merupakan salah satu game online populer tidak hanya di Indonesia, namun juga diberbagai negara. Walaupun minim storyline, RO lebih terkenal memiliki fitur sosialita menggunakan chat yang mirip dengan IRC (yang saat itu sangat populer), memudahkan player untuk saling berkomunikasi dengan player lain, sehingga dengan sendirinya bermunculan komunitas dan fanbase yang aktif, baik didalam game maupun diluar game, dan termasuk yang terbesar dari sekian game online yang ada di dunia.

Salah satu bentuk komunitas, datang ke acara pernikahan seorang player.
Menggunakan sistem Pay to Play, dimana player harus membayar untuk bermain setelah masa percobaan selesai pada tahun 2004, RO tetap bertahan dan pada tahun 2007, idRO (Ragnarok Online Indonesia) merilis server free to play, yaitu Fun N Chat, dengan pengurangan fitur seperti dihapuskannya Teleport baik itu dengan skill atau item, walau tidak sepenuhnya gratis, adanya Item Mall atau Kafra shop, menjadikan sistem pembayaran Freemium, dimana player tetap dapat bermain, tapi dapat membeli benefit lebih seperti Item yang meningkatkan Experience dan Drop dengan durasi tertentu.

Seiring berjalannya waktu, sekitar tahun 2003 (di indonesia sekitar tahun 2005), munculah program automated A.I. atau yang lebih dikenal dengan Bot (saat itu Openkore belum sepopuler sekarang), dimana player tidak harus "bermain" untuk dapat meningkatkan level karakternya, pada awalnya, pihak developer dan publisher menanggapi serius masalah ini, dan sedikit demi sedikit, dari awalnya sangat mudah untuk semua orang menggunakan bot, hingga sekarang sangat sulit dimana hanya beberapa orang yang benar-benar mengerti programnya yang dapat menggunakan Bot.

Openkore, Salah satu program bot  untuk Ragnarok Online yang masih digunakan sampai saat ini.
Namun, proses memproteksi game dari Bot tidaklah sebentar, banyak player yang akhirnya kecewa lalu "Pensiun" setelah merasa dicurangi oleh para player yang menggunakan bot. Munculnya server Freemium juga berdampak buruk menjadikan RO sebagai game Pay to Win, karena sangat sulitnya player free to play murni untuk mengembangkan karakternya, mengakibatkan banyaknya player yang memutuskan untuk "Pensiun", tidak sampai disitu, bermunculannya Ragnarok Online Private Server (PSRO) juga menjadi dampak berkurangnya player pada server official.

Ragnarok Online Private Server (PSRO), merupakan un-official server RO, yang menggunakan emulator mengikuti kinerja AEGIS (program yang menjalankan server RO pertama kali) dengan menggunakan client dari official RO. Emulator yang paling terkenal adalah eAthena, dan akhirnya pecah / bercabang menjadi emulator lain seperti, 3ceam, rAthena, dan Hercules. Hanya dengan sedikit mengatur file-file konfigurasi yang ada didalamnya, maka kamu dapat mengembangkan RO mu sendiri dan mempublishnya. PSRO mulai trend pada awal tahun 2008, Penulis sendiri pertama kali melihat PSRO pada tahun 2006, baru mencoba bermain salah satu PSRO luar negeri pada tahun 2007 akhir, dan merilis private server buatan sendiri (beserta tim penulis) pada tahun 2008.

eAthena, salah satu emulator yang paling banyak digunakan, namun, sekarang sudah terbengkalai.
Membuat private server di Indonesia bukan hal mudah dalam segi teknis, untuk menjalankan emulator, membutuhkan sebuah Server dan Koneksi Upstream yang baik, VPS (Virtual Private Server) adalah pilihan yang paling baik, pada tahun 2007 harga VPS termurah adalah 25 USD sudah plus domain .com/.net/.org ( 1 dolar masih sekitar 8000-an Rupiah), saat itu menggunakan penyedia jasa khusus PSRO yang berada di Amerika. Sayangnya server mereka terkena DDOS, dan mereka terpaksa menghentikan jasa mereka, penulis termasuk korban yang terkena imbasnya karena kebetulan PSRO penulis masih status hosting disana dan terpaksa harus menutup server kami. Mau tak mau, harus mencari VPS lokal support eAthena, saat itu paling murah 600.000 belum domain, dan semua harus di-manage sendiri.

Rate My Server (RMS) adalah salah satu wadah untuk promosi PSRO, lengkap dengan database monster, item, dan lain-lain.
PSRO sempat menjadi bisnis baru (kurang tau untuk PSRO indonesia jaman sekarang), banyak Private server yang buka lalu tutup, beberapa mencoba untuk bangkit kembali, juga bermunculan Jasa untuk membangun private server sendiri, dan sekarang tidak semahal dulu. Dengan modal tidak sampai setengah juta rupiah, sekarang kamu sudah bisa memiliki PSRO mu sendiri, tentunya dengan management yang baik, kamu bisa membuat PSRO yang baik pula.

Sekian, terima kasih atas waktunya untuk membaca artikel ini.