Memuat workspace
0
AE Studio Rafa P. C. Tsaqib
Founder AE Studio · Roblox Developer

Rafa PratamaCahya Tsaqib

0Tahun pengalaman
0Project & commission
0Game rilis
0Brand partner
Rafa Pratama Cahya Tsaqib, Roblox Studio Developer dan founder AE Studio
Properties
NameRafa P. C. Tsaqib
ClassNameRobloxDeveloper
RoleFounder AE Studio
Experience2+ tahun
StatusAvailable
Tentang saya

Dua tahun
di dalam Studio.

Awalnya saya hanya mencoba-coba membuka Roblox Studio tanpa tujuan jelas. Semakin lama saya di dalamnya, semakin saya tertarik, sampai akhirnya saya memutuskan untuk menyeriusinya, bukan lagi sekadar iseng.

Dari titik itu pengalaman datang satu per satu: mengerjakan event, membangun sistem, dan merapikan antarmuka untuk berbagai kebutuhan. Beberapa project di antaranya adalah kolaborasi dengan brand nasional seperti Kahf, OVO, Promag, dan Erafone, dan semuanya memberi respons positif terhadap hasil kerja saya.

Selain lewat AE Studio, saya juga aktif sebagai developer di Majelis Roblox Indonesia, komunitas pengajian Roblox terbesar di Indonesia. Mengembangkan sesuatu untuk komunitas sebesar itu mengajarkan hal yang tidak saya dapat dari project biasa: bagaimana membuat pengalaman yang tetap nyaman ketika dipakai banyak orang sekaligus.

Sekarang fokus saya ada di dua hal: membuat antarmuka yang terbaca dalam sekali lihat, dan menulis Luau yang masih masuk akal ketika dibaca ulang tiga bulan kemudian. Di luar Studio, dua medali Lomba Sains Nasional 2026 dari bidang yang berbeda jauh membuat cara saya memandang sebuah produk tidak berhenti di baris kode.

— tersedia untuk commission & kolaborasi

Scripting (Lua / Luau)

92%

OOP module, event-driven system, arsitektur client-server.

UI / UX Design in-game

88%

Layout responsif lintas device, komponen reusable, animasi TweenService.

Sistem gameplay

85%

Progression, economy, shift system, minigame, dan quest flow.

Data & networking

78%

DataStore dengan session lock, retry logic, validasi RemoteEvent.

Project brand & klien

82%

Menerjemahkan brief brand menjadi pengalaman dalam game.

Prestasi

Bukan hanya soal kode.

2026
2nd

Medali Perak

Ekonomi & PKN · Lomba Sains Nasional

Bidang sosial-humaniora yang jauh dari layar Studio. Justru di situlah kemampuan berargumen serta membaca konteks terasah.

2026
3rd

Medali Perunggu

Informatika · Lomba Sains Nasional

Logika algoritma dan problem solving yang setiap hari saya pakai untuk memecahkan bug yang tidak ada di dokumentasi.

Game Roblox

Game yang
saya kembangkan.

Lima judul bersama AE Studio, dari konsep sampai rilis, termasuk kolaborasi bersama brand nasional.

01 Live Thumbnail game Roblox On Air

On Air

Founder · Builder · Scripter · UI

Pengalaman bertema siaran dengan sistem peran dan antarmuka panel yang dirancang agar mudah dipahami pemain baru.

Mainkan di Roblox →
02 Live Thumbnail game Roblox Hospital Shift

Hospital Shift

Founder · Builder · Scripter · UI

Roleplay rumah sakit dengan sistem shift, pembagian peran staf, dan alur penanganan pasien yang berjalan di server.

Mainkan di Roblox →
03 Live Thumbnail game Roblox Nusantara Village X Kahf

Nusantara Village × Kahf

Founder · Builder · Scripter · UI

Desa Nusantara dengan permainan tradisional seperti petak umpet, gobak sodor, dan lomba lari. Kolaborasi bersama Kahf.

Mainkan di Roblox →
04 Live Thumbnail game Roblox Balap Kata

Balap Kata

Founder · Builder · Scripter · UI

Permainan mengeja kata berbentuk balapan: pemain berlomba menyusun kata dengan benar sebelum waktunya habis.

Mainkan di Roblox →
05 Arsip Hotel Shift

Hotel Shift

Founder · Builder · Scripter · UI

