logo logo

Membangun server game online Ragnarok

Disela-sela aktifitas, nulis lagi, tulisan ini sebetulnya request dari beberapa teman saya, tentang how to build server ragnarok online, setelah beberapa dekade tertunda, saya sempatkan menuliskannya disini, mudah-mudahan mudah dimengerti.

Sekilas pandang tentang server ragnarok online, adalah sebuah server emulator game dimana tugas utama dari server adalah melakukan query database, dan loading data-data item-item yang ada di game, selain itu tidak ada, gambar, efek dll itu diatur di client, olehkarenanya biasanya client ragnarok bisa lebih dari 2Gb, itulah penyebabnya.

Sebelum membuat server ragnarok, saya singkat saja jadi RO, ada beberapa hal yang harus anda kuasai, versi yang saya bahas adalah emulator menggunakan Linux Debian dan Ubuntu Server, saya tidak membahas Windows disini, untuk yang menggunakan Windows silahkan merujuk ke http://eathena.ws disana banyak artikel bahkan lebih komplit :)

Persiapan-persiapan :

  1. Pengetahuan Linux diantaranya networking, firewalling, LAMP (Linux Apache, MySQL dan PHP), compiling.
  2. Pengetahuan tentang bahasa C++, karena ini digunakan untuk editing emulatornya, contoh merubah standar-standar perintah on game misal @go, storage size, max zeny, max stat, max lvl, custom NPC dll.
  3. Koneksi server yang baik, baik IIX untuk player, maupun INT untuk download emulator (svn eathena).
  4. Dedicated server yang cukup ( misal RAM 2GB, 80 GB Hardisk, Intel Xuad Core 2.8 GHz )
  5. Alamat domain, misal funro.com atau semacamnya.
  6. Pengetahuan sisi client ( Editing GRF dan membuat GRF. Membuat Patcher untuk update otomatis ke GRF client, Pengetahuan Packet Version baik RagEXE maupun SakEXE,  Custom Sprite, pallete dl.
  7. Last, waktu yang cukup untuk ngoprek-oprek, ini biasanya yang jadi kendala, termasuk saya dari 3 kali bikin server RO ( wan-dki-rr1 ro, fastlink ro, rr1 rebith ) semuanya terkendala di waktu :)
  8. Kebutuhan lain misal, GM Team Work misal minimal 3 orang (Server Support, Client Support, GM Aktif), bisa saja sendirian tapi itu kembali ke no 7. Karena setelah RO running well, masih banyak hal yang harus kita persiapkan, layanan, complaint, updating, customing dll.

A. [tahap 1] Setup Server Ragnarok – SQL based pada Linux Server ( Debian/Ubuntu 64 bit )

1. Login ke server menggunakan putty dan jangan lupa ‘sudo su’:

2. Cek paket-paket untuk compiling emulatornya:

  • Subversion
  • Make
  • GCC
  • libmysqlclient15-dev
  • libpcre3-dev
  • zlib1g-dev
  • vim editor (my favorite :D)

Paket-paket diatas merupakan library dari emulatornya sendiri, jika tidak ada maka akan muncul pesan error saat kita melakukan compile, jika belum ada tinggal install menggunakan apt-get install nama paket.

2. Install LAMP dan paket-paket diatas (2)
[bash][root@ragnarok] apt-get install php5 phpmyadmin mysql-server mysql-client apache2 gcc svn libmysqlclient15-dev make zlib1g-dev libpcre3-dev vim[/bash]
catatan: pada saat instalasi mysql-server dan phpmyadmin akan muncul permintaan input user dan password, contoh, user: root password: 123456
jika sudah selesai keluarlah dari subtitute user, atau login menjadi user biasa.

3. Download emulatornya menggunakan svn co, alamat bisa dibwah ini:

  •  http://eathena-project.googlecode.com/svn/trunk/ [akses 13-10-2012] atau, pilih salah satu.
  • http://svn.rathena.org/svn/eathena/trunk/ [akses 13-10-2012]

[bash][root@ragnarok] svn co http://eathena-project.googlecode.com/svn/trunk[/bash]

4. Masuk ke folder trunk dan lakukan compailing

[user@ragnarok] cd trunk
[user@ragnarok] chmod a+x configure && chmod a+x athena-start
[user@ragnarok] ./configure --enable-64bit
[user@ragnarok] make sql plugins
[user@ragnarok] chmod a+x login-server_sql && chmod a+x char-server_sql && chmod a+x map-server_sql

