Dalam Penggunaan Kembali kode, Anda mungkin telah memperhatikan penggunaan metode game:GetService() yang sering. Layanan Roblox memungkinkan Anda mengakses fitur-fitur bawaan dari mesin, seperti menjual item dalam permainan, mengaktifkan obrolan, memutar suara, menganimasi objek, dan mengelola instance.
Sebenarnya, layanan adalah langkah pertama dalam pola yang paling mendasar dan umum dari pengembangan Roblox:
- Dapatkan layanan.
- Mewajibkan skrip modul.
- Tambahkan fungsi lokal.
- Tambahkan acara yang memicu fungsi-fungsi tersebut.
Contohnya, Anda mungkin ingin menyimpan posisi pemain di dunia saat mereka keluar dari permainan Anda:
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SaveManager = require(ReplicatedStorage:WaitForChild("SaveManager"))
-- Fungsi lokal yang memanggil fungsi yang dapat digunakan kembali dalam skrip modul.
local function saveProgress(character)
-- Dapatkan posisi karakter pemain.
local position = character:FindFirstChild("HumanoidRootPart").Position
-- Gunakan fungsi saveData dalam skrip modul, yang menulis ke
-- DataStoreService.
SaveManager.saveData(character, position)
end
-- Fungsi lokal lainnya yang memanggil saveProgress() saat karakter dihapus
-- dari permainan (dalam hal ini, saat pemain meninggalkan).
local function onPlayerAdded(player)
player.CharacterRemoving:Connect(saveProgress)
end
-- Memanggil onPlayerAdded saat seorang pemain pertama kali terhubung ke permainan.
Players.PlayerAdded:Connect(onPlayerAdded)
Beberapa detail kunci meliputi:
- Karena Anda seharusnya hanya mengambil satu layanan per skrip, konvensi adalah memberi variabel dengan nama yang sama seperti layanan. Konvensi ini juga berlaku untuk skrip modul.
- Anda mengambil layanan dengan variabel global game, sebuah referensi ke akar model data.
- Roblox tidak memberikan jaminan seputar urutan pemuatan (dan streaming instance semakin mempersulit apa yang dimuat dan apa yang tidak pada waktu tertentu), jadi penggunaan Instance:WaitForChild() adalah langkah keamanan yang penting.
Daripada membandingkan perpustakaan standar, fungsi dan variabel global, atau perpustakaan pihak ketiga, bagian besar dari pengembangan Roblox adalah mengidentifikasi mana dari banyak layanan yang dapat membantu Anda menambahkan fungsionalitas yang diinginkan ke permainan Anda. Dalam contoh di atas, alih-alih menggunakan perpustakaan I/O standar untuk menulis ke disk, Anda menggunakan layanan cloud untuk menyimpan data.
Layanan Kontainer
Layanan kontainer dapat mengandung dan mempengaruhi objek lain. Layanan kontainer ini terletak di akar model data dan terlihat di jendela Penjelajah Studio. Secara kolektif, layanan kontainer ini membentuk hierarki terstruktur untuk model data, sehingga Mesin Roblox dapat dengan benar menginterpretasikan dan merender tempat Anda. Tabel berikut mencakup beberapa layanan kontainer umum.
| Layanan | Deskripsi |
|---|---|
| Workspace | Berisi semua objek yang dirender di dunia 3D, seperti bagian dan terrain. |
| Lighting | Berisi objek untuk mengatur efek pencahayaan universal, seperti Atmosphere dan Sky. |
| ReplicatedStorage dan ReplicatedFirst | Mengandung konten dan logika yang direplikasi antara server dan klien. |
Untuk memeriksa lebih lanjut tentang model data, Anda dapat menggunakan metode berikut:
- game:FindService() mencari instance dari layanan yang ditentukan.
- game:GetChildren() mengembalikan array dari semua anak root dari model data, yang merupakan layanan kontainer tingkat atas.
- game:GetDescendants() mengembalikan array dari semua keturunan model data, termasuk semua layanan kontainer dan anak-anak mereka.
Untuk informasi lebih lanjut tentang layanan kontainer, lihat dokumentasi model data.
Layanan Pemrograman
Layanan pemrograman menyediakan fungsionalitas standar dalam Mesin Roblox yang Anda panggil dalam skrip. Tabel berikut mencakup beberapa layanan pemrograman umum.
| Layanan | Deskripsi |
|---|---|
| TweenService | Digunakan untuk menginterpolasi properti numerik dari instance lain dari nilai awal ke nilai akhir, dengan opsi untuk arah dan gaya easing, pengulangan, dan penundaan. |
| MarketplaceService | Layanan yang bertanggung jawab untuk transaksi dalam permainan, seperti meminta pemain untuk membeli produk pengembang, langganan, pass, Roblox Premium, dll. |
| RunService | Berisi metode dan acara untuk manajemen waktu frame demi frame, serta untuk memeriksa konteks (server, klien, mode Studio) di mana permainan dijalankan. Berguna untuk menjalankan proses atau pembaruan pada setiap frame runtime. |
| SoundService | Mengontrol berbagai aspek global bagaimana audio dimainkan dalam permainan, seperti skala doppler dan audio volumetrik. Juga dapat berisi grup suara untuk mengontrol volume dan properti efek dinamis dari beberapa sinyal audio sekaligus. |
| CollectionService | Mengelola kelompok (koleksi) instance dengan tag yang direplikasi dari server ke klien, memungkinkan Anda lebih mudah mengatur dan bekerja dengan kelompok instance yang terkait. |
Layanan Cloud
Roblox juga memiliki layanan cloud khusus untuk menangani tugas dan proses yang terjadi di cloud Roblox. Tabel berikut mencakup beberapa layanan cloud umum.
| Layanan | Deskripsi |
|---|---|
| DataStoreService | Untuk menyimpan data persisten di berbagai sesi. |
| MemoryStoreService | Untuk menyimpan data yang sering dan sementara yang berubah dengan cepat. |
| MessagingService | Untuk berkomunikasi antara beberapa server selama sesi langsung. |
Layanan cloud juga memiliki API web yang sesuai; mereka dapat diakses dari skrip atau alat eksternal. Untuk informasi lebih lanjut, lihat Open Cloud.