Roleplay perhotelan dengan alur check-in, room service, dan panel staf. Sudah tidak beredar, ditampilkan sebagai bagian dari rekam jejak.

Tidak lagi tersedia
Portofolio

Cuplikan
pekerjaan saya.

Klik gambar untuk melihat versi penuhnya.

Penyimpanan data

Kenapa saya
pakai ProfileService.

DataStore bawaan Roblox sebenarnya sudah cukup untuk menyimpan angka sederhana. Masalahnya muncul ketika pemain bertambah banyak: ada yang keluar-masuk server dengan cepat, ada server yang mati mendadak, dan ada yang sengaja mencari celah untuk menduplikasi item.

Menulis penanganan untuk semua kasus itu dari nol berarti mengulang pekerjaan yang sudah diselesaikan orang lain dengan lebih baik. Karena itu untuk setiap project saya memakai ProfileService, modul open source yang sudah teruji di game dengan jutaan sesi.

Bagi klien, keuntungannya satu dan paling penting: progres pemain tidak hilang. Kehilangan data adalah alasan paling cepat pemain berhenti bermain dan tidak kembali.

● ProfileService oleh loleris · open source
PlayerDataHandler.lua
local ProfileService = require(ServerScriptService.ProfileService)local TEMPLATE = {    Coins = 0,    Level = 1,    Inventory = {},}local Store = ProfileService.GetProfileStore("PlayerData", TEMPLATE)local Profiles = {}local function onAdded(player)    local profile = Store:LoadProfileAsync("P_" .. player.UserId)    if profile == nil then        return player:Kick("Gagal memuat data")    end    profile:AddUserId(player.UserId)    profile:Reconcile()    profile:ListenToRelease(function()        Profiles[player] = nil        player:Kick()    end)    if player.Parent == Players then        Profiles[player] = profile    else        profile:Release()    endend
01

Session locking

Satu profil hanya bisa dibuka oleh satu server. Pemain yang berpindah server cepat tidak akan menimpa datanya sendiri, dan celah duplikasi item lewat dua server sekaligus tertutup.

02

Simpan otomatis & tahan gangguan

Batas request DataStore, percobaan ulang saat gagal, dan penyimpanan ketika server dimatikan sudah ditangani modul. Tidak ada lagi progres yang hilang karena server tiba-tiba mati.

03

Reconcile template

Menambah fitur baru berarti menambah field baru ke data pemain. Reconcile mengisi field itu pada data lama tanpa menyentuh progres yang sudah ada: update tanpa reset.

04

Global updates

Hadiah event, kompensasi, atau pembelian bisa dikirim ke pemain yang sedang offline, lalu diproses otomatis begitu mereka masuk kembali.

Keamanan

Aturan yang saya
pegang sejak awal.

Keamanan bukan fitur yang ditambahkan di akhir. Ia menentukan bagaimana sistemnya disusun sejak baris pertama.

01

Server yang memutuskan, bukan client

Semua nilai yang berarti, mulai dari koin, item, progres, sampai akses, dihitung dan disimpan di server. Client hanya boleh mengajukan permintaan. Selama aturan ini dipegang, mengubah data dari sisi pemain tidak akan berpengaruh apa pun.

02

Setiap remote diperiksa

Tidak ada RemoteEvent yang langsung dieksekusi. Tipe data, rentang nilai, kepemilikan objek, dan kelayakan aksi diperiksa lebih dulu. Ditambah pembatasan frekuensi per pemain, supaya satu orang tidak bisa membanjiri server dengan permintaan.

03

Tidak menyimpan data pribadi

Identitas pemain cukup UserId. Tidak ada nama asli, alamat, kontak, atau apa pun yang tidak diperlukan permainan. Data yang tidak pernah dikumpulkan adalah data yang tidak bisa bocor.

04

Akses tim sesuai porsinya

Hak publish dan akses ke penyimpanan produksi hanya diberikan kepada yang benar-benar membutuhkannya. Pengujian selalu dilakukan di tempat terpisah, tidak pernah langsung di data pemain yang sedang berjalan.

05

Perubahan yang bisa ditelusuri

Setiap pembaruan dicatat dan versinya disimpan. Kalau ada yang salah setelah rilis, saya bisa menunjukkan perubahan mana penyebabnya dan mengembalikan keadaan tanpa menebak-nebak.

