Stickman Fun War Online.

(1)

ABSTRAK

Latar belakang pembuatan dari aplikasi game Stickman Fun War Online adalah terjadinya pergeseran fungsi internet, yang semula digunakan untuk mencari informasi, sekarang bisa digunakan sebagai sarana untuk bermain game secara bersama-sama.

Untuk berkomunikasi antara aplikasi server dan client, aplikasi game menggunakan teknologi .Net Remoting dengan menggunakan TCP Channel sebagai jalur komunikasi. Pesan yang dikirimkan antara aplikasi server dan client antara lain, informasi player, room dan weapon.

Aplikasi game ini dibangun dengan menggunakan bahasa pemograman C# 2.0. Antarmuka yang digunakan berbasis aplikasi windows.


(2)

Universitas Kristen Maranatha iii

ABSTRACT

The background of making Stickman Fun War Online game is expansions of the internet function that were used to looking for information to playing online game together.

To communicate between server and client application, this game use .Net Remoting technology with TCP Channel as communication line. Some of messages that sent between server and client application are player information, room and weapons.

This game application built using C# 2.0 programming language and using interface that based on windows application.


(3)

DAFTAR ISI

KATA PENGANTAR ... i

ABSTRAK ...ii

ABSTRACT ... iii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... ix

BAB I ... 1

PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 1

1.3 Tujuan ... 1

1.4 Batasan Masalah ... 1

1.5 Sistematika Pembahasan ... 2

1.6 Time Schedule ... 3

BAB II ... 4

DASAR TEORI ... 4

2.1 Aturan Permainan StickMan Fun War ... 4

2.2 Metode ... 4

2.3 Protokol Komunikasi ... 7

2.4 Library Pendukung ... 7

BAB III ... 9

ANALISA DAN PEMODELAN ... 9

3.1 Latar Belakang Cerita (Background Story) ... 9

3.2 Rincian Game ... 9

3.2.1 Rincian Senjata ... 9


(4)

Universitas Kristen Maranatha v

3.2.3 Scoring ... 15

3.3 Arsitektur Game ... 15

3.3.1 Topologi Jaringan ... 16

3.3.2 Use Case Diagram ... 17

3.3.3 Acivity Diagram ... 17

3.3.3.5 Logout Activity ... 19

3.3.3.6 Check Hall Of Fame Activity ... 19

3.3.4 Class Diagram ... 20

3.3.5 Sequence Diagram ... 22

3.3.6 Tabel Data ... 24

3.4 Storyboard ... 24

3.5 Creative Strategy ... 26

3.5.1 Login Area ... 26

3.5.2 Main menu ... 26

3.5.3 Create Room Area ... 28

3.5.4 Room Area ... 28

BAB IV ... 29

PERANCANGAN DAN IMPLEMENTASI ... 29

2.1 Aplikasi Server ... 29

2.2 Remote Object ... 32

2.3 Aplikasi Client ... 49

BAB V ... 73

PENGUJIAN ... 73

5.1 Pengujian Method pada Class PlayerData... 73

5.2 Pengujian Method pada Class Player ... 80

5.3 Pengujian Method pada Class Room ... 82

5.4 Pengujian Class WeaponData. ... 92


(5)

5.6 Pengujian Class MapGrid. ... 94

5.7 Pengujian Class MapHandler. ... 94

BAB VI ... 96

KESIMPULAN DAN SARAN ... 96

6.1 Kesimpulan ... 96

6.2 Saran ... 96


(6)

Universitas Kristen Maranatha vii

DAFTAR GAMBAR

Gambar 3. 1: Topologi Jaringan ... 16

Gambar 3. 2: Use Case Diagram ... 17

Gambar 3. 3: Register Activity ... 18

Gambar 3. 4: Login Activity ... 18

Gambar 3. 5: Create Room Activity ... 19

Gambar 3. 6: Join Room Activity ... 19

Gambar 3. 7: Logout Activity ... 19

