Tugas Akhir STI

SWORD MASTER

Deskripsi

Sword Master adalah sebuah fighting game yang terinspirasi dari Shadow Fight. Tujuan dari game ini adalah mengalahkan musuh dengan pedang yang dimiliki karakter. Game ini terdiri dari 17 sprite dan 87 script. Semua asset sprite yang ada dibuat sendiri karena desainnya sangat simple. Asset suara yang digunakan berlisensi creative commons dan didapatkan dari website soundbible, sehingga aman dari copyright. Game ini hanya satu memiliki backdrop karena stage yang digunakan sebagai latar harus bisa berinteraksi dengan karakter yang ada di game, sehingga latar tersbut harus berbentuk sprite. Title screen game ini  juga dalam bentuk sprite karena berbagai keterbatasan backdrop. Game ini menggunakan script Platforming Physics yang dirancang oleh PullJosh sebagai semacam game engine. Selain itu semua script yang adalah murni rancangan sendiri.

How to Play

Bunuh lawan dengan pedangmu !

  • Gunakan A dand D untuk bergerak ke arah  kiri atau kanan. 
  • Gunakan W untuk melompat.
  • Gunakan Space untuk menyerang.
  • Gunakan mouse untuk mengarahkan karakter
  • Player dapat melakukan boost yang akan meluncurkan karakter ke arah yang dituju dengan meng-hold Space dan A atau D tergantung arah yang dituju.
  • Player dapat melakukan wall jump dengan melompat ke arah tembok.
  • Player dapat melakukan smash jika player ada di udara kemudian menekan Space.


Penjelasan Asset

Sprite
Player
  • Player- Badan dari karakter player. Jika terkena senjata musuh maka game over
  • PlayerFeet- Kaki dari karakter player. Digunakan untuk menggerakkan karakter player. Merupakan "tubuh" dari karakter player karena hampir semua script yang berhubungan player ada di sprite ini
  • HandPlayer- Tangan dari karakter player. Digunakan untuk menggerakan senjata player.
  • PlayerSword- senjata player.
  • Rightplayer dan Leftplayer- digunakan untuk mendetek mouse pointer. Jika mouse pointer ada di kanan player maka player akan belok ke kanan dan sebaliknya.
Musuh
  • Enemy- Badan dari karakter musuh. Sama seperti player
  • EnemyFeet- Kaki dari karakter musuh.
  • HandEnemy- Tangan dari karakter musuh. 
  • PlayerSword- Senjata musuh.
  • RightEnemy dan LeftEnemy- digunakan untuk mendetek player. Jika player ada di kanan maka musuh akan mengetahui bahwa player ada di kanan dan sebaliknya.
Latar
  • ground- Arena permainan

Title Screen
  • Title- Judul
  • Play- tombol play 
  • Game Over- title screen game over
  • Zoom- title screen. Akan menimbulkan efek zoom jika tombol play diklik.


Script

Karena script yang ada sangat banyak dan tidak sedikit yang diulang kembali, maka yang saya akan bahas adalah script yang relevan.

Engine Game


Kode engine yang ada di karakter player maupun musuh. Digunakan untuk menghampiri hukum fisika. Cara kerjanya adalah dengan mendefinisikan beberapa konstanta untuk pergerakan karakter. Selain sebagai engine, script ini juga mengatur pergerakan karakter.


Player
Script yang ada di RightPlayer dan LeftPlayer. Jika mouse pointer ada di RightPlayer maka turnRight = 1 dan sebaliknya. Cara kerja script RightEnemy dan LeftEnemy hampir sama namun yang dilhat adalah lokasi player


Salah satu kode untuk mengatur sprite player. Kode ini menggunakan variable turnRight (atau turnLeft) untuk mengatur arah sprite player.







Script yang mengatur serangan player. LethalP adalah variable yang menentukan apakah suatu serangan valid atau tidak, jika valid maka musuh akan mati jika terkena serangan. Garde adalah variable yang mengecek jika tombal space di-hold atau tidak. Juga digunakan untuk mengatasi button spamming, jika garde = 1 maka animasi tidak akan berjalan.
Slash adalah variable yang berfungsi sebagai timer. Timer ini digunakan untuk memberikan jeda setiap serangan agar tidak bisa di-spam.




Script yang mengatur boost player. Boost adalah variable yang berfungsi sebagai timer. Timer ini digunakan untuk memberikan jeda setiap boost agar tidak bisa di-spam.

Musuh

Cara Kerja musuh hampir sama dengan player, namun musuh digerakkan berdasarkan rancangan berikut.


Actions adalah array yang mengatur gerakan musuh. 
  • Array 1 digunakan untuk menentukan arah gerak musuh. Jika diisi forward maka musuh akan mendekati player, jika backward musuh akan menjauhi player. 
  • Array 2 digunakan untuk mengatur lompat dan smash musuh. Musuh akan melompat jika terlalu dekat dengan dinding atau player. Musuh akan smash setelah ia melompat.
  • Array 3 diisi dengan tingkah laku musuh. Jika Idle maka musuh tidak akan melakukan apa-apa. Jika guard maka musuh akan bersifat defensif dan melakukan animasi yang membuat serangan player tidak valid. Jika diisi stab maka musuh akan bersifat ofensif dan and menyerang player. Jika diisi boost maka musuh akan melakukan boost.
Array actions diisi berdasarkan ActionFactor dan MovementFactor.

ActionFactor adalah salah satu array yang mengatur tingkah laku musuh(array 3 Actions). Faktor-faktor yang dilihat adalah apakah player sedang menyerang dan apakah player sedang ingin boost atau tidak. Jika keadaan tersebut tepenuhi maka musuh akan bersifat hati-hati.

MovementFactor adalah array yang mengatur gerakan musuh (array 1 Actions).  Array 1 MovementFactor adalah adalah kalkulasi antara jarak player dengan musuh dan kecepatan player. Array 2 sama seperti array 1 namun array 1 menyimpan data yang lama sedangkan array 2 menyimpan data yang paling baru. Array 2 juga digunakan dalam mengatur tingkah laku musuh. Array 3 adalah hasil dari array 2 dikurang array 1, digunakan untuk mendeteksi perubahan. Jika perubahan terlalu drastis maka musuh akan mundur jika tidak, maka maju.

Berikut adalah script yang menentukan berbagai array yang barusan disebut.







Game Sword Master



https://scratch.mit.edu/projects/194644966

Link Youtube








Comments

Popular posts from this blog

SISTEM PRESENSI ONLINE ITS