Report as inappropriate.
Room Raider
Room Raider adalah game Top-Down Action RPG yang dibuat menggunakan Greenfoot dengan bahasa pemrograman Java, dengan mengimplementasikan berbagai konsep pemrograman berorientasi objek dalam pengembangan game. Pemain memulai petualangan dari layar judul (MainMenuWorld), memilih senjata di Gudang Senjata (WeaponSelectRoom), menembus ruang-ruang tempur (CombatRoom) yang dipenuhi slime dan charger, singgah di danau untuk memancing (FishingWorld) demi membeli peningkatan statistik, lalu menutup satu siklus dengan mengalahkan Boss di ruang terakhir (BossRoom). Setiap siklus yang diselesaikan membuka siklus berikutnya dengan musuh yang lebih kuat.
Developers:
Muhammad Daffa Setiawan (2511521003)
Muhammad Hamizan (2511521008)
Harlan Muhammad Al Abid (2511522013)
Fitur yang dikembangkan dalam game:
1. Karakter utama (Player) yang dapat bergerak 8 arah (WASD atau tombol panah) dengan input ternormalisasi agar gerak diagonal tidak lebih cepat, mengarahkan serangan ke kursor mouse (kontrol twin-stick), serta melakukan dash singkat ber-i-frame dengan tombol SPACE.
2. Sistem Health Point (HP) dan health bar untuk Player dan musuh: bar merah pemain di kiri atas layar, bar HP raksasa untuk Boss di bawah layar, i-frame beserta kedipan karakter saat terkena hit, dan hit-stop singkat pada serangan berat.
3. Sistem persenjataan berbasis Strategy Pattern dengan tiga pilihan di Gudang Senjata: Sword (tebasan jarak dekat), Blunderbuss (magasin 4 peluru, tembakan 3 pellet berkonas, recoil, dan regenerasi peluru satu per satu), serta Laser (bolt energi cepat yang mati saat mengenai musuh pertama). Masing-masing memiliki serangan berat (heavy attack) khas: tebasan berbobot dengan teleportasi gerak, volley 7 pellet, dan charged shot menembus (piercing) dengan kerusakan dua kali lipat.
4. Musuh dengan pola gerak berbeda: Slime yang mengejar pemain secara langsung, Charger dengan mesin status WANDER (merayap), TELEGRAPH (getar peringatan), DASH (menyerbu searah garis terkunci), dan COOLDOWN (istirahat), serta HP seluruh musuh yang naik 25% pada setiap siklus berikutnya.
5. Boss akhir siklus dengan tiga fase HP (di atas 66%, di atas 33%, dan sisanya), lunge ber-telegraph yang mengunci posisi pemain saat peringatan, kekebalan terhadap stun, serta fase dodging ala Undertale (SoulBox) berisi Soul berbentuk hati dan pola peluru: FallingRainPattern (hujan), SideSweepPattern (sapuan samping), dan SpreadPattern (hambaran) yang terbuka bertahap mengikuti fase.
6. Sistem koin, skor, dan drop dari musuh yang dikalahkan: Coin (5 poin skor) dengan peluang 60% dan HealthPickup (+4 HP) dengan peluang 15%, keduanya mengambang di tempatnya dan menghilang otomatis setelah sekitar 10 detik.
7. Minigame memancing (FishingWorld) selama 20 detik di tengah siklus: Power Fish (+1 serangan permanen), Heart Fish (+5 HP maksimum sekaligus menyembuhkan), dan Swift Fish (+1 kecepatan bergerak); hadiah ditulis ke GameSession sehingga bertahan sampai ruang berikutnya, lengkap dengan hitungan mundur, tally ikan, dan pesan tangkapan.
8. Sistem ruang dan siklus melalui LevelRouter: setiap siklus terdiri dari 5 ruang (Combat 1, Combat 2, Memancing, Combat 3, Boss) yang diurutkan tetap, pintu ruang hanya terbuka setelah seluruh musuh tumbang, dan Gudang Senjata disisipkan sebelum ruang pertama serta sebelum Boss. Menekan ENTER pada layar kemenangan memulai siklus berikutnya dengan skor dan seluruh upgrade yang dipertahankan.
9. HUD yang digambar sendiri sebagai actor (HudDisplay dan BossHud): bar HP dengan angka, nama senjata beserta statusnya (misalnya "AMMO 3/4"), jumlah Coins, nomor ruang, dan nomor siklus - hanya direpaint ulang ketika nilainya berubah, tanpa panel latar agar pertarungan tetap terlihat jelas.
10. Sistem animasi berbasis sprite sheet (AnimationSet): pose pemain 4 arah (utara, selatan, timur, barat dengan cermin otomatis untuk arah barat), state satu-shot untuk dash, terluka, dan menyerang, serta efek putih (white flash) pada musuh saat menerima hit nyata.
11. Sistem aset terpusat (AssetLoader): seluruh gambar, sound effect dengan tiga variasi take agar suara beruntun tidak berulang, musik latar (tema menu dan tema tempur), serta font di-cache dan hanya dimuat sekali; berkas yang hilang otomatis diubah menjadi placeholder berwarna sehingga game tidak pernah crash karena aset belum siap.
12. Layar Game Over dan Kemenangan: kematian pemain menampilkan skor akhir dan kembali ke menu dengan ENTER, kemenangan menawarkan ENTER untuk siklus berikutnya atau ESC untuk kembali ke menu, dan seluruh progres (HP, skor, siklus, upgrade, senjata) disimpan di GameSession sehingga tetap hidup meski dunia (World) dibuat ulang setiap perpindahan ruang.
Cara bermain:
W, A, S, D : Bergerak (atas, kiri, bawah, kanan)
Tombol Panah : Bergerak (alternatif dari WASD)
Mouse : Mengarahkan arah serangan (twin-stick)
Klik Kiri / J : Serangan biasa sesuai senjata yang dipakai
Klik Kanan / Shift + Klik Kiri : Serangan berat (heavy attack) sesuai senjata
SPACE : Dash (burst ber-i-frame)
E : Mengambil senjata (berdiri di atas pedestal di Gudang Senjata)
A / D dan W/S : Menggerakkan kail (memancing di ruang FishingWorld)
WASD / Tombol Panah : Menggerakkan Soul (hati) saat menghindari peluru di fase SoulBox Boss
ENTER : Memulai permainan dari menu, siklus berikutnya pada layar kemenangan, atau kembali ke menu pada layar Game Over
ESC : Kembali ke menu (pada layar kemenangan)
Tombol Reset di Greenfoot akan mengulang seluruh progres dari awal.
Objective: menembus kelima ruang dalam satu siklus dengan membersihkan seluruh musuh di ruang tempur agar pintu terbuka, memilih senjata di Gudang Senjata, lalu mengalahkan Boss. Mengalahkan Boss menutup siklus dan membuka layar kemenangan, sementara pemain yang mati berakhir di layar Game Over.
Selain itu, tombol debug berikut aktif karena GameConfig.DEBUG = true: n = lanjut ke ruang berikutnya, m = kembali ke menu, k = langsung mati, c = membersihkan ruang, b = mengalahkan Boss.
Melalui project ini, konsep PBO seperti abstraction (kelas abstrak GameCharacter, Enemy, BaseWorld, RoomWorld, Fish, Collectible, Weapon, BulletPattern), inheritance (Player dan Enemy mewarisi GameCharacter; semua dunia mewarisi BaseWorld; Slime, Charger, dan Boss mewarisi Enemy; Coin dan HealthPickup mewarisi Collectible; PowerFish, HeartFish, dan SwiftFish mewarisi Fish), polymorphism (referensi Weapon, BulletPattern, Fish, Enemy, dan World superclass), encapsulation (field privat dengan getter/setter pada GameSession, Door, Weapon, dan GameCharacter), interface (Damageable), composition (BossRoom memiliki Boss, SoulBox, Soul, dan BulletPattern; Player memiliki Weapon dan AnimationSet), enum sebagai state machine (Charger.State, Boss.State, WeaponType), serta design pattern (Strategy pada sistem senjata, Template Method pada alur act() ruangan dan karakter, dan Static Factory Method pada Weapon.create() serta LevelRouter.worldFor()) diterapkan dalam pengembangan karakter, musuh, peta, serta mekanisme permainan. Project ini dikembangkan sebagai bagian dari proses pembelajaran dan penerapan materi Pemrograman Berorientasi Objek.
Credit:
UI dan Map : Buatan tim (bg_menu.png, bg_combat.png, bg_boss.png, bg_water.png, bg_victory.png, bg_gameover.png, select_room_bg.png)
Player : Sprite sheet buatan tim, dibangkitkan dengan skrip Python tools/make_frames.py (player_idle, player_walk, player_attack, player_dash, player_hurt - 4 arah)
Enemy Slime : Sprite sheet buatan tim (slime_move.png, slime_hurt.png)
Enemy Charger : Sprite sheet buatan tim (charger_wander.png, charger_telegraph.png, charger_dash.png)
Boss : Sprite sheet buatan tim (boss_idle.png, boss_telegraph.png, boss_lunge.png)
Senjata Sword, Blunderbuss, Laser : Senjata dan efek visualnya dibangkitkan dengan skrip Python tools/make_weapon_art.py; senjata Laser dipindahkan (porting) dari build LaserWeapon/LaserBolt milik teman satu tim
Ikan (Power Fish, Heart Fish, Swift Fish), Bobber, Coin, dan HealthPickup : Sprite buatan tim
Soul, SoulBullet, dan SoulBox : Digambar secara prosedural oleh kode (SoulBox.buildImage) dan sprite soul_bullet.png buatan tim
Font : DTM-Mono.otf dan DTM-Sans.otf (folder fonts/)
Sound effects dan musik (music_loop.wav, music_battle.wav, dan efek suara senjata, musuh, koin, pintu, serta kemenangan) : Buatan/generate tim (30 berkas .wav)
Gaya permainan : Terinspirasi Undertale dan Cult of the Lamb - tanpa aset dari kedua game tersebut
Want to leave a comment? You must first log in, and be a member for more than a week.
No votes yet.