Gambar 3. 8: Chek Hall Of Fame Activity ... 19

Gambar 3.9: Class diagram pada Remote Object. ... 20

Gambar 3.10: Client class diagram. ... 21

Gambar 3. 11: Sequence Diagram ... 23

Gambar 3. 12: Tabel Data ... 24

Gambar 3. 13: Storyboard pembuat game dan awal cerita. ... 25

Gambar 3. 8: Desain Layout ketika Permainan berlangsung. ... 25

Gambar 3. 9: Desain Layout Login Area ... 26

Gambar 3. 10: Desain Layout Main menu ... 27

Gambar 3. 11: Desain Layout Create Room Area ... 28

Gambar 3. 12: Desain Layout Room Area... 28

Gambar 4.1: Pencatatan Log pada saat service dijalankan. ... 31

Gambar 4.2: Pencatatan Log pada saat service dihentikan. ... 32

Gambar 4.3: Tamplilan Aplikasi Client ... 50

Gambar 4.4: Tampilan Aplikasi Client (Story) ... 50

Gambar 4.5: Tamplilan Aplikasi Client (Login) ... 51

Gambar 4.6: Tampilan Pesan apabila aplikasi client tidak dapat melakukan koneksi terhadap server ... 51

Gambar 4.7: Tamplilan Aplikasi Client (Main menu) ... 52

Gambar 4.8: Tampilan Hall Of Fame. ... 55


(7)

Gambar 4.10: Pemberitahuan untuk mengisi nama room ... 56

Gambar 4.11: Tampilan dari waiting room Control. ... 58

Gambar 4.12: Tampilan message box apabila master room menekan tombol start game. ... 60

Gambar 4.13: Tampilan dari menu utama setelah melakukan pembuatan room ... 60

Gambar 4.14: Tampilan dari waiting room Control setelah pemain bergabung ke dalam room. 61 Gambar 4.15: Tampilan dari waiting room Control setelah pemain menekan tombol ready. .... 62

Gambar 4.16: Tampilan permainan. ... 67

Gambar 4.17: Tampilan permainan – Menu Senjata (Merupakan giliran pemain). ... 68

Gambar 4.18: Pesan yang tampil apabila pemain menekan klik kanan bukan pada saat gilirannya. ... 68

Gambar 4.19: Menu Senjata beserta keterangan senjata. ... 71


(8)

Universitas Kristen Maranatha ix

DAFTAR TABEL

Tabel 1. 1: Time Schedule (2007) ... 3

Tabel 1.2: Time Schedule (2008) ... 3

Tabel 3. 1: Rincian Senjata ... 10

Tabel 3. 2: Experience Tabel ... 14

Tabel 5.1: Pengujian Method bool IsNotUserLogin(string username). ... 73

Tabel 5.2: Pengujian Method EcheckLoginPlayer CheckUserPassword(string username, string password). ... 74

Tabel 5.3: Pengujian Method void RemovePlayerFromList(string username). ... 75

Tabel 5.4: Pengujian Method Player GetPlayerRoomFromList(string playerName). ... 76

Tabel 5.5: Pengujian Method Player GetPlayerFromDB(string username). ... 76

Tabel 5.6: Pengujian Method Void UpdateLeaverScore(List<string> leaverNames). ... 77

Tabel 5.7: Nilai pengujian method void UpdatePlayerScoreAndExp(List<Player> playerList). ... 78

Tabel 5.8: Pengujian Method Void UpdatePlayerScoreAndExp(List<Player> playerList). ... 78

Tabel 5.9: Pengujian Method List<Player> GetUpdatedPlayerList(List<Player> playerList). ... 79

Tabel 5.10: Pengujian Method void SetPlayerDirection(string direction). ... 80

Tabel 5.11: Pengujian terhadap method void SetSelectedWeapon(Weapon w, SizeF spriteSize). ... 81

Tabel 5.12: Pengujian method void UnEquipedSelectedWeapon(). ... 82

