Berikan opini pribadi Anda & bantu ribuan orang untuk memilih situs belajar online yang terbaik. Semua feedback, baik itu yang positif atau negatif, akan diterima selama Anda bersikap jujur. Kami tidak akan mempublikasikan feedback yang bias atau spam. Jadi, kalau Anda ingin membagikan pengalaman, opini atau bahkan saran pribadi - tempat ini ada untuk Anda! Show
Pernyataan ini ada benarnya, karena Game yang dipublikasikan untuk Linux tidak sebanyak Windows dan Mac. Mungkin karena Linux kebanyakan digunakan di server dan cloud. Tapi ini sebenarnya bisa jadi potensi pasar dengan persaingan yang sedikit. Bayangkan… Game anda diterbitkan untuk platform Linux, seberapa banyak pengguna Linux (terutama yang baru bermigrasi) akan memainkan Game anda di Linux. Saya kira akan banyak. Ah, saya tidak akan membahas ini lebih dalam. Karena pada artikel ini kita akan belajar cara membuat game di Linux dengan PyGame. Siap? Mari kita mulai… Persiapan Awal yang Harus dilakukanSebelum memulai, saya akan menjelaskan dulu persiapan yang harus dilakukan. Pada tutorial ini, kita akan menggunakan modul PyGame dengan Python 3. Jadi ada dua hal utama yang harus disiapkan:
PyGame adalah modul Python yang berisi fungsi dan class yang kita butuhkan untuk membuat game. Pengetahuan yang dibutuhkanSetidaknya untuk dapat mengikuti tutorial ini, kamu harus paham dulu dasar-dasar pemrograman Python. Apabila belum paham, silahkan ikuti: Tutorial Pemrograman Python yang sudah saya buat. Selain itu pengetahuan tentang grafika komputer dan matematika juga akan sangat membantu. Penasaran kan… bagaimana peranan matematika di dalam Game? Nanti saja kita lihat di dalam kode. Lanjutkan baca sampai selesai ya…
Instalasi PyGamePyGame dapat kita install menggunakan 7 dengan perintah berikut:
Atau bisa juga melalui 8:
Maka modul 9 akan terinstal ke dalam lingkungan OS (Sistem Opearsi).Buat yang menggunakan Virtual Environtment gunakan perintah ini:
Belum tahu tentang virtual environment? Silahkan baca: Mengenal Virtualenv: Apa Saja yang Harus Kamu Ketahui? OK, lanjut… Sekarang kita tes dulu, apakah modul 9 sudah terinstal atau tidak. Silahkan masuk ke shell python dengan mengetik perintah 1 atau 2 (di virtual env).Ketik perintah berikut:
Kalau tidak terjadi error, maka modul 9 sudah terinstal dengan benar.Tapi kalau terjadi error, artinya modul 9 belum terinstall.Coba install lagi sampai berhasil. Membuat Proyek GameSebelum mulai membuat game, kita tentukan dulu game seperti apa yang akan dibuat. Pada tutorial ini, kita akan membuat game 2D dengan game play seperti ini: Permainan pada game ini hanya sebatas tembak-tembakan saja dengan pemain utama (player) adalah seekor kelinci. Dia harus melindungi bentengnya dari serangan hewan liar. Kelinci ini menggnakan panah untuk menebak. Sederhana bukan… Mari kita mulai proyek ini dengan membuat direktori baru bernama 5. Lalu di dalam direktori ini buat file baru bernama 6.Ikuti perintah berikut:
Sehingga kita akan punya struktur direktori seperti ini:
Untuk aset game seperti game art dan audio sudah saya sediakan. Tinggal download saja di sini: [ Download Game Assets] Setelah itu ekstrak direktori 7 ke dalam direktori 5.Sehingga kita punya struktur direktori seperti ini: Selanjutnya kita bisa mulai coding… Langkah 1: Membuat Game dengan PyGameBuka file 6 dengan teks editor, lalu ketik kode berikut:File: 6
Ada 8 langkah awal yang harus kita lakukan dalam membuat game dengan PyGame: 1 - Import Library: Mmengimpor semua library yang dibutuhkan oleh Game:
Pertama kita impor 9 lalu mengimpor konstanta di dalam 9.2 - Initialize Game: Pada tahapan ini kita melakukan inisialisasi atau deklarasi variabel dan objek yang dibutuhkan. 3 - Load Game Assets: Pada tahapan ini kita me-load game asset. Pada kode di atas, kita me-load gambar untuk ditampilkan pada Game. 4 - Game Loop: Game loop akan mengunlang terus mmenerus selama game-nya berjalan. 5 - Clear Screen: Kita menggunakan fungsi 3 untuk mengosongkan layar sebelum digambar.6 - Draw the game object: Pada tahapan ini kita menggambar game objek ke layar. Jadi apapun yang akan kita tampilkan ke layar, kita harus menggambarnya di sini. Fungsi yang digunakan untuk menggambar pada Pygame adalah:
parameter 4 adalah sebuah tuple 5 yang menyatakan koordinat atau lokasi gambar akan ditampilkan.7 - Update Screen: Karena saat ini kita berada di dalam game loop, gambar akan dibuat terus menerus selama gamenya berjalan. Karena itu, kita perlu update tampilan screenya agar tercipta efek animasi. Fungsi untuk update di pygame adalah:
8 - Event Loop: Event loop berfungsi untuk mengecek event apa saja yang terjadi di dalam game. Misal saat mouse ditekan, saat salah satu keyboard ditekan, dsb. Nah, sekarang coba eksekusi Gamenya dengan perintah: 0Maka hasilnya: Boom!! kita berhasil menggambar Player di ruang hampa. Ngomong-ngomong itu posisinya berada di titik 6. Artinya 7 dan 8.“Kok 9 ke bawah tidak bernilai negatif?”Diagram kartesius di komputer dibuat terbalik dengan titik 0 berada di pojok kiri atas.Ingat-ingat lagi pelajaran matematika dan grafika komputernya, hehe 😄… Ok, lanjut… Langkah 2: Menambahkan Background dan Objek yang LainAgar game terlihat menarik, kita tambahkan background dan game objek lainnya. Tambahkan baris ini pada langkah ke 1: 1Sehingga menjadi seperti ini: Setelah itu kita akan gambar 2 dan 3 di langkah ke 4. Tambahkan kode berikut di atas kode untuk menggambar player: 2Sehingga menjadi seperti ini: Oke, sekarang kita punya kode seperti ini: 3Coba eksekusi lagi kode tersebut: 0Maka hasilnya: Mantap… 👏👏👏 Langkah 3: Menggerakan PlayerAgar player bisa bergerak, kita harus memindahkan posisinya. Misal kita ubah posisi 5 yang awalnya 6 menjadi 7, maka player akan bergerak ke kanan sejauh 8.Pada game ini, player akan kita gerakkan saat tombol ini ditekan:
Paham kan maksud saya…? Sekarang tambahkan kode berikut pada langkah 3 (di atas 4): 5Lalu di langkah ke 5, tambahkan kode berikut di bawah kode event 6: 6Sehingga akan menjadi seperti ini: Event 7 artinya saat kita menekan tombol di keyboard, sedangkan 8 saat kita melepas keyboad.Lalu di dalam 7 dan 8 kita melakukan pengecekan tombol yang ditekan dengan konstanta yang sudah disediakan PyGame.
Terakhir kita memindahkan poisi Player bedasarkan tombol yang ditekan. Player akan bergerak sepanjang 9 dengan menambah dan mengurangi nilai 5 dan 9. 7Hasilnya: Yeah! kita berhasil! 👏👏👏 Langkah 4: Mengubah Arah PlayerBerikutnya kita ingin agar player menghadap ke mana pointer diarahkan. Sehingga nanti kita bisa menembak dan membidik musuh. Untuk melakukan ini, kita harus memutar arah player dengan sudut tertentu lalu menggambar ulang karakternya. Besar sudut ini bisa kita hitung dengan rumus trigonometri tangen. Masih ingat dengan sinus (sin), cosinus (cos), dan tangen (tan)? Hahaha 😄 sama!! Saya juga lupa… Tapi setidaknya kita harus paham bagaimana player akan bergerak mengikuti pointer. Jadi begini… Anggaplah si player berada di titik 02, lalu pointer berada di titik 03. Agar player dapat berputar mengikuti arah pergerakan pointer, maka kita harus menghitung besar sudut 04.Setelah itu, baru kita bisa rotasi player dengan besar sudut 04.Nah, untuk mencari besar sudut 04, kita bisa menggunakan rumus tangen.Tenang… Kita tidak akan membuat fungsi kangen tangen sendiri, karena di Python sudah disediakan dengan nama 07. Fungsi ini berada di dalam modul 08.Baiklah, sekarang buka lagi file 6. Lalu tambahkan kode berikut pada langkah ke 10: 8Lalu pada langkah ke 4, ganti kode ini: 9Menjadi: 0Penjelasan: Pertama kita mengambil posisi pointer dengan fungsi 12. Fungsi ini akan menghasilkan sebuah list yang menampung nilai posisi 5 dan 9 dari mouse atau pointer.Setelah itu kita menghitung besar sudut dengan fungsi 15. 1Setelah mendapatkan besar sudut rotasi, kemudian kita putar (rotasi) player dengan fungsi 16: 2Nilai 17 didapatkan dari nilai radius 18.Terakhir kita menggambar ulang player dengan posisi baru. Maka hasilnya: Langkah 5: Membuat TembakanBerikutnya kita tambahkan kode untuk membuat tembakan. Logikanya nanti seperti ini:
Semua anak panah akan kita simpan di dalam sebuah list. Baiklah, sekarang tambahkan kode berikut pada langkah 3 tepat di bawah variabel 20: 3Variabel 21 nanti akan kita gunakan untuk menyimpan score yang didapatkan.Sementara variabel 22 akan menyimpan titik koordinat 23 dari anak panah.Berikutnya silahkan tambahkan objek 24 pada langkah 25: 4Sehingga menjadi seperti ini: Setelah itu, tambahkan kode untuk event 26 pada langkah ke 27 di bawah event 6: 5Sehigga menjadi seperti ini: Kita akan menambahkan koordinat arrow baru ke dalam list 22. Koordinat tersebut akan menjadi titik start untuk menggambar panah.Selanjutnya tambahkan kode ini untuk menggambar panahnya di langkah ke 4 tepat di bawah kode 31: 6Sehingga akan menjadi seperti ini: Perhatikan! Variabel 32 (velocity x) dan 33 (velocity y) kita hitung dengan rumus trigonomotri 34 dan 35. Dua variabel ini akan menentukan kecepatan panah berpindah dari titik awal ke titik akhir.Selanjutnya kita cek, apakah panah sudah mencapai batas layar atau tidak? 7Kalau sudah mencapai batas layar, kita hapus panahnya dari list dengan fungsi 36 agar tidak memakan banyak memori.Setelah itu kita increment nilai index panah ( 37) dan mulai menggambar berdasarkan angle player. 8Variabel 38 akan berisi nilai koordinat awal panah yang didapatkan dari list 22.Sekarang coba eksekusi lagi Game-nya: 0Maka hasilnya: Wohooo~ 😍 keren!! Wah, kamu sudah mengikuti 50% dari tutorial ini. Sisanya tinggal menambahkan musuh, collision, UI, dan audio. Langkah 6: Membuat MusuhSekarang saatnya kita menggambar musuh. Caranya hampir sama dengan menggambar obejk yang lain. Bedanya, kita akan menggambar pada titik 9 secara acak.Untuk menggambar secara acak, kita bisa menggunakan fungsi 41 (random integer) untuk membuat bilangan acak.Tujuan utama musuh adalah menyerang markas kelinci yang sudah kita buat. Jadi nanti langkahnya akan menjadi seperti ini:
Baiklah, sekarang buka kembali file 6. Lalu di langkah 43 tambahkan kode berikut untuk mengimpor fungsi 41: 0Setelah itu buat variabel global yang diperlukan untuk musuh, seperti list, dan waktu ia akan muncul. Pada langkah ke 3 tambahkan kode ini: 1Sehingga akan menjadi seperti ini: Variabel 46 akan kita kurangi 47 disetiap perulangan game loop. Lalu saat variabel ini mencapai nilai 48 musuh akan keluar.Berikutnya tambahkan kode ini untuk mengimpor gambar enemy di langkah 49: 2Berikutnya silahkan tambahkan kode ini di bawah langkah 50: 3Sehingga akan menjadi seperti ini: Setelah itu, coba eksekusi lagi. 0Maka hasilnya: Yap! kita sudah berhasil menggambar musuh secara acak di titik 9 dan waktu kemunculannya juga kita tentukan secara acak.Saat ini musuh tidak bisa ditembak, karena kita belum membuat kode untuk menghapus musuh saat berbenturan dengan anak panah. Langkah 7: Collision DetectionKita sudah berhasil menambahkan player dan juga musuhnya. Namun, sayang musuh belum bisa ditembak. Ini karena kita belum membuat kode untuk collision detection atau pendeteksian benturan. Ada dua benturan yang harus kita buat:
Mari kita buat… Pada langkan ke 4 di bagian 53 tambahkan kode ini dibawah hapus musuh: 5Sehingga akan menjadi seperti ini: Setelah itu, coba eksekusi lagi dan perhatikanlah hasilnya: Penjelasan: Pertama kita membuat objek rectangle (segi emapat) dari objek-objek yang akan berbenturan:
Kalau kita gambarkan akan terlihat seperti ini: Setelah itu, kita buat kondisi saat musuh menabrak markas kelinci. 6Angka 56 itu maksudnya saat musuh sudah mencapai titik 57, maka dia harus menghilang dan itu artinya benteng atau markas player sedang diserang.Lalu benturan beikutnya akan terjadi antara anak panah dengan musuh. 7Kita menggunakan fungsi 58 untuk mendeteksi apakah anak panah berbenturan dengan musuh atau tidak.Kenapa menggunakan fungsi ini? Karena yang mau kita cek tidak hanya benturan dari satu sisi saja. Melainkan juga dari semua sisi rectangle musuh. Misalkan kita tembak musuh dari belakang, maka itu akan dianggap benturan yang sah atau valid. Kemudian, saat terjadi benturan, kita menambahkan 59 untuk nilai 21. Lalu menghapus anak panah dan musuh tersebut.Langkah 8: Membuat HUD untuk Waktu dan Health PointHUD (Heads Up Display)adalah sebuah tampilan untuk menyajikan data. Pada HUD, kita akan menampilkan data waktu dan health point untuk markas. Silahkan buka file 6 lalu tambahkan variabel ini di bawah variabel 21 di langkah ke 3: 8Dua variabel di atas akan mnyimpan nilai awal untuk 64 dan waktu game. Nilai 65 kita berikan, karena di game asset 66 memiliki lebar 67.Berikutnya tambahkan kode ini di langkah 25: 9Sehingga akan menjadi seperti ini: Setelah itu tambahkan kode ini pada langkah ke 69 saat musuh menyentuh markas kelinci: 0Shingga akan menjadi seperti ini: Maksud kode di atas adalah mengurangi nilai 70 saat markas diserang. Kurangi dengan bilangan acak dari 71 sampai 72.Berikutnya kita akan gambar health bar dan waktu. Silahkan tambahkan kode ini pada langkah 4 tepat setelah menggambar musuh: 1Sehingga akan menjadi seperti ini: Untuk membuat teks di PyGame, kita bisa memanfaatkan objek 74. Lalu nilai waktu count down untuk gamenya bisa kita dapatkan dari fungsi 75.Objek 74 memiliki method 77 untuk me-render teks ke layar game. Method ini memiliki tiga paramater yaitu:
Maka hasilnya akan seperti ini: Langkah 9: Membuat Screen untuk Game OverSejauh ini game kita sudah berjalan dengan baik. Namun game-nya tidak akan pernah selesai alias Game Over. Ada dua event yang akan menghakhiri game:
Mari kita buat… Silahkan tambahkan kode berikut di atas variabel 85: 2Kemudian pada langkah 25 tambahkan kode berikut: 3Sehingga akan menjadi seperti ini: Lalu di bagian akhir, di bawah langkah 87 tambahkan kode ini: 4Kode di atas berfungsi untuk mengecek apakah game sudah selesai atau tidak. Lalu menampilkan hasilnya. Langkah 10: Menambahkan Musik dan Effek SuaraWohoo… kita sudah sampai di langkah terakhir. Nah, sekarang biar game-nya tidak sepi dan sunyi. Kita tambahkan background musik dan efek suara saat event tertentu. Silahkan tambahkan kode berikut di langkah 1, tepatnya di bawah objek 89: 5Sehingga akan menjadi seperti ini: Pada kode di atas, kita membuat objek audio berdasrakan file 90 di asset.Background music akan diputar terus menerus selama game dimainkan. Sedangkan efek suara akan diputar saat terjadi event teretntu. Apakah Python bisa buat game?Python dapat digunakan untuk pengembangan Web, Machine Learning, bahkan untuk pengembangan Game. Pengembangan Game dengan Bahasa Python saat ini sangatlah memungkinkan karena adanya sebuah modul yang memudahkan developer dalam membuat game.
Bahasa pemrograman apa yang digunakan untuk membuat game?C++, JavaScript, dan Java menjadi bahasa pemrograman paling mumpuni untuk pengembangan game. Pengembangan aplikasi mobile. C++ dan Java bisa memberikan performa yang sangat baik untuk aplikasi mobile yang Anda buat.
Bagaimana cara untuk membuat game?Apa Saja Langkah Cara Buat Game?. Langkah 1: Lakukan Riset & Konseptualisasi Game Anda. ... . Langkah 2: Buatlah Sebuah Dokumen Desain. ... . Langkah 3: Menentukan Software. ... . Langkah 4: Memulai Pemrograman. ... . Langkah 5: Tes Game Anda & Mulailah Memasarkannya! ... . JavaScript. ... . Java. ... . Swift.. Bagaimana cara belajar python?Tips Belajar Python dengan Cepat. Pahami dulu dasar bahasa pemrograman. Ada beberapa aspek penting terkait apa saja yang harus kamu pelajari dari sebuah bahasa pemrograman. ... . Kuasai Bahasa Inggris. ... . Mulai belajar sekarang. ... . 4. Coba buat program sederhana. ... . Learning by doing.. |