catatan: jika tidak menggunakan mesin 64bit hilangkan –enable-64bit

5. Jika anda sering-sering merubah source misal penambahan max zeny dll, anda hanya butuh recompile, jadi tidak usah menjalankan configure lagi, perintahnya

[user@ragnarok] make clean

6. Jika semua proses diatas berjalan dengan baik, maka sekarang anda buat databasenya, bisa menggunakan console, maupun menggunakan phpMyAdmin, kita pilih yang sedikit repot menggunakan konsole :)

a. Menggunakan Konsole

[user@ragnarok] mysql -u root -p
Password:
mysql:
CREATE DATABASE ragnarok;
quit;

b. import database main.sql yang ada di folder sql-files

[user@ragnarok] cd sql-files
[user@ragnarok] mysql -u root -p ragnarok < main.sql
Password:
[user@ragnarok] mysql -u root -p ragnarok < log.sql
Password:

c. Langkah selanjutnya ubah login server default emulator s1:p1 misal menjadi user1:password1 dan user account GM

[user@ragnarok] mysql -u root -p
Password:
USE ragnarok;
UPDATE login SET userid='user1',user_pass='password1' WHERE account_id=1;
INSERT INTO login(account_id,userid,user_pass,sex,email,level) VALUES ('2000000','usergm', 'gm123456','M','gm@funro.com','99');
quit;

7. Ubah settingan default emulator ( inter_athena.conf, char_athena.conf, map_athena.conf )

[user@ragnarok] cd /home/ragnarok/trunk/conf
[user@ragnarok] vim inter_athena.conf
// Global SQL settings
// overriden by local settings when the hostname is defined there
// (currently only the login-server reads/obeys these settings)
sql.db_hostname: 127.0.0.1
sql.db_port: 3306
sql.db_username: root
sql.db_password: 123456
sql.db_database: ragnarok
sql.codepage:

// MySQL Character SQL server
char_server_ip: 127.0.0.1
char_server_port: 3306
char_server_id: root
char_server_pw: 123456
char_server_db: ragnarok

// MySQL Map SQL Server
map_server_ip: 127.0.0.1
map_server_port: 3306
map_server_id: root
map_server_pw: 123456
map_server_db: ragnarok

// MySQL Log SQL Database
log_db_ip: 127.0.0.1
log_db_port: 3306
log_db_id: root
log_db_pw: 123456
log_db_db: ragnarok
log_codepage:

Ubah file char_athena.conf

[user@ragnarok] vim char_athena.conf
// Server Communication username and password.
userid: user1
passwd: password1
// Server name, use alternative character such as ASCII 160 for spaces.
// NOTE: Do not use spaces in the name, or guild emblems won't work client-side!
server_name: FunRO

Terakhir map_athena.conf

// Interserver communication passwords, set in account.txt (or equiv.)
userid: user1
passwd: password1

8. Beres sekarang tinggal running :)

[user@ragnarok] cd /home/ragnarok/trunk
[user@ragnarok] ./athena-start

9. Done… emulator RO sudah running :), banyak juga ternyata ya langkahnya, cek port runningnya

[user@ragnarok] netstat -tulpn

cari bagian ini, kalau ada maka server sudah running well atau bisa juga menggunakan ps -awux

tcp 0 0 0.0.0.0:5121 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:6121 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:6900 0.0.0.0:* LISTEN -

Atau menggunakan ps -auwx

ragnarok 18214 0.0 0.0 31468 3288 ? S Oct12 0:00 ./login-server_sql
ragnarok 18215 0.0 0.0 32312 3936 ? S Oct12 0:00 ./char-server_sql
ragnarok 18216 0.1 5.4 270940 221328 ? S Oct12 0:46 ./map-server_sql

10. Artikelnya bersambung saja ya :), setelah ini kita masuk ke bagian client sakexe, persiapan GRF dll.

Nanti lanjut deh di seri berikutnya… mau makan malem :)
Salam manis,
Alan

bottom

2 Responses to “Membangun server game online Ragnarok”

  1. muhammad farhan says:

    kk lanjutin dong kk buat server ragnarok di linux nya masa setengah-setengah kk 😀

Leave a Reply

Your email address will not be published. Required fields are marked *

 

bottom