Minggu, 11 Januari 2026

Pemrograman Game C++ untuk Pemula Belajar C++ dari Nol dengan Membuat Game yang Seru Jilid 2

 

Bab 1, Deteksi Tumbukan AABB dan Fisika: Menyelesaikan Game Pong. Di bab ini, kita akan menulis kelas kedua. Walaupun bola dan pemukul (bat) memiliki karakteristik yang berbeda, kita akan menggunakan pendekatan yang sama untuk mengenkapsulasi tampilan dan fungsinya ke dalam kelas Ball, sebagaimana kita lakukan dengan kelas Bat. Setelah itu, kita akan menambahkan penyempurnaan akhir pada game Pong, termasuk kode untuk deteksi tumbukan dan perhitungan skor. Meskipun terdengar rumit, SFML akan sangat membantu menyederhanakan prosesnya.

Bab 2, SFML Views: Memulai Game Zombie Shooter. Dalam proyek ini, kita akan semakin banyak menggunakan konsep OOP dan memanfaatkannya dengan lebih kuat. Kita juga akan mempelajari kelas SFML View, yang memungkinkan kita membagi game ke dalam beberapa lapisan untuk aspek yang berbeda. Dalam proyek Zombie Shooter, akan ada satu lapisan untuk HUD dan satu lapisan untuk game utama. Hal ini penting karena dunia game akan terus meluas setiap kali pemain menyelesaikan satu gelombang zombie. Pada akhirnya, ukuran dunia game akan lebih besar dari layar, sehingga pemain perlu menggulir tampilan. Dengan View class, teks HUD akan tetap berada di posisi yang benar tanpa ikut bergulir bersama latar belakang.

Bab 3, Referensi C++, Sprite Sheet, dan Vertex Array. Pada Bab 4, Loop, Array, Switch, Enumerasi, dan Fungsi – Menerapkan Mekanika Game, kita membahas tentang scope, yaitu konsep bahwa variabel yang dideklarasikan di dalam fungsi atau blok kode hanya dapat digunakan di area tersebut. Dengan pengetahuan C++ yang kita miliki sejauh ini, hal ini bisa menimbulkan kendala. Misalnya, bagaimana jika kita perlu mengakses beberapa objek kompleks yang dibutuhkan di dalam fungsi utama? Ini seolah memaksa seluruh kode berada di fungsi main.
Dalam bab ini, kita akan mempelajari reference di C++, yang memungkinkan kita bekerja dengan variabel dan objek di luar scope-nya. Selain itu, reference juga membantu menghindari proses pengiriman objek besar antar fungsi yang cenderung lambat karena membutuhkan salinan baru setiap kali dilakukan. Dengan pemahaman baru tentang reference, kita akan mempelajari kelas SFML VertexArray, yang memungkinkan kita membuat gambar besar yang dapat digambar ke layar dengan cepat dan efisien menggunakan beberapa bagian dari satu berkas gambar. Di akhir bab ini, kita akan memiliki latar belakang yang dapat diskalakan, acak, dan bergulir, yang dibuat menggunakan reference dan objek VertexArray.

Bab 4, Pointer, Standard Template Library, dan Manajemen Tekstur. Di bab ini, kita akan mempelajari banyak hal baru sekaligus menyelesaikan sebagian besar elemen dalam game. Pertama, kita akan mengenal konsep dasar pointer dalam C++. Pointer adalah variabel yang menyimpan alamat memori, biasanya alamat dari variabel lain. Sekilas konsep ini mirip dengan reference, tetapi kita akan melihat bahwa pointer jauh lebih fleksibel dan kuat. Kita akan menggunakan pointer untuk menangani gerombolan zombie yang terus bertambah.
Selain itu, kita juga akan belajar tentang Standard Template Library (STL), yaitu kumpulan kelas yang memungkinkan kita menerapkan berbagai teknik manajemen data dengan cepat dan mudah.

Bab 5, Membuat Kelas TextureHolder dan Membangun Gerombolan Zombie. Setelah memahami dasar STL, kita akan menggunakan pengetahuan tersebut untuk mengelola seluruh tekstur dalam game. Jika terdapat seribu zombie, tentu kita tidak ingin memuat ulang grafik zombie ke GPU untuk masing-masing objek.
Kita juga akan memperdalam konsep OOP dan mempelajari static function
, yaitu fungsi dalam kelas yang dapat dipanggil tanpa membuat instansinya terlebih dahulu. Selain itu, kita akan mendesain kelas agar hanya bisa memiliki satu instans yang aktif. Pendekatan ini berguna ketika berbagai bagian kode perlu menggunakan data yang sama.

