Bagaimana mulai belajar Pygame
Indonesian (Bahasa Indonesia) translation by Aditia Dwiperdana (you can also view the original English article)
Pygame adalah modul cross-platform dari Python dirancang untuk membuat game. Modulnya dirancang untuk menjadi sederhana, mudah digunakan, dan menyenangkan, kunci dari idologi Pygame. Pada post ini, saya akan tunjukkan bagaimana cara menggunakan Pygame dan berbagi tips dan bahan untuk mempelajarinya.
Panduan ini mengasumsikan kamu sudah tahu bagaimana menulis kode Python. Jika tidak, bacalah The Best Way to Learn Python, Learn Python, The Python Tutorial, Codecademy, atau Learn Python the Hard Way untuk memulai.
Kenapa Pygame?
Sederhana
Python biasa disebut sebagai bahasa pemrograman terbaik untuk pertama kali belajar, dan banyak dipuji karena sintaks yang mudah dipelajari dan kurva belajar yang gradual. Untuk alasan ini, banyak programmer baru yang mulai belajar dengan Python.
Pygame mengembangkan Python, mengadopsi filosofi Python, dan ditargetkan agar mudah digunakan. Ditambah lagi, game developer baru dengan minim pengalaman bisa langsung menggunakan Pygame, secepat mereka mempelajari Python.
Memiliki komunitas yang besar
Pygame sudah tersedia sejak tahun 2000 dan sejak itu komunitas yang besar sudah terbangun. Komunitas menyatakan Pygame sudah didownload jutaan kali dan memiliki jutaan kunjungan ke websitenya. Hasil dari komunitas yang besar, bug yang dilaporkan diperbaiki dengan cepat, banyak bantuan yang tersedia, dan banyak fitur tambahan yang dibuat. Selain itu, komunitas memastikan pengembangan Pygame mmenyenangkan; misalnya, kompetisi setahun dua kali dijalankan untuk mempromosikan platform ini. Ukuran komunitas adalah yang membedakan Pygame dari framework Python game lain.
Open Source
Fakta bahwa Pygame open source berarti bug umumnya diperbaiki dengan cepat oleh komunitas. Itu juga berarti kamu bisa mengembangkan Pygame agar sesuai dengan kebutuhan kamu atau bahkan memberi kembali ke komunitas.
Pygame ditulis dalam C, dan melihat kode di dalamnya nadalah cara yang baik untuk mengerti bagaimana Python dan Pygame bekerja.
Sangat Portabel
Pygame sangat portabel, karena mendukung Windows, Linux, Mac OS X, BeOS, FreeBSD, NetBSD, OpenBSD, BSD/OS, Olaris, IRIX, dan QNX. Selain itu, subset Pygame untuk Android tersedia. Selain itu, Pygame tidak membutuhkan OpenGL dan bisa menggunakan DirectX, WinDIB, X11, Linux framebuffer, dan berbagai API lain untuk merender grafis. Ini memastikan banyak user bisa memainkan game kamu.
Memulai
Instalasi
Sebelum menginstall Pygame, pastikan kamu sudah menginstall Python. Kamu akan perhatikan ada dua versi Python: Python 2 dan Python 3. Secara personal, saya sarankan kamu menggunakan Python 2 bersama Pygame, karena Python 2 lebih umum dan banyak modul Pygame yang tidak mendukung Python 3. Tapi, kamu tetap bisa membuat game yang hebat dengan Python 3.
Setelah memastikan versi Python yang berjalan di mesinmu, kamu bisa mengunduh Pygame dari websitenya.
IDE
Selain menginstall modul Pygame, saya sarankan untuk menginstall Python IDE, yang akan mempermudah kamu dalam membuat dan mengompile game.
Perhatikan bahwa sebuah lingkungan pengembangan terintegrasi yang disebut dengan IDLE, sudah termasuk di dalam Python. Tapi, IDLE sering dikritik karena masalah penggunaan dan saya sendiri tidak menyarankannya.
Preferensi personal saya adalah PyScripter, tapi PyCharm, Wing IDE, Python Tools untuk Visual Studio, dan Netbeans adalah opsi yang memungkinkan. Seperti biasa, pilihan IDE tergantung pada preferensi personal, jadi saya sarankan kamu mencoba semuanya dan lihat mana yang kamu sukai.
Bahan pembelajaran
Berikut beberapa bahan pembelajaran yang akan membantu kamu memulai Pygame.
University of Colorado
Universitas Colorado menyediakan pengenalan Pygame yang baik. Slide yang disertakan akan memastikan kamu tahu tentang Pygame dan bagaimana menggunakan komponen kuncinya. Setelah kamu membaca dokumen ini, kamu akan mengerti konsep dasar Pygame.
Tutorial
Ada banyak tutorial yang tersedia yang akan mengajarkan kamu Pygame langkah demi langkah. Saya memilihkan tiga tutorial kesukaan saya:
- Pygame Tutorials - Pengenalan Sederhana ke Game Programming: membahas fitur dasar Pygame.
- Tutorial Dasar Pygame: Seri tujuh bagian mulai dari awal, dengan bagian yang bagus tentang Musik dan Efek Suara.
- The Python Game Book: Mulai dengan dasar, tapi mengajarkank konsep lanjutan seperti sprite, pixel-perfect collision detection, dan scrolling.
Seri Video
Game Development in Python 3 with Pygame adalah seri tutorial video yang tersedia dalam bentuk playlist YouTube. Seri ini terdiri dari 29 video, mulai dengan menampilkan gambar dan teks, dan lanjut mengajarkan animasi dan user input. Jika kamu lebih memilih video tutorial dibanding yang berbasis teks, jangan lewatkan seri ini.
Buku
Jika kamu pemula dalam Python dan Pygame, saya sarankan melihat Invent Your Own Computer Games with Python. Buku ini memulai dengan mengajarkan dasar-dasar Python dan mendukung instruksi dengan memperlihatkan bagaimana membuat permainan command-line sederhana. Setelah memastikan kamu mengerti dasar Python, buku lanjut mengajarkan Pygame.
Di sisi lain, jika kamu ingin langsung masuk ke Pygame, Making Games with Python & Pygame adalah buku untukmu. Di akhir buku ini, kamu akan sudah membuat 11 game dan siap untuk melanjutkan sendiri.
Semua buku ini gratis dan online, jadi kamu bisa langsung memulai sekarang!
Langkah Berikutnya
Membaca dokumentasi dan wiki
Membaca dokumentasi adalah langkah penting dalam perjalanan menguasai Pygame. Di sini, kamu akan menemukan dokumen, tutorial, dan referensi yang mencakup semua fitur dari Pygame. Dokumentasi tersebut memberi kamu pengetahuan atas semua aspek Pygame, lebih jauh dari yang kamu bisa dapatkan dari sumber-sumber sebelumnya.
Pygame Wiki juga akan membantu menjawab pertanyaan apapun yang kamu miliki tentang platform ini, jadi jangan ragu untuk melihatnya.
Melihat Kode
Melihat kode akan membantu kamu memahami berbagai bagian dari Pygame berinteraksi untuk membuat sebuah game lengkap. Selain itu, contoh akan memperlihatkan cara terbaik, dan kamu bisa mendapatkan beberapa trik tambahan.
Lihatlah contoh resmi dari Pygame untuk detail bagaimana cara menggunakan masing-masing modul, atau lihat proyek Pygame publik di GitHub untuk melihat kode yang lengkap.
Berpartisipasi dalam komunitas
Pygame memiliki IRC channel yang aktif dan mailing list. (Mailing list tersebut juga bisa diakses dengan antarmuka seperti forum) Anggota komunitas sangat bersemangat untuk membantu orang baru, jadi jangan takut untuk bertanya.
Begitu kamu menjadi ahli Pygame, kembalilah berkontribusi ke komunitas dan bantu orang lain. Mengajar orang lain akan membantu kamu belajar, dan menguatkan konsep yang sudah kamu miliki.
Membuat game kamu sendiri
Bahan yang disediakan di atas sudah lebih dari cukup untuk mendapat pemahaman terhadap Pygame. Selain itu, jika kamu menjalankan semua bahan tersebut, kamu akan sudah membuat banyak game. Tapi, saya sarankan kamu membuat game kamu sendiri, buat yang lebih dari Tic-Tac-Toe atau Concentration. Semua orang bisa mengikuti tutorial untuk membuat game. Biarkan kreatifitas kamu mengalir dan uji kemampuan kamu dengan membangun game orisinil.
Tip Pengembangan
Gunakan Group
Pygame memiliki fitur yang canggih bernama group, melalui kelas pygame.sprite.Group
. Sebuah grup adalah kontainer untuk objek sprite.
Contohnya, jika saya membuat banyak sprite Bullet
, saya bisa menambahkannya ke dalam grup bernama bullets
.
bullets = pygame.sprite.Group() for i in range (10): bullets.add(Bullet())
Bekerja dengan grup lebih cepat daripada bekerja dengan sprite individu. Kamu cukup memanggil Group.update()
untuk mengupdate semua sprite dalam grup, atau Group.draw()
untuk mem-blit isi dari Group
ke Surface
. Selain itu, grup membuat deteksi tabrakan lebih mudah, karena Pygame memiliki fungsi untuk memeriksa tabrakan antar dua grup: pygame.sprite.groupcollide()
.
Mengubah permukaanmu
Pastikan kamu mengubah serbuah Surface
setiap kamu membuat Surface baru dengan memanggil fungsi convert()
. Fungsi ini mengubah format pixel dari sebuah Surface
agar cocok dengan tampilan Surface
. Jika fungsi ni tidak dipanggil, konversi piksel akan dilakukan setiap kamu melakukan blit pada Surface
, operasi yang sangat lambat.
Contohnya, daripada:
ballPicture = pygame.image.load('ball.png')
panggil:
ballPicture = pygame.image.load('ball.png').convert()
atau jika kamu perlu mengatur alpha:
ballPicture = pygame.image.load('ball.png').convert_alpha()
Perhatikan bahwa convert_alpha()
tidak menghasilkan performa yang sama seperti convert()
, karena format pixel bukan padanan tepat dari layar Surface
. Walaupun begitu, akan dihasilkan kecepatan blit yang lebih baik.
Update vs Flip
Baik pygame.display.update()
dan pygame.display.flip()
memperbarui isi dari layar permainan. Tapi memanggil fungsi ini untuk keseluruhan layar akan memberatkan permainan. Pertimbangkan untuk memperbarui hanya bagian tertentu dari layar (yang mengalami perubahan) dengan memanggil pygame.display.update()
dan melempar sebuah rect
yang mewakili area yang perlu diupdate ke dalam fungsi ini. Dengan melakukan ini, kamu akan melihat performa yang jauh lebih baik.
Perhatikan bahwa terkadang, keseluruhan layar perlu dupdate, dan dalam kondisi seperti ini kedua fungsi akan bekerja dengan baik.
Modul tambahan
Ingat bahwa Pygame memiliki komunitas besar yang siap membantu. Saya sarankan kamu memanfaatkan komunitas ini dengan mengunduh modul tambahan yang dibuat oleh anggota komunitasnya. Modul-modul ini akan membantu memfasilitasi pengembangan cepat game kamu dan mempermudah proses pembuatan game.
Favorit saya diantaranya:
- Pyganim: Mempermudah untuk menambahkan animasi ke dalam game
- input.py: Menyederhanakan pengaturan kontrol dalam Pygame saat digunakan menggunakan lebih dari satu fungsi controller
- Python Game Utilities: Koleksi besar utilitas Pygame
Kamu bisa menemukan lebih banyak library di website Pygame.
Game yang bisa dimainkan
Jika kamu ingin game kamu benar-benar cross platform, kamu perlu mempertimbangkan skenario di mana pengguna tidak memiliki Python dan Pygamem terinstall di mesin mereka.
Pertimbangkan untuk menggunakan ekstensi py2exe untuk membuat executable untuk Window, dan py2app untuk membuat aplikasi untuk Mac OS X.
Galeri
Pygame tidak banyak digunakan untuk game komersial, karena Python tidak dikenkal untuk kapabilitas game developmentnya. Walau begitu, Pygame sudah digunakan untuk membuat banyak game independen yang sukses:
Galcon
Galcon adalah permainan multiplayer action-strategy bertema luar angkasa, dan mungkin merupakan game paling sukses dengan Pygame. Galcon menerima penghargaan sebagai Top 10 Game of the Year di 2007 dari GameTunnel, salah satu situs review game indie pertama.



Frets on Fire
Frets on Fire, klon Guitar Hero open source ini dibuat dengan Pygame sebagai entri untuk Assembly 2006 Game Development Competition dari Unreal Voodoo.



Dangerous High School Girls in Trouble!
Game role-playing dengan banyak penghargaan berjudul Dangerous High School Girls in Trouble!, dibuat oleh developer independen Mousechief, adalah finalis IndieCade 2008.



PyWeek
PyWeek adalah programming challenge setahun dua kali yang hanya menerima game yang dibuat dengan Python. Jadi, banyak game yang dibuat dengan Pygame. Daftar pemenangnya bisa dilihat di website Pyweek.



Kesimpulan
Dalam post ini, saya memberikan pengenalan ke pengembangan game dengan Python dan Pygame. Saya harap saya berhasil membuat kamu tertarik dengan Pygame dan mengajarkan kamu lebih banyak tentangnya. Jangan ragu untuk bertanya di sini atau di banyak forum Pygame. Kamu sekarang sudah siap memulai perjalanan ke dalam dunia Pygame. Semoga beruntung!
Subscribe below and we’ll send you a weekly email summary of all new Game Development tutorials. Never miss out on learning about the next big thing.
Update me weekly