Tabel 5.13: Pengujian method void SetPlayerLocation(PointF locationF, SizeF spritePlayerSize). ... 82

Tabel 5.14: Pengujian Method Player GetPlayerFromRoom(string playerName). ... 83

Tabel 5.15: Pengujian method void ChangePlayerServer()... 84

Tabel 5.16: Pengujian method void ChangePlayerTurn(). ... 85

Tabel 5.17: Pengujian method RemovePlayerFromRoom(string playerName). ... 86

Tabel 5.18: Pengujian Method Int GetWeaponDamage(Weapon selectedWeapon). ... 88

Tabel 5.19: Pengujian Method bool IsRoomEndGame(). ... 89

Tabel 5.20: Pengujian method bool IsCollide(). ... 91


(9)

Tabel 5.22: Pengujian method int GetHpFromLvl(int level, int healthPoint). ... 93

Tabel 5.23: Pengujian method int GetPlayerLevel(int level, int exp). ... 93

Tabel 5.24: Pengujian method Tile GetTileFromIndex(int rowIndex, int colIndex). ... 94

Tabel 5.25: Pengujian method MapGrid ReadXML(string filename). ... 95

Tabel 5.26: Pengujian method MapGrid GetMapGridFromName(string mapName). ... 95


(10)

Universitas Kristen Maranatha 1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Internet merupakan salah satu sarana yang sangat dibutuhkan oleh masyarakat saat ini. Internet tidak hanya digunakan untuk mendapatkan informasi, tetapi juga digunakan sebagai sarana untuk bermain game secara bersama-sama.

Saat ini, game online merupakan salah satu game yang sangat digemari oleh masyarakat Indonesia khususnya untuk kalangan anak muda. Game online yang berada di Indonesia ini umumnya berasal dari negara lain. Sampai sejauh ini, mungkin hanya terdapat sedikit sekali game online buatan Indonesia.

1.2 Rumusan Masalah

Dari penjelasan di atas dapat ditemukan rumusan, yaitu: Bagaimana desain dari aplikasi game yang akan dibuat?

1.3 Tujuan

Laporan ini menjelaskan bagaimana desain dari aplikasi Stickman Fun War Online.

1.4 Batasan Masalah

Aplikasi game yang akan dibuat mempunyai batasan-batasan sebagai berikut:

 Program yang akan digunakan untuk pembuatan aplikasi game ini adalah Microsoft Visual Studio.Net 2005 dengan program pendukung .Net Frameworks 2.0, Micosoft Windows XP SP2.

 Sistem basis data yang digunakan adalah SQL Server 2005 Express.

 Bahasa pemograman yang digunakan dalam pembuatan aplikasi game ini adalah C# 2.0.

 Untuk antarmuka, aplikasi game ini berbasis 2D dengan memanfaatkan teknologi GDI+.

 Aplikasi game dimainkan secara multiPlayer (banyak pemain) dengan memanfaatkan teknologi .Net Remoting untuk melakukan komunikasi antara server dan client.

 Pembuatan aplikasi game dibuat dengan menggunakan metoda OOP (Object Oriented Programming).


(11)

 Jumlah Map (tempat melakukan permainan dalam game) yang terdapat dalam game Stickman Fun War Online adalah 20 buah.

 Pemain dapat memilih senjata yang diinginkan sesuai dengan level dari pemain tersebut untuk map tertentu.

 Pemain yang berperan sebagai Master Room (pemain yang membuat room) berhak untuk memilih map yang akan digunakan untuk melakukan permainan.

 Jumlah pemain maksimal dalam suatu room adalah sebanyak empat pemain.

 Aplikasi tidak berjalan full screen.

 Besar jendela aplikasi yaitu 800x600. 1.5 Sistematika Pembahasan

Penulisan laporan Seminar Tugas Akhir ini dibagi menjadi tiga bab dengan penyusunan sebagai berikut:

 Bab I - Pendahuluan