Bab 6, Deteksi Tumbukan, Pickups, dan Peluru. Hingga saat ini, kita telah menerapkan berbagai elemen visual utama dalam game: karakter dapat dikendalikan dan bergerak di arena yang dipenuhi zombie. Namun, mereka belum saling berinteraksi; zombie bisa menembus pemain tanpa efek apa pun. Oleh karena itu, kita perlu menambahkan deteksi tumbukan antara zombie dan pemain.
Jika zombie bisa melukai dan membunuh pemain, maka pemain juga harus bisa menembak mereka. Kita akan memastikan peluru dapat mengenai dan mengalahkan zombie. Sekaligus, kita akan menambahkan class
 baru untuk health dan ammo pickups.
Urutan pembahasan dalam bab ini meliputi: menembak peluru, menambahkan crosshair dan menyembunyikan kursor, menampilkan pickups, serta mendeteksi tumbukan antar objek.

Bab 7, Menyusun Tampilan dan Menerapkan HUD. Dalam bab ini, kita akan melihat nilai sebenarnya dari SFML Views. Kita akan menambahkan beberapa objek teks menggunakan SFML Text dan memanipulasinya seperti yang telah kita lakukan pada proyek Timber!!! dan Pong. Hal baru di sini adalah kita akan menggambar HUD menggunakan View kedua. Dengan begitu, HUD akan tetap berada di posisi yang tepat di atas aksi utama permainan, terlepas dari apa pun yang terjadi pada latar belakang, pemain, atau objek lainnya.

Bab 8, Efek Suara, File I/O, dan Penyelesaian Game, Kita hampir menyelesaikan proyek ini. Bab yang singkat ini akan menunjukkan cara memanipulasi berkas di penyimpanan menggunakan C++ Standard Library, sekaligus menambahkan efek suara. Meskipun kita sudah pernah menambahkan suara, di sini akan dijelaskan penempatan yang tepat untuk memanggil fungsi play. Kita juga akan menutup beberapa bagian yang belum sempurna agar game terasa lengkap. Topik yang dibahas meliputi: menyimpan dan memuat skor tertinggi menggunakan file input/output, menambahkan efek suara, menaikkan level pemain, serta menampilkan gelombang zombie baru.

Bab 9, Run!. Selamat datang di proyek terakhir. Run! adalah endless runner di mana tujuan pemain adalah bertahan di depan platform yang menghilang dari belakang. Dalam proyek ini, kita akan mempelajari berbagai teknik baru dalam pemrograman game serta lebih banyak topik C++. Salah satu peningkatan utama dari game ini dibanding proyek sebelumnya adalah pendekatannya yang jauh lebih berorientasi objek. Akan ada banyak kelas tambahan, tetapi masing-masing berkas kode tetap singkat dan mudah dipahami. Kita akan membuat game di mana fungsi dan tampilan semua objek didelegasikan ke kelas-kelas khusus, sehingga game loop utama tidak perlu diubah, apa pun perilaku objek di dalam game. Pendekatan ini sangat kuat karena memungkinkan anda membuat game baru hanya dengan menulis komponen tambahan (kelas) yang menggambarkan perilaku dan tampilan entitas yang diinginkan. Dengan kata lain, struktur kode yang sama dapat digunakan untuk game yang sama sekali berbeda.

Bab 10, Suara, Logika Game, Komunikasi Antar Objek, dan Pemain. Dalam bab ini, kita akan menambahkan suara ke dalam game. Karena kita sudah pernah melakukannya, proses ini akan cepat. Hanya dengan beberapa baris kode, kita juga akan menambahkan musik latar. Nantinya, meskipun bukan di bab ini, kita akan menambahkan directional (spatialized) sound. Semua kode terkait suara akan dikemas dalam satu kelas bernama SoundEngine. Setelah itu, kita akan mulai membangun karakter pemain dengan membuat dua kelas: satu yang menurunkan Update dan satu yang menurunkan Graphics. Pendekatan ini juga akan digunakan untuk membuat berbagai objek lain di sepanjang game. Kita juga akan melihat bagaimana objek dapat saling berkomunikasi dengan mudah menggunakan pointer.

Pemrograman Game C++ untuk Pemula Belajar C++ dari Nol dengan Membuat Game yang Seru Jilid 2
Penulis: 

Dr. Phil. Dony Novaliendry, S.Kom., M.Kom

Tebal Halaman: 311
Ukuran buku: 18 x 25 cm
ISBN: Masih dalam proses

Untuk Pemesanan silahkan klik link di sini atau silahkan klik cover