Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. How to Learn
Gamedevelopment

Bagaimana mulai belajar Pygame

by
Difficulty:BeginnerLength:MediumLanguages:

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:

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.

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:

panggil:

atau jika kamu perlu mengatur 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

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!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.