Bab ini menjelaskan tentang latar belakang, rumusan masalah, tujuan, batasan masalah, sistematika penulisan laporan dan jadwal penyelesaian laporan.

 Bab II - Dasar Teori

Bab ini menjelaskan mengenai aturan permainan, metode, protokol komunikasi dan library penjunjang yang digunakan.

 Bab III – Analisa dan Pemodelan

Bab ini menjelaskan mengenai latar belakang cerita, rincian game, arsitektur game, storyboard dan desain visual atau rancangan yang terdapat dalam game.

 BAB IV – Perancangan dan Implementasi

Bab ini akan akan berisi screenshoot dari aplikasi dan juga penjabaran dari tiap method (fungsi) utama dalam aplikasi yang dibuat.

 BAB V - Pengujian

Bab ini akan berisi pengujian terhadap tiap class/method yang telah dibuat. Metode pengujian yang akan digunakan adalah WhiteBox Testing.


(12)

Universitas Kristen Maranatha 3

1.6 Time Schedule

Berikut ini adalah jadwal penyelesaian karya ilmiah:

Tabel 1. 1: Time Schedule (2007)

BULAN Agustus September Oktober November Desember Januari

KETERANGAN

Pengerjaan Bab 1 sampai Bab3. Berisi mengenai perancangan awal dari aplikasi.

Pembangunan aplikasi. Pembangunan aplikasi dan pengujian 1.

Tabel 1.2: Time Schedule (2008)

BULAN February Maret April Mei Juni

KETERANGAN

Pembangunan aplikasi dan penambahan class diagram.

Pembangunan aplikasi dan pengujian 2.


(13)

BAB VI

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Berikut ini adalah kesimpulan yang didapat setelah mengerjakan Tugas Akhir:

1. Deteksi tumbukan sebelumnya menggunakan metoda SAT (Separating Axis Theorem) dengan bentuk tanah polygon. Akan tetapi setelah dilakukan pengujian, hasil yang diharapkan tidak sesuai dikarenakan bentuk tanah (polygon) yang terlampau besar, sehingga terjadi pergantian penggunaan teorema deteksi tumbukan menjadi Tile Base Collision Detection dengan mengubah bentuk tanah pada map menjadi Tile Base. 2. Proses penggambaran map dan tile pada aplikasi client sebelumnya adalah

menggambar setiap tile dan background dari map yang digunakan. Akan tetapi, timbul masalah yaitu pemakaian memori yang berlebihan disebabkan oleh pemakaian control timer untuk menggambar map dan tile secara berulang-ulang, sehingga proses penggambaran map diganti menjadi menggambar screen shoot dari map (backround map dan tile).

6.2 Saran

Berikut ini adalah beberapa saran yang diajukan untuk mengembangkan aplikasi game Stickman Fun War Online:

1. Pengembangan dan penambahan algoritma collision detection untuk mencapai hasil collision yang jauh lebih baik dan dapat menangani lebih banyak jenis Tile pada map. 2. Pergantian metode untuk pengiriman paket data antara aplikasi client dan server dari

menggunakan control timer ke thread. Dimana control timer hanya digunakan untuk menggambar animasi pada game ini, sedangkan thread digunakan untuk pengaturan pengiriman paket data.

3. Optimalisasi pengiriman paket data dengan melakukan perbaikan pada metode pengiriman paket data antara aplikasi server dan client yaitu dengan cara membuat aplikasi client bertindak sebagai server untuk memberitahukan kepada server apabila telah terjadi perubahan nilai pada client (Two Way Remoting).


(14)

Universitas Kristen Maranatha

97

DAFTAR PUSTAKA

Deitel, H.M. dan P.J.Deitel; Visual C# 2005 How To Program Pearson International Edition; Pearson Education Inc, 2006.

McDonald, Matthew; .Net User Interfaces With C#: Windows Form and Custom Controls; APRESS, 2002.

Microsoft Developer Network; GDI+; http://msdn.microsoft.com/en-us/library/ms533798(VS.85).aspx

Microsoft Developer Network; .Net Remoting Overview; http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx

Ramrer, Ingo; Advance .Net Remoting; APRESS, 2005. Tonypa; Tile Based Games; http://www.tonypa.pri.ee

Troelsen, Andrew; Pro C# 2005 and the .Net 2.0 Platform; APRESS, 2005. Wacik, Jero; Ringkasan Fisika; SATELIT Offset Bandung, 1984.


(1)

Tabel 5.22: Pengujian method int GetHpFromLvl(int level, int healthPoint). ... 93

Tabel 5.23: Pengujian method int GetPlayerLevel(int level, int exp). ... 93

Tabel 5.24: Pengujian method Tile GetTileFromIndex(int rowIndex, int colIndex). ... 94

Tabel 5.25: Pengujian method MapGrid ReadXML(string filename). ... 95

Tabel 5.26: Pengujian method MapGrid GetMapGridFromName(string mapName). ... 95


(2)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Internet merupakan salah satu sarana yang sangat dibutuhkan oleh masyarakat saat ini. Internet tidak hanya digunakan untuk mendapatkan informasi, tetapi juga digunakan sebagai sarana untuk bermain game secara bersama-sama.

Saat ini, game online merupakan salah satu game yang sangat digemari oleh masyarakat Indonesia khususnya untuk kalangan anak muda. Game online yang berada di Indonesia ini umumnya berasal dari negara lain. Sampai sejauh ini, mungkin hanya terdapat sedikit sekali game online buatan Indonesia.

1.2 Rumusan Masalah

Dari penjelasan di atas dapat ditemukan rumusan, yaitu: Bagaimana desain dari aplikasi game yang akan dibuat?

1.3 Tujuan

Laporan ini menjelaskan bagaimana desain dari aplikasi Stickman Fun War Online. 1.4 Batasan Masalah

Aplikasi game yang akan dibuat mempunyai batasan-batasan sebagai berikut:

 Program yang akan digunakan untuk pembuatan aplikasi game ini adalah Microsoft Visual Studio.Net 2005 dengan program pendukung .Net Frameworks 2.0, Micosoft Windows XP SP2.

 Sistem basis data yang digunakan adalah SQL Server 2005 Express.

 Bahasa pemograman yang digunakan dalam pembuatan aplikasi game ini adalah C# 2.0.  Untuk antarmuka, aplikasi game ini berbasis 2D dengan memanfaatkan teknologi GDI+.  Aplikasi game dimainkan secara multiPlayer (banyak pemain) dengan memanfaatkan

teknologi .Net Remoting untuk melakukan komunikasi antara server dan client.


(3)

 Jumlah Map (tempat melakukan permainan dalam game) yang terdapat dalam game Stickman Fun War Online adalah 20 buah.

 Pemain dapat memilih senjata yang diinginkan sesuai dengan level dari pemain tersebut untuk map tertentu.

 Pemain yang berperan sebagai Master Room (pemain yang membuat room) berhak untuk memilih map yang akan digunakan untuk melakukan permainan.

 Jumlah pemain maksimal dalam suatu room adalah sebanyak empat pemain.  Aplikasi tidak berjalan full screen.

 Besar jendela aplikasi yaitu 800x600. 1.5 Sistematika Pembahasan

Penulisan laporan Seminar Tugas Akhir ini dibagi menjadi tiga bab dengan penyusunan sebagai berikut:

 Bab I - Pendahuluan

Bab ini menjelaskan tentang latar belakang, rumusan masalah, tujuan, batasan masalah, sistematika penulisan laporan dan jadwal penyelesaian laporan.

 Bab II - Dasar Teori

Bab ini menjelaskan mengenai aturan permainan, metode, protokol komunikasi dan library penjunjang yang digunakan.

 Bab III – Analisa dan Pemodelan

