Introduction to Game Engines & The Power of Ren'Py
Di pertemuan pertama ini, kita akan memahami apa itu game engine, mengapa Ren'Py menjadi pilihan tepat untuk membuat visual novel, dan langsung membuat proyek pertama kamu.
Informasi Mata Kuliah
| Keterangan | Detail |
|---|---|
| Nama Mata Kuliah | Pemrograman Multimedia |
| Program Studi | S1 Teknik Informatika |
| Institusi | Universitas Nahdlatul Ulama Cirebon (Filkom) |
| Dosen Pengampu | Dr. Indra Surya Permana, MM., M.Kom. |
| SKS | 3 SKS |
| Topik Utama | Pengembangan Visual Novel dengan Ren'Py + AI |
Apa yang Akan Kamu Capai?
Menguasai konsep teoritis untuk mendesain aplikasi teknologi multi-platform.
Mampu menganalisis ekosistem Game Engine dan menentukan platform yang tepat untuk sebuah proyek.
Mahasiswa mampu membedakan karakteristik berbagai game engine dan memahami urgensi penggunaan Ren'Py dalam pengembangan aplikasi multimedia naratif.
Apa itu Game Engine?
Bayangkan kamu ingin membangun rumah. Kamu bisa saja membuat bata sendiri dari tanah liat, mencampur semen dari batu kapur, dan menebang pohon untuk kayu. Atau, kamu bisa membeli bahan bangunan yang sudah jadi dan fokus merancang rumahnya. Game Engine adalah toko bahan bangunan untuk game.
Secara teknis, Game Engine adalah perangkat lunak yang menyediakan komponen-komponen penting yang dibutuhkan untuk membuat game, sehingga developer tidak perlu membuat semuanya dari nol.
Komponen Utama Game Engine
Rendering Engine (Grafis)
Menggambar semua visual ke layar. Dari sprite 2D hingga model 3D yang kompleks.
Audio Engine
Memainkan musik latar, efek suara, dan mengelola mixing audio secara otomatis.
Input Handler
Mendeteksi klik mouse, tekan keyboard, sentuhan layar, dan input dari controller.
Save/Load System
Menyimpan dan memuat progres game secara otomatis tanpa perlu koding manual.
Cross-Platform Builder
Mengekspor game ke Windows, Android, iOS, atau Web dari satu kode yang sama.
Perbandingan Game Engine Populer
| Game Engine | Keunggulan | Cocok Untuk | Bahasa |
|---|---|---|---|
| Ren'Py | Khusus visual novel, sangat mudah, save/load otomatis | Visual novel, cerita interaktif | Python + Ren'Py Script |
| Unity | Serbaguna, komunitas besar, asset store kaya | 2D/3D game semua genre | C# |
| Godot | Open source, ringan, GDScript mudah | 2D game indie | GDScript / C++ |
| GameMaker | Cepat untuk prototyping 2D | Game 2D sederhana | GML |
| Unreal Engine | Grafis terbaik, AAA quality | Game 3D profesional | C++ / Blueprint |
Karena tujuan mata kuliah ini adalah membuat cerita interaktif yang bermakna (Social Impact Visual Novel), bukan game action. Ren'Py memberikan semua fitur yang kita butuhkan dengan kurva belajar yang jauh lebih rendah dibanding Unity atau Unreal.
Mengenal Ren'Py
Ren'Py (dibaca "ren-pie") adalah game engine gratis dan open-source yang dirancang khusus untuk membuat visual novel dan permainan naratif interaktif. Nama "Ren'Py" berasal dari kata "Ren'ai" (cinta dalam bahasa Jepang, mengacu pada genre yang populer di visual novel) dan "Python" (bahasa pemrograman yang mendasarinya).
Fakta Menarik tentang Ren'Py
- Digunakan oleh lebih dari 10.000 game yang terdaftar di itch.io dan Steam
- Game terkenal seperti Doki Doki Literature Club dan Katawa Shoujo dibuat dengan Ren'Py
- Sudah tersedia sistem save/load, rollback dialog, dan preferensi secara otomatis
- Dapat di-export ke Windows, macOS, Linux, Android, iOS, dan Web
- 100% gratis, bahkan untuk proyek komersial
Fitur Bawaan Ren'Py yang Menghemat Waktu
| Fitur | Keterangan | Bayangkan kalau manual |
|---|---|---|
| Save/Load System | Pemain bisa menyimpan dan memuat kapan saja | Butuh ratusan baris kode |
| Dialog History | Pemain bisa scroll ke dialog sebelumnya | Kompleks implementasinya |
| Auto-Mode | Dialog berjalan otomatis tanpa klik | Perlu timer system sendiri |
| Skip Dialog | Skip dialog yang sudah pernah dibaca | Perlu tracking state kompleks |
| Rollback | Pemain bisa kembali ke dialog sebelumnya | Butuh undo-history system |
Instalasi Ren'Py: Langkah demi Langkah
Kamu butuh koneksi internet untuk download Ren'Py (~180 MB) dan komputer/laptop dengan RAM minimal 2 GB. Ren'Py bisa jalan di Windows, macOS, dan Linux.
Buka Website Resmi Ren'Py
Kunjungi www.renpy.org menggunakan browser kamu. Klik tombol "Download Ren'Py" yang ada di halaman utama.
Pilih Versi untuk Sistem Operasi Kamu
Pilih sesuai OS-mu: Windows (.exe), macOS (.zip), atau Linux (.tar.bz2). Untuk mahasiswa, biasanya pilih versi Windows.
Ekstrak File yang Didownload
Setelah download selesai, klik kanan pada file zip/bz2 dan pilih "Extract All" atau "Extract Here". Simpan di lokasi yang mudah ditemukan, misalnya C:\RenPy.
Jalankan Ren'Py Launcher
Masuk ke folder hasil ekstrak dan double-click file renpy.exe (Windows) atau renpy.app (Mac). Launcher Ren'Py akan terbuka.
Konfirmasi Instalasi Berhasil
Jika launcher terbuka dan kamu melihat tampilan dengan beberapa proyek contoh (seperti "The Question"), berarti instalasi BERHASIL.
Jika muncul pesan error "missing DLL", kamu perlu menginstall Microsoft Visual C++ Redistributable. Download dari website Microsoft (gratis), install, lalu coba jalankan Ren'Py lagi.
Membuat Proyek Pertama
Sekarang kita akan membuat proyek baru dari nol menggunakan Ren'Py Launcher.
Buka Ren'Py Launcher
Jalankan renpy.exe seperti saat instalasi. Kamu akan melihat tampilan launcher utama.
Klik "Create New Project"
Di panel sebelah kiri launcher, klik tombol berwarna biru bertuliskan "Create New Project".
Isi Nama Proyek
Ketik nama proyekmu. Contoh: VisualNovelPertama. Hindari spasi, gunakan underscore atau huruf kapital. Klik "Continue".
Pilih Resolusi
Pilih resolusi 1280x720 (HD 16:9). Ini adalah ukuran standar yang paling kompatibel untuk semua platform. Klik "Continue".
Pilih Warna Tema GUI
Pilih warna dasar untuk tampilan GUI game kamu. Ini bisa diubah nanti. Klik "Continue" lalu tunggu proses selesai.
Klik "Launch Project"
Setelah proyek dibuat, klik tombol "Launch Project" untuk menjalankan game contoh bawaan. Kamu akan melihat game sederhana dengan satu dialog.
Memahami Struktur File Proyek
Setiap proyek Ren'Py memiliki folder dan file standar. Penting untuk kamu pahami agar tidak bingung saat bekerja.
NamaProyek/
├── game/ <-- FOLDER UTAMA (semua file kerja ada di sini)
│ ├── script.rpy <-- File utama cerita kamu
│ ├── options.rpy <-- Pengaturan game (judul, resolusi, dll)
│ ├── gui.rpy <-- Pengaturan tampilan GUI
│ ├── screens.rpy <-- Definisi layar-layar game
│ ├── images/ <-- Folder untuk semua gambar (karakter, BG)
│ │ ├── bg/ <-- Background scenes
│ │ └── characters/ <-- Sprite karakter
│ ├── audio/ <-- Folder untuk musik dan SFX
│ │ ├── music/ <-- File musik (.mp3, .ogg)
│ │ └── sfx/ <-- Efek suara
│ └── fonts/ <-- Font kustom (opsional)
├── renpy/ <-- Folder engine (JANGAN DIUBAH)
└── NamaProyek.exe <-- File untuk menjalankan game
Nama file gambar di Ren'Py sangat penting. Gunakan huruf kecil semua, tidak ada spasi (ganti dengan underscore), dan nama yang deskriptif. Contoh: bg_kampus_pagi.png, nabilah_senang.png. Ini memengaruhi cara Ren'Py mengenali gambar secara otomatis.
File script.rpy: Jantung Game Kamu
File script.rpy adalah tempat kamu menulis semua dialog, narasi, dan logika cerita. Ini adalah file yang paling sering kamu buka dan edit.
Hello World di Ren'Py
Mari kita tulis kode Ren'Py pertama kamu. Buka file script.rpy dengan teks editor (Notepad, VS Code, atau editor bawaan Ren'Py).
Kode Minimal: Satu Dialog
label start:
"Halo! Selamat datang di game pertamaku."
"Ini adalah dialog narator. Tidak ada nama yang tampil."
return
label start: adalah titik awal game. Ren'Py selalu mulai dari label bernama "start". return menandakan akhir game.
Menambahkan Karakter
# Mendefinisikan karakter
define n = Character("Nabilah", color="#c8ffc8")
define a = Character("Ahmad", color="#ffc8c8")
label start:
n "Hei! Nama saya Nabilah. Senang bertemu kamu!"
a "Hai Nabilah, saya Ahmad. Saya mahasiswa Informatika UNU."
n "Wah, kebetulan! Saya juga dari Informatika."
return
Kode warna seperti #c8ffc8 (hijau muda) akan mewarnai nama karakter di textbox dialog. Pilih warna yang berbeda untuk setiap karakter agar pembaca mudah membedakannya.
Menambahkan Menu Pilihan Sederhana
define n = Character("Nabilah", color="#c8ffc8")
label start:
n "Hai! Kamu suka belajar pemrograman?"
menu:
"Ya, saya sangat suka!":
jump ending_semangat
"Lumayan, tapi susah juga...":
jump ending_biasa
label ending_semangat:
n "Bagus! Dengan semangat itu, kamu pasti bisa membuat game keren!"
return
label ending_biasa:
n "Wajar kok susah. Yang penting tidak menyerah. Satu langkah kecil per hari!"
return
Kode di atas adalah struktur dasar sebuah visual novel. Ada karakter, ada dialog, ada pilihan, dan ada ending yang berbeda. Ini adalah fondasi dari semua yang akan kamu pelajari.
Menjalankan Game
Simpan file script.rpy
Setelah mengetik kode, simpan dengan Ctrl + S.
Kembali ke Ren'Py Launcher
Buka launcher Ren'Py (atau biarkan terbuka), pastikan nama proyekmu sudah terpilih.
Klik "Launch Project"
Game akan terbuka. Klik-klik untuk maju dialog dan coba pilih berbagai opsi di menu.
Reload saat ada perubahan
Jika game sudah terbuka dan kamu mengubah kode, tekan Shift + R di dalam game untuk reload otomatis tanpa restart.
Tugas Pertemuan 1
Kirimkan screenshot hasil pekerjaan kamu ke platform yang ditentukan dosen.
Tugas 1: Instalasi dan Hello World
- Install Ren'Py di komputer/laptop kamu mengikuti langkah-langkah di atas.
- Buat proyek baru dengan nama
NamaMu_P1(ganti NamaMu dengan nama kamu). - Edit file
script.rpy: Buat dialog minimal 5 baris dengan 2 karakter. - Tambahkan satu menu pilihan dengan 2 opsi yang mengarah ke ending berbeda.
- Jalankan game dan ambil screenshot layar game yang berjalan.
- Screenshot juga folder proyek kamu untuk bukti instalasi berhasil.
Jika mengalami error, copy pesan errornya dan tanya ke ChatGPT atau Claude: "Saya mendapat error ini di Ren'Py: [paste error]. Bagaimana cara memperbaikinya?"
Kuis Pemahaman Pertemuan 1
Uji Pemahamanmu!
1. Apa fungsi dari label start: dalam Ren'Py?
2. Di folder mana file script .rpy sebuah proyek Ren'Py tersimpan?
3. Kata kunci apa yang digunakan untuk mendefinisikan karakter di Ren'Py?
4. Manakah fitur yang TIDAK disediakan secara otomatis oleh Ren'Py?