Rangkuman Bab 1 Buku AI Informatika
Pengembangan Game Scratch Lanjutan
Pengembangan game di Scratch sering dimulai dengan konsep sederhana, seperti menggerakkan karakter atau membuat objek memantul. Namun, agar game menjadi lebih menarik, kompleks, dan menantang, diperlukan pengembangan lanjutan dengan menambahkan level, skor, timer, variabel, serta memanfaatkan operator matematika, logika, dan kontrol perulangan. Pemahaman konsep-konsep ini menjadi dasar penting untuk membuat game 2D sederhana yang menyerupai game profesional.
1. Mengapa Pengembangan Scratch Lanjutan itu Penting?
Game yang hanya memiliki satu adegan dan tanpa tujuan jelas biasanya cepat membosankan. Dengan menambahkan variabel seperti nyawa, skor, dan waktu, pemain dapat merasakan sensasi kompetisi dan tantangan. Dengan membangun level, game juga menjadi lebih panjang dan terus berkembang. Pada tahap lanjutan, pengembang juga belajar mengatur algoritma, membuat sistem deteksi tabrakan yang konsisten, dan memanfaatkan logika matematika untuk membuat perilaku karakter yang lebih realistis.
Scratch memang dirancang ramah pemula, tetapi platform ini cukup kuat untuk membuat game seperti:
-
platformer (melompat & rintangan),
-
runner game,
-
shooter sederhana,
-
puzzle berbasis logika,
-
game edukasi interaktif.
Untuk mencapai kualitas tersebut, konsep lanjutan harus dikuasai.
2. Apa itu Variabel dalam Scratch?
Variabel adalah wadah untuk menyimpan data. Dalam game, variabel sangat penting untuk menyimpan:
-
Skor pemain
-
Waktu tersisa
-
Level permainan
-
Jumlah nyawa
-
Kecepatan musuh
-
Jumlah objek yang dikumpulkan
Variabel bersifat dinamis, artinya nilainya dapat berubah selama permainan berlangsung. Misalnya, setiap kali pemain mengambil koin, skor bertambah. Atau ketika timer berkurang setiap detik.
2.1 Jenis Variabel di Scratch
Di Scratch terdapat 2 jenis variabel:
-
For all sprites (untuk semua sprite)
Contoh: skor, timer, level.
Nilainya bisa dilihat dan digunakan oleh semua objek. -
For this sprite only (khusus satu sprite)
Contoh: kecepatan musuh tertentu, status hidup/mati, mode animasi.
Jenis ini berguna untuk membuat AI sederhana pada musuh atau menyimpan data khusus untuk satu karakter.
3. Variabel Penting dalam Game: Skor, Level, dan Timer
3.1 Variabel Skor
Skor biasanya digunakan untuk mengukur keberhasilan pemain. Cara kerjanya:
-
Skor dimulai dari nol.
-
Setiap aksi tertentu meningkatkan nilai skor.
-
Skor bisa dipakai sebagai syarat naik level, memicu animasi khusus, atau sekadar ditampilkan.
Contoh penggunaan:
Lalu setiap kali pemain mendapatkan item:
Skor juga dapat menjadi indikator kesulitan: semakin tinggi skor, semakin cepat musuh bergerak.
3.2 Variabel Level
Level berfungsi mengatur perkembangan permainan. Pengembang bisa membuat aturan seperti:
-
Level naik setiap skor tertentu tercapai.
-
Level mengubah warna latar, jumlah musuh, atau kecepatan permainan.
-
Level mengubah pola tantangan.
Contoh pengaturan level:
Pada level 2, musuh bisa bergerak lebih cepat:
Level membuat game lebih dinamis dan meningkatkan replayability.
3.3 Variabel Timer
Timer digunakan untuk membuat batas waktu, challenge, dan pacing game. Biasanya:
-
Timer di-set ke angka tertentu (misalnya 60 detik).
-
Setiap detik timer berkurang 1.
-
Jika timer 0, permainan berakhir.
Contoh skrip timer:
Timer juga bisa digunakan untuk:
-
cooldown serangan,
-
respawn musuh,
-
menghitung durasi power-up.
4. Block-Block Variabel yang Wajib Dikuasai
Untuk memakai variabel secara efektif, beberapa block penting harus dipahami:
4.1 Block Dasar Variabel
-
set [variabel] to [nilai]
Mengatur nilai awal, biasanya saat game dimulai. -
change [variabel] by [nilai]
Mengubah nilai secara bertahap. Cocok untuk skor, timer, atau kecepatan. -
show variable / hide variable
Mengatur apakah variabel ditampilkan di layar.
4.2 Block kondisi yang sering digunakan dengan variabel
-
if <variabel > nilai> then
-
repeat until <variabel = nilai>
-
wait until <variabel < 5>
Variabel sangat erat kaitannya dengan kontrol logika, sehingga penggunaannya harus dipadukan dengan blok kontrol dan operator.
5. Operator Matematika & Logika: Otak dari Game Scratch
Operator adalah blok yang mengolah nilai—baik nilai angka, teks, maupun kondisi logis. Tanpa operator, game tidak bisa mengambil keputusan atau melakukan perhitungan.
5.1 Operator Matematika
Scratch menyediakan operator:
-
Penjumlahan (+)
-
Pengurangan (-)
-
Perkalian (*)
-
Pembagian (/)
-
Modulo (sisa pembagian)
-
Random (angka acak)
Contoh penggunaan:
-
Menentukan posisi musuh secara acak
set x to (pick random -200 to 200) -
Meningkatkan kecepatan musuh secara bertahap
set speed to (speed + 0.5) -
Mengatur arah pantulan bola
point in direction ((direction + 180) mod 360)
Operator matematika memungkinkan musuh bergerak dinamis, objek memantul, hingga membuat efek fisika sederhana.
5.2 Operator Logika
Operator logika menciptakan kondisi yang membuat game “berpikir”. Operator ini meliputi:
-
AND — dua kondisi harus benar
-
OR — salah satu saja cukup
-
NOT — kebalikan kondisi
Contoh:
Logika ini memungkinkan game:
-
mendeteksi tabrakan,
-
memutuskan kapan level naik,
-
mengecek status pemain (misal sedang lompat atau tidak),
-
menghitung kondisi menang/kalah,
-
mengatur AI musuh.
5.3 Operator Perbandingan
-
=
-
>
-
<
Contoh sangat umum:
Dengan operator ini, variabel bisa digunakan sebagai patokan untuk mengambil keputusan dalam game.
6. Kontrol Waktu dan Perulangan
Block kontrol menentukan alur permainan. Dua komponen penting di dalamnya: waktu dan perulangan.
6.1 Manajemen Waktu
Scratch memiliki tools untuk mengatur waktu:
-
wait 1 seconds
-
timer (stopwatch bawaan scratch)
Manajemen waktu penting untuk:
-
membuat jeda antar aksi (misal delay serangan),
-
mengurangi timer setiap detik,
-
membuat event berdasarkan waktu (misal musuh muncul tiap 3 detik).
Pengembang sering menggabungkan “wait” dengan variabel timer untuk hasil lebih fleksibel.
6.2 Perulangan (Loop)
Perulangan mengulangi perintah secara terus-menerus atau sampai kondisi tertentu tercapai.
Jenis perulangan:
-
forever
Digunakan untuk aksi terus-menerus seperti animasi, pergerakan, dan deteksi tabrakan. -
repeat [n]
Mengulang jumlah tertentu; cocok untuk animasi kecil dan efek visual. -
repeat until <kondisi>
Berguna untuk menunggu sesuatu terjadi, misalnya: -
wait until <kondisi>
Lebih simpel untuk menunggu event tertentu.
Game modern di Scratch biasanya terdiri dari beberapa loop paralel:
-
Loop pergerakan karakter
-
Loop AI musuh
-
Loop timer
-
Loop animasi
-
Loop deteksi game-over
Gabungan loop inilah yang membuat game terasa hidup.
7. Membangun Game yang Lebih Canggih dengan Scratch
Untuk meningkatkan level game Scratch, beberapa teknik berikut perlu digunakan:
7.1 Sistem Game Start, Main Game, dan Game Over
Game profesional memiliki tiga fase:
-
Start Screen
-
Gameplay
-
Game Over Screen
Scratch dapat mewujudkan ini menggunakan broadcast.
Contoh:
Dengan sistem ini, game terasa lebih rapi dan terkesan “profesional”.
7.2 Sistem Musuh dengan AI Dasar
Musuh bisa:
-
bergerak acak,
-
mengejar pemain,
-
memantul,
-
menembak,
-
merubah kecepatan berdasarkan level.
Contoh AI musuh mengejar pemain:
Jika level meningkat:
7.3 Fisika Sederhana: Gravitasi dan Lompatan
Di game platformer, gravitasi dapat dibuat menggunakan variabel “kecepatanY”.
Contoh:
Ini menghasilkan lompatan realistis.
7.4 Sistem Power-Up
Power-up adalah elemen kecil yang membuat game lebih seru.
Contoh: Power-up kecepatan 10 detik.
Dengan variabel dan timer, power-up bisa duratif.
7.5 Transisi Level Otomatis
Jika skor mencapai angka tertentu, level bisa naik.
Saat level naik:
-
latar berubah,
-
jumlah musuh bertambah,
-
kecepatan meningkat.
8. Perpaduan Semua Konsep Menjadi Satu Game
Game Scratch lanjutan biasanya membutuhkan:
-
Variabel: skor, level, timer, kecepatan, nyawa
-
Operator: perbandingan, random, matematika
-
Kontrol: loop, kondisi, timer
-
Broadcast: perpindahan layar/scene
-
AI musuh & fisika sederhana
-
Event interaktif
Contoh alur lengkap:
-
Bendera diklik → variabel reset
-
Timer mulai → berkurang setiap detik
-
Pemain bergerak → kontrol keyboard
-
Musuh bergerak acak → operator random
-
Skor naik setiap item diambil
-
Jika skor tertentu → level naik
-
Level naik → kecepatan musuh bertambah
-
Timer habis → game over
Dengan logika seperti ini, game Scratch bisa terasa sangat solid dan menyenangkan.
Comments
Post a Comment