Manajemen risiko

Bug tidak bisa dihindari.
Dampaknya bisa diatur.

Setiap game yang berjalan cukup lama akan menemukan bug. Yang membedakan project yang tertangani dan yang berantakan bukan jumlah bug-nya, tapi seberapa cepat ia ditemukan dan seberapa besar kerusakan yang sempat terjadi. Karena itu saya memisahkan bug kosmetik dari bug yang menyentuh data dan ekonomi. Yang pertama bisa menunggu, yang kedua ditangani lebih dulu.

Tahap 01

Mencegah

  • Sistem dipecah jadi modul terpisah agar satu kesalahan tidak menjalar
  • Operasi yang bisa gagal dibungkus penanganan error, bukan dibiarkan menghentikan script
  • Uji coba di server tertutup bersama beberapa pemain sebelum publish
  • Perubahan besar dirilis bertahap, tidak sekaligus
Tahap 02

Mendeteksi

  • Log error server dipantau, terutama di jam-jam pertama setelah rilis
  • Angka yang tidak wajar pada ekonomi dan progres jadi tanda awal
  • Kanal laporan terbuka untuk pemain, karena mereka menemukan hal yang tidak terpikirkan
  • Potensi bug dicatat meski belum terjadi, supaya tidak terlupakan
Tahap 03

Menangani

  • Prioritas berdasarkan dampak: data dan ekonomi lebih dulu, tampilan kemudian
  • Bila perlu, fitur bermasalah dimatikan sementara alih-alih membiarkan kerusakan meluas
  • Pemain diberi tahu apa yang terjadi, bukan dibiarkan menebak
  • Penyebabnya dicatat agar bug serupa tidak muncul lagi di project berikutnya
Alur kerja

AI mempercepat.
Selera tidak bisa diwakilkan.

Saya terbiasa bekerja dengan AI dan cukup mahir mengarahkannya. Untuk pekerjaan yang berulang dan berpola, ia memotong waktu secara signifikan tanpa menurunkan mutu hasil, selama saya tetap yang menentukan arah dan memverifikasi keluarannya.

Tapi ada satu bagian yang saya kerjakan sendiri dari nol: antarmuka. UI yang dihasilkan AI hampir selalu terasa ada yang kurang: proporsinya meleset, hierarkinya datar, dan karakternya tidak ada. Pemain mungkin tidak bisa menjelaskan apa yang salah, tapi mereka merasakannya. Karena itu setiap UI di project saya digambar dan disusun sendiri.

Dipercepat dengan AI

Pekerjaan berpola

  • Menyusun kerangka logika dan struktur modul di awal
  • Merapikan kode yang sudah berjalan agar lebih mudah dibaca
  • Menelusuri sumber error yang sulit ditemukan
  • Menulis dokumentasi dan catatan serah terima untuk klien
  • Mengeksplorasi beberapa pendekatan sistem sebelum memilih satu
Dikerjakan sendiri

Yang menentukan rasa

  • Seluruh desain antarmuka, dari tata letak sampai warna
  • Animasi dan transisi, karena timing hanya bisa dinilai dengan mata
  • Penyesuaian layar untuk PC, tablet, ponsel, dan konsol
  • Keputusan gameplay dan keseimbangan ekonomi
  • Arah visual ketika project membawa identitas sebuah brand
Tidak ada keluaran AI yang saya pakai tanpa dibaca dan diuji lebih dulu. Efisiensi tidak ada gunanya kalau yang dipercepat adalah pekerjaan yang salah.
Brand partner

Brand yang telah
mempercayai saya.

Brand nasional yang sudah pernah saya tangani.

Logo Kahf, brand yang berkolaborasi dengan AE Studio
Logo OVO, brand yang berkolaborasi dengan AE Studio
Logo Promag, brand yang berkolaborasi dengan AE Studio
Logo Erafone, brand yang berkolaborasi dengan AE Studio
Arahkan kursor ke logo untuk menghentikan gerakan
Kontak

Punya ide yang
ingin dibangun?

Ceritakan dulu konsepnya. Saya membalas dalam 1×24 jam, dan jika ternyata bukan bidang saya, akan saya sampaikan sejak awal.

Mohon isi nama terlebih dahulu.
Format email belum benar.
Tulis pesan minimal 10 karakter.
Pesan terkirim. Saya akan segera membalas.