Bab ini menjelaskan mengenai latar belakang cerita, rincian game, arsitektur game, storyboard dan desain visual atau rancangan yang terdapat dalam game.

 BAB IV – Perancangan dan Implementasi

Bab ini akan akan berisi screenshoot dari aplikasi dan juga penjabaran dari tiap method (fungsi) utama dalam aplikasi yang dibuat.

 BAB V - Pengujian

Bab ini akan berisi pengujian terhadap tiap class/method yang telah dibuat. Metode pengujian yang akan digunakan adalah WhiteBox Testing.


(4)

1.6 Time Schedule

Berikut ini adalah jadwal penyelesaian karya ilmiah:

Tabel 1. 1: Time Schedule (2007)

BULAN Agustus September Oktober November Desember Januari

KETERANGAN

Pengerjaan Bab 1 sampai Bab3. Berisi mengenai perancangan awal dari aplikasi.

Pembangunan aplikasi. Pembangunan aplikasi dan pengujian 1.

Tabel 1.2: Time Schedule (2008)

BULAN February Maret April Mei Juni

KETERANGAN

Pembangunan aplikasi dan penambahan class diagram.

Pembangunan aplikasi dan pengujian 2.


(5)

BAB VI

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Berikut ini adalah kesimpulan yang didapat setelah mengerjakan Tugas Akhir:

1. Deteksi tumbukan sebelumnya menggunakan metoda SAT (Separating Axis Theorem) dengan bentuk tanah polygon. Akan tetapi setelah dilakukan pengujian, hasil yang diharapkan tidak sesuai dikarenakan bentuk tanah (polygon) yang terlampau besar, sehingga terjadi pergantian penggunaan teorema deteksi tumbukan menjadi Tile Base

Collision Detection dengan mengubah bentuk tanah pada map menjadi Tile Base.

2. Proses penggambaran map dan tile pada aplikasi client sebelumnya adalah menggambar setiap tile dan background dari map yang digunakan. Akan tetapi, timbul masalah yaitu pemakaian memori yang berlebihan disebabkan oleh pemakaian control

timer untuk menggambar map dan tile secara berulang-ulang, sehingga proses

penggambaran map diganti menjadi menggambar screen shoot dari map (backround

map dan tile).

6.2 Saran

Berikut ini adalah beberapa saran yang diajukan untuk mengembangkan aplikasi game

Stickman Fun War Online:

1. Pengembangan dan penambahan algoritma collision detection untuk mencapai hasil

collision yang jauh lebih baik dan dapat menangani lebih banyak jenis Tile pada map.

2. Pergantian metode untuk pengiriman paket data antara aplikasi client dan server dari menggunakan control timer ke thread. Dimana control timer hanya digunakan untuk menggambar animasi pada game ini, sedangkan thread digunakan untuk pengaturan pengiriman paket data.

3. Optimalisasi pengiriman paket data dengan melakukan perbaikan pada metode pengiriman paket data antara aplikasi server dan client yaitu dengan cara membuat aplikasi client bertindak sebagai server untuk memberitahukan kepada server apabila telah terjadi perubahan nilai pada client (Two Way Remoting).


(6)

DAFTAR PUSTAKA

Deitel, H.M. dan P.J.Deitel; Visual C# 2005 How To Program Pearson International Edition; Pearson

Education Inc, 2006.

McDonald, Matthew; .Net User Interfaces With C#: Windows Form and Custom Controls; APRESS,

2002.

Microsoft Developer Network; GDI+;

http://msdn.microsoft.com/en-us/library/ms533798(VS.85).aspx

Microsoft Developer Network; .Net Remoting Overview;

http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx

Ramrer, Ingo; Advance .Net Remoting; APRESS, 2005.

Tonypa; Tile Based Games; http://www.tonypa.pri.ee

Troelsen, Andrew; Pro C# 2005 and the .Net 2.0 Platform; APRESS, 2005.