SlideShare a Scribd company logo
1 of 24
Mobile Game Developer War 4: Online Camp




MGDW4 Online Camp #2

 Game Loop, Game Logic, dan
        Game Input
Mobile Game Developer War 4: Online Camp


               Definisi



Potongan kode utama yang dijalankan terus
               menerus.
Mobile Game Developer War 4: Online Camp

Contoh Game Loop
sederhana
Mobile Game Developer War 4: Online Camp

Contoh game loop   public void run() {
pada J2ME            //Inisialisasi variable yang hanya dibuat1x
                     while (gameIsRun) {
                            //Berisi fungsi-fungsi yang dipanggil
                     agar game berjalan
                            getInput();
                            update();
                            draw();
                            flushGraphics();
                            try {
                                       Thread.sleep(30);
                            }catch (InterruptedException ie) {
                            }
                     }
                   }
Mobile Game Developer War 4: Online Camp




Game Logic
Mobile Game Developer War 4: Online Camp


           Definisi



Implementasi game design menjadi
     algoritma pemrograman.
Mobile Game Developer War 4: Online Camp


Contoh: Minesweeper
    • Tampilkan semua kotak tergantung
      statusnya
       – Tertutup, terbuka kosong, terbuka
         berisi, ditandai bendera
    • Acak posisi bom
    • Hitung nilai petunjuk di setiap kotak
    • Jika ada kotak yang dibuka,
      tampilkan isinya
       – Jika ternyata kosong, buka kotak di
         sekitarnya
    • Game selesai kalau semua kotak
      yang bukan bom sudah terbuka
Mobile Game Developer War 4: Online Camp


                   Contoh: Pong
• Tampilkan skor, paddle, dan bola
• Bola:
   – Bola bergerak dengan kecepatan
     tertentu
   – Bola memantul ke tembok dan paddle
• Gameplay
   – Jika bola lewat sisi kanan/kiri, maka
     skor untuk pemain di sisi berlawanan
• Input:
   – Jika ada input pemain A, gerakkan
     paddle A
   – Jika ada input pemain B, gerakkan
     paddle B
Mobile Game Developer War 4: Online Camp


Contoh: Magic Cups
  • Acak posisi bola
  • Jika pemain memilih gelas
    tertentu, buka dan tampilkan
    isinya
Mobile Game Developer War 4: Online Camp




WAKTUNYA PRAKTEK!
Mobile Game Developer War 4: Online Camp


                                Game Input
   •   Menerima input keypad dari pemain           public void run() {
                                                                                            1
                                                     while(true){
   •   Memproses aksi yang bersangkutan                //System.out.println("Testing dulu
                                                   yah...");
private void getInput()                                getInput();
{
                                        2              flushGraphics();
                                                       try {
  int keystate = getKeyStates();                         Thread.sleep(SLEEP_TIME);
  if(keystate == UP_PRESSED){                          } catch (InterruptedException e) {
    System.out.println("UP");                            e.printStackTrace();
  }else if (keystate == LEFT_PRESSED){                 }
    System.out.println("LEFT");                      }
  }else if (keystate == DOWN_PRESSED){
                                                   }
    System.out.println("DOWN");
  }else if (keystate == RIGHT_PRESSED){
    System.out.println("RIGHT");
  }
}

Catatan: kemungkinan besar input akan terdeteksi lebih dari satu kali,
karena Update() dipanggil beberapa kali dalam waktu yang singkat.
Error ini akan kita tangani di materi berikutnya.

                                                                                                3
Mobile Game Developer War 4: Online Camp


    Bedah Game Magic Cups
• Visual:
  – Tiga buah gelas (tertutup dan terbuka)
  – *untuk praktek pertama kita menggunakan
    text saja
• Data penting
  – Posisi bola (di balik gelas)
  – Pilihan pemain
Mobile Game Developer War 4: Online Camp


                   Magic Cups Logic
public static int SLEEP_TIME = 1000/30;
int posisiBola;
                                          • Init
int pilihanPemain;                            – Inisialisasi objek penting
Random r;
boolean gameover;                         • AcakBola
boolean sudahJawab;
                                              – Mengacak variabel
protected MainCanvas() {             1          posisiBola
public void run() {
                                          • PilihGelas
  init();                                     – Meminta pemain memilih
  acakBola();
  pilihGelas();
                                                gelas
  while(!gameover){
    getInput();
                                          • CekPilihanPemain
    cekPilihanPemain();                       – Jika pemain sudah memilih,
    flushGraphics();
    try {
                                                beri tahu hasilnya
      Thread.sleep(SLEEP_TIME);
    } catch (InterruptedException e) {                                    Penting! Jangan lupa
      e.printStackTrace();                                                menambahkan import
    }                                                                     untuk objek Random.
  }                                       import javax.microedition.lcdui.game.GameCanvas;
  System.out.println("Game over.");       import javax.microedition.lcdui.Graphics;
}                                    2    import java.util.Random;                          3
Mobile Game Developer War 4: Online Camp


         Fungsi-fungsi yang dibuat
• Init
    – Inisialisasi objek penting             private void init(){
                                                                       1
• AcakBola                                     r = new Random();
                                               gameover = false;
    – Mengacak variabel posisiBola             sudahJawab = false;
• PilihGelas                                 }
                                               pilihanPemain = -1;

    – Meminta pemain memilih gelas


private void acakBola(){                         2
  posisiBola = r.nextInt(3); //0-2
  //System.out.println("Posisi bola: "+posisiBola);
}

private void pilihGelas(){
  System.out.println("[ ] [ ] [ ]");
                                                                   3
  System.out.println("Tebak bola ada di mana.");
  System.out.println("Tekan kiri, atas, atau kanan untuk menebak!");
}                                2
Mobile Game Developer War 4: Online Camp


           Fungsi-fungsi yang dibuat
• CekPilihanPemain
     – Jika pemain sudah memilih, beri tahu hasilnya
private void cekPilihanPemain(){
  if(sudahJawab)                                                      1
  {
    //cek jawaban
    if(pilihanPemain == posisiBola)
    {
      System.out.println("Selamat! Tebakan anda benar!");
    }else{
      System.out.println("Sayang sekali tebakan anda salah! :(");
    }
                                                    private void gambarHasil() {
    gambarHasil();
                                                      if(posisiBola==0){                                2
    gameover=true;                                      System.out.println("[o] [ ] [ ]");
  }                                                     System.out.println("Bola ada di kiri");
}                                                     }
                                                          else if(posisiBola==1){
                                                            System.out.println("[ ] [o] [ ]");
                                                            System.out.println("Bola ada di tengah");
                                                          }
                                                          else if(posisiBola==2){
                                                            System.out.println("[ ] [ ] [o]");
                                                            System.out.println("Bola ada di kanan");
                                                          }
                                                      }
Mobile Game Developer War 4: Online Camp


           Fungsi yang diubah
• Update fungsi getInput()
  untuk menerima kiri, atas,   private void getInput()
                               {
  dan kanan sebagai              int keystate = getKeyStates();
                                 if(!sudahJawab){
  jawaban                          if (keystate == LEFT_PRESSED){
                                     //System.out.println("LEFT");
                                     pilihanPemain =0;
                                     sudahJawab=true;
                                   }else if(keystate == UP_PRESSED){
                                     //System.out.println("UP");
                                     pilihanPemain =1;
                                     sudahJawab=true;
                                   }else if (keystate == RIGHT_PRESSED){
                                     //System.out.println("RIGHT");
                                     pilihanPemain =2;
                                     sudahJawab=true;
                                   }
                                 }

                               }
Mobile Game Developer War 4: Online Camp


                 Hasil
Jawaban salah.             Jawaban benar.




Namun game baru berjalan sekali saja.
Mobile Game Developer War 4: Online Camp




Buat permainan bisa dimainkan terus
            menerus.
Mobile Game Developer War 4: Online Camp


                                   Solusi
private void cekPilihanPemain(){
  if(sudahJawab)                          1
  {                                                public void run() {
    //cek jawaban                                    init();
    if(pilihanPemain == posisiBola)                  acakBola();
    {                                                pilihGelas();
      System.out.println("Selamat!                   while(!gameover){
Tebakan anda benar!");                                 getInput();           resetGame()
    }else{                                             cekPilihanPemain();
      System.out.println("Sayang sekali                flushGraphics();
tebakan anda salah! :(");                              try {
    }                                                    Thread.sleep(SLEEP_TIME);
    gambarHasil();                                     } catch (InterruptedException e) {
    //gameover=true;                                     e.printStackTrace();
    resetGame();                                       }
  }                                                  }
}                                                    System.out.println("Game over.");
                                                   }


private void resetGame() {
  acakBola();
  pilihGelas();                           Catatan: error pada slide 11 (Game
  pilihanPemain=-1;                       Input) akan masih terjadi, kita akan
  sudahJawab=false;                       perbaiki di Materi berikutnya.
}                       2
Mobile Game Developer War 4: Online Camp




          Catatan: error pada slide 11 (Game
          Input) akan masih terjadi, kita akan
          perbaiki di Materi berikutnya.
Mobile Game Developer War 4: Online Camp




Finish mini quest to get exp!

MINI QUEST
Mobile Game Developer War 4: Online Camp


 Quest (Tantangan tambahan!)
1. Review sebuah game, dan jelaskan
   game logic dari game tersebut (bebas,
   kecuali game yang sudah dibahas di
   materi ini)!
Mobile Game Developer War 4: Online Camp


   Cara menyelesaikan Quest
1. Tulis jawaban pada email, atau dokumen
   word / open office (jika menggunakan
   gambar), dengan format nama file, nama-
   materikeberapa.doc
  – Contoh: Danang-materi2.doc
2. Kirim email ke:
   quest@agateacademy.com
3. Gunakan subject “Quest Online Camp
   02”
Mobile Game Developer War 4: Online Camp




• Untuk menyelesaikan materi, kunjungi
  http://bit.ly/NxI8aZ

• Untuk pertanyaan atau diskusi, bisa
  dilakukan via forum:
  http://bit.ly/mgdw4forum

More Related Content

More from Agate Studio

Wp quality bar tedy
Wp quality bar   tedyWp quality bar   tedy
Wp quality bar tedyAgate Studio
 
Lee marvin pitching-hacks
Lee marvin pitching-hacksLee marvin pitching-hacks
Lee marvin pitching-hacksAgate Studio
 
Emotiv EPOC by Neneng
Emotiv EPOC by NenengEmotiv EPOC by Neneng
Emotiv EPOC by NenengAgate Studio
 
Aksi – Koneksi – Deviasi by Valent
Aksi – Koneksi – Deviasi by ValentAksi – Koneksi – Deviasi by Valent
Aksi – Koneksi – Deviasi by ValentAgate Studio
 
MMO Design Architecture by Andrew
MMO Design Architecture by AndrewMMO Design Architecture by Andrew
MMO Design Architecture by AndrewAgate Studio
 
How to Persuade People by Dave
How to Persuade People by DaveHow to Persuade People by Dave
How to Persuade People by DaveAgate Studio
 
Eddie supersmash goodminton
Eddie   supersmash goodmintonEddie   supersmash goodminton
Eddie supersmash goodmintonAgate Studio
 
Satriyo digital audio gears
Satriyo   digital audio gearsSatriyo   digital audio gears
Satriyo digital audio gearsAgate Studio
 
Yinan heroes of-the_strom
Yinan   heroes of-the_stromYinan   heroes of-the_strom
Yinan heroes of-the_stromAgate Studio
 
Advanced encryption standard (aes) epul
Advanced encryption standard (aes)   epulAdvanced encryption standard (aes)   epul
Advanced encryption standard (aes) epulAgate Studio
 
Real Time Framework by Tonny
Real Time Framework by TonnyReal Time Framework by Tonny
Real Time Framework by TonnyAgate Studio
 
Unity Camera & Simple Image Editing by Puthut
Unity Camera & Simple Image Editing by PuthutUnity Camera & Simple Image Editing by Puthut
Unity Camera & Simple Image Editing by PuthutAgate Studio
 
Hibernate by Jason
Hibernate by JasonHibernate by Jason
Hibernate by JasonAgate Studio
 
Hardening Apache Web Server by Aswin
Hardening Apache Web Server by AswinHardening Apache Web Server by Aswin
Hardening Apache Web Server by AswinAgate Studio
 
Introduction to Global Illumination by Aryo
Introduction to Global Illumination by AryoIntroduction to Global Illumination by Aryo
Introduction to Global Illumination by AryoAgate Studio
 
Mobile Games Store by Valen
Mobile Games Store by ValenMobile Games Store by Valen
Mobile Games Store by ValenAgate Studio
 
Characteristics of Musical Keys by Satriyo
Characteristics of Musical Keys by SatriyoCharacteristics of Musical Keys by Satriyo
Characteristics of Musical Keys by SatriyoAgate Studio
 
Idol Cardgame by Naky
Idol Cardgame by NakyIdol Cardgame by Naky
Idol Cardgame by NakyAgate Studio
 

More from Agate Studio (20)

Wp quality bar tedy
Wp quality bar   tedyWp quality bar   tedy
Wp quality bar tedy
 
Toku DB by Aswin
Toku DB by AswinToku DB by Aswin
Toku DB by Aswin
 
Lee marvin pitching-hacks
Lee marvin pitching-hacksLee marvin pitching-hacks
Lee marvin pitching-hacks
 
Emotiv EPOC by Neneng
Emotiv EPOC by NenengEmotiv EPOC by Neneng
Emotiv EPOC by Neneng
 
Aksi – Koneksi – Deviasi by Valent
Aksi – Koneksi – Deviasi by ValentAksi – Koneksi – Deviasi by Valent
Aksi – Koneksi – Deviasi by Valent
 
MMO Design Architecture by Andrew
MMO Design Architecture by AndrewMMO Design Architecture by Andrew
MMO Design Architecture by Andrew
 
How to Persuade People by Dave
How to Persuade People by DaveHow to Persuade People by Dave
How to Persuade People by Dave
 
Eddie supersmash goodminton
Eddie   supersmash goodmintonEddie   supersmash goodminton
Eddie supersmash goodminton
 
Satriyo digital audio gears
Satriyo   digital audio gearsSatriyo   digital audio gears
Satriyo digital audio gears
 
Yinan heroes of-the_strom
Yinan   heroes of-the_stromYinan   heroes of-the_strom
Yinan heroes of-the_strom
 
Advanced encryption standard (aes) epul
Advanced encryption standard (aes)   epulAdvanced encryption standard (aes)   epul
Advanced encryption standard (aes) epul
 
Real Time Framework by Tonny
Real Time Framework by TonnyReal Time Framework by Tonny
Real Time Framework by Tonny
 
Unity Camera & Simple Image Editing by Puthut
Unity Camera & Simple Image Editing by PuthutUnity Camera & Simple Image Editing by Puthut
Unity Camera & Simple Image Editing by Puthut
 
Hibernate by Jason
Hibernate by JasonHibernate by Jason
Hibernate by Jason
 
Hardening Apache Web Server by Aswin
Hardening Apache Web Server by AswinHardening Apache Web Server by Aswin
Hardening Apache Web Server by Aswin
 
Introduction to Global Illumination by Aryo
Introduction to Global Illumination by AryoIntroduction to Global Illumination by Aryo
Introduction to Global Illumination by Aryo
 
Mobile Games Store by Valen
Mobile Games Store by ValenMobile Games Store by Valen
Mobile Games Store by Valen
 
Characteristics of Musical Keys by Satriyo
Characteristics of Musical Keys by SatriyoCharacteristics of Musical Keys by Satriyo
Characteristics of Musical Keys by Satriyo
 
Nelson easter egg
Nelson easter eggNelson easter egg
Nelson easter egg
 
Idol Cardgame by Naky
Idol Cardgame by NakyIdol Cardgame by Naky
Idol Cardgame by Naky
 

Recently uploaded

AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTXAKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTXIksanSaputra6
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxDedeRosza
 
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024RoseMia3
 
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHANTUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHANwawan479953
 
Program Kerja Public Relations - Perencanaan
Program Kerja Public Relations - PerencanaanProgram Kerja Public Relations - Perencanaan
Program Kerja Public Relations - PerencanaanAdePutraTunggali
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxDEAAYUANGGREANI
 
Materi Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxMateri Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxSaujiOji
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024ssuser0bf64e
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxJuliBriana2
 
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...Kanaidi ken
 
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxPPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxriscacriswanda
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptnovibernadina
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfWidyastutyCoyy
 
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxModul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxRIMA685626
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxdeskaputriani1
 
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptxSusanSanti20
 
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024editwebsitesubdit
 
AKSI NYATA Numerasi Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
AKSI NYATA  Numerasi  Meningkatkan Kompetensi Murid_compressed (1) (1).pptxAKSI NYATA  Numerasi  Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
AKSI NYATA Numerasi Meningkatkan Kompetensi Murid_compressed (1) (1).pptxnursariheldaseptiana
 
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfProv.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfIwanSumantri7
 
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdfAndiCoc
 

Recently uploaded (20)

AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTXAKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
 
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
 
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHANTUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
 
Program Kerja Public Relations - Perencanaan
Program Kerja Public Relations - PerencanaanProgram Kerja Public Relations - Perencanaan
Program Kerja Public Relations - Perencanaan
 
PPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptxPPT Mean Median Modus data tunggal .pptx
PPT Mean Median Modus data tunggal .pptx
 
Materi Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxMateri Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptx
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
 
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
 
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxPPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptxModul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
Modul Projek Bangunlah Jiwa dan Raganya - Damai Belajar Bersama - Fase C.pptx
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
 
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
 
AKSI NYATA Numerasi Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
AKSI NYATA  Numerasi  Meningkatkan Kompetensi Murid_compressed (1) (1).pptxAKSI NYATA  Numerasi  Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
AKSI NYATA Numerasi Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
 
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfProv.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
 
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
 

MGDW4 Online Camp #2 (Game loop, game logic, dan game input)

  • 1. Mobile Game Developer War 4: Online Camp MGDW4 Online Camp #2 Game Loop, Game Logic, dan Game Input
  • 2. Mobile Game Developer War 4: Online Camp Definisi Potongan kode utama yang dijalankan terus menerus.
  • 3. Mobile Game Developer War 4: Online Camp Contoh Game Loop sederhana
  • 4. Mobile Game Developer War 4: Online Camp Contoh game loop public void run() { pada J2ME //Inisialisasi variable yang hanya dibuat1x while (gameIsRun) { //Berisi fungsi-fungsi yang dipanggil agar game berjalan getInput(); update(); draw(); flushGraphics(); try { Thread.sleep(30); }catch (InterruptedException ie) { } } }
  • 5. Mobile Game Developer War 4: Online Camp Game Logic
  • 6. Mobile Game Developer War 4: Online Camp Definisi Implementasi game design menjadi algoritma pemrograman.
  • 7. Mobile Game Developer War 4: Online Camp Contoh: Minesweeper • Tampilkan semua kotak tergantung statusnya – Tertutup, terbuka kosong, terbuka berisi, ditandai bendera • Acak posisi bom • Hitung nilai petunjuk di setiap kotak • Jika ada kotak yang dibuka, tampilkan isinya – Jika ternyata kosong, buka kotak di sekitarnya • Game selesai kalau semua kotak yang bukan bom sudah terbuka
  • 8. Mobile Game Developer War 4: Online Camp Contoh: Pong • Tampilkan skor, paddle, dan bola • Bola: – Bola bergerak dengan kecepatan tertentu – Bola memantul ke tembok dan paddle • Gameplay – Jika bola lewat sisi kanan/kiri, maka skor untuk pemain di sisi berlawanan • Input: – Jika ada input pemain A, gerakkan paddle A – Jika ada input pemain B, gerakkan paddle B
  • 9. Mobile Game Developer War 4: Online Camp Contoh: Magic Cups • Acak posisi bola • Jika pemain memilih gelas tertentu, buka dan tampilkan isinya
  • 10. Mobile Game Developer War 4: Online Camp WAKTUNYA PRAKTEK!
  • 11. Mobile Game Developer War 4: Online Camp Game Input • Menerima input keypad dari pemain public void run() { 1 while(true){ • Memproses aksi yang bersangkutan //System.out.println("Testing dulu yah..."); private void getInput() getInput(); { 2 flushGraphics(); try { int keystate = getKeyStates(); Thread.sleep(SLEEP_TIME); if(keystate == UP_PRESSED){ } catch (InterruptedException e) { System.out.println("UP"); e.printStackTrace(); }else if (keystate == LEFT_PRESSED){ } System.out.println("LEFT"); } }else if (keystate == DOWN_PRESSED){ } System.out.println("DOWN"); }else if (keystate == RIGHT_PRESSED){ System.out.println("RIGHT"); } } Catatan: kemungkinan besar input akan terdeteksi lebih dari satu kali, karena Update() dipanggil beberapa kali dalam waktu yang singkat. Error ini akan kita tangani di materi berikutnya. 3
  • 12. Mobile Game Developer War 4: Online Camp Bedah Game Magic Cups • Visual: – Tiga buah gelas (tertutup dan terbuka) – *untuk praktek pertama kita menggunakan text saja • Data penting – Posisi bola (di balik gelas) – Pilihan pemain
  • 13. Mobile Game Developer War 4: Online Camp Magic Cups Logic public static int SLEEP_TIME = 1000/30; int posisiBola; • Init int pilihanPemain; – Inisialisasi objek penting Random r; boolean gameover; • AcakBola boolean sudahJawab; – Mengacak variabel protected MainCanvas() { 1 posisiBola public void run() { • PilihGelas init(); – Meminta pemain memilih acakBola(); pilihGelas(); gelas while(!gameover){ getInput(); • CekPilihanPemain cekPilihanPemain(); – Jika pemain sudah memilih, flushGraphics(); try { beri tahu hasilnya Thread.sleep(SLEEP_TIME); } catch (InterruptedException e) { Penting! Jangan lupa e.printStackTrace(); menambahkan import } untuk objek Random. } import javax.microedition.lcdui.game.GameCanvas; System.out.println("Game over."); import javax.microedition.lcdui.Graphics; } 2 import java.util.Random; 3
  • 14. Mobile Game Developer War 4: Online Camp Fungsi-fungsi yang dibuat • Init – Inisialisasi objek penting private void init(){ 1 • AcakBola r = new Random(); gameover = false; – Mengacak variabel posisiBola sudahJawab = false; • PilihGelas } pilihanPemain = -1; – Meminta pemain memilih gelas private void acakBola(){ 2 posisiBola = r.nextInt(3); //0-2 //System.out.println("Posisi bola: "+posisiBola); } private void pilihGelas(){ System.out.println("[ ] [ ] [ ]"); 3 System.out.println("Tebak bola ada di mana."); System.out.println("Tekan kiri, atas, atau kanan untuk menebak!"); } 2
  • 15. Mobile Game Developer War 4: Online Camp Fungsi-fungsi yang dibuat • CekPilihanPemain – Jika pemain sudah memilih, beri tahu hasilnya private void cekPilihanPemain(){ if(sudahJawab) 1 { //cek jawaban if(pilihanPemain == posisiBola) { System.out.println("Selamat! Tebakan anda benar!"); }else{ System.out.println("Sayang sekali tebakan anda salah! :("); } private void gambarHasil() { gambarHasil(); if(posisiBola==0){ 2 gameover=true; System.out.println("[o] [ ] [ ]"); } System.out.println("Bola ada di kiri"); } } else if(posisiBola==1){ System.out.println("[ ] [o] [ ]"); System.out.println("Bola ada di tengah"); } else if(posisiBola==2){ System.out.println("[ ] [ ] [o]"); System.out.println("Bola ada di kanan"); } }
  • 16. Mobile Game Developer War 4: Online Camp Fungsi yang diubah • Update fungsi getInput() untuk menerima kiri, atas, private void getInput() { dan kanan sebagai int keystate = getKeyStates(); if(!sudahJawab){ jawaban if (keystate == LEFT_PRESSED){ //System.out.println("LEFT"); pilihanPemain =0; sudahJawab=true; }else if(keystate == UP_PRESSED){ //System.out.println("UP"); pilihanPemain =1; sudahJawab=true; }else if (keystate == RIGHT_PRESSED){ //System.out.println("RIGHT"); pilihanPemain =2; sudahJawab=true; } } }
  • 17. Mobile Game Developer War 4: Online Camp Hasil Jawaban salah. Jawaban benar. Namun game baru berjalan sekali saja.
  • 18. Mobile Game Developer War 4: Online Camp Buat permainan bisa dimainkan terus menerus.
  • 19. Mobile Game Developer War 4: Online Camp Solusi private void cekPilihanPemain(){ if(sudahJawab) 1 { public void run() { //cek jawaban init(); if(pilihanPemain == posisiBola) acakBola(); { pilihGelas(); System.out.println("Selamat! while(!gameover){ Tebakan anda benar!"); getInput(); resetGame() }else{ cekPilihanPemain(); System.out.println("Sayang sekali flushGraphics(); tebakan anda salah! :("); try { } Thread.sleep(SLEEP_TIME); gambarHasil(); } catch (InterruptedException e) { //gameover=true; e.printStackTrace(); resetGame(); } } } } System.out.println("Game over."); } private void resetGame() { acakBola(); pilihGelas(); Catatan: error pada slide 11 (Game pilihanPemain=-1; Input) akan masih terjadi, kita akan sudahJawab=false; perbaiki di Materi berikutnya. } 2
  • 20. Mobile Game Developer War 4: Online Camp Catatan: error pada slide 11 (Game Input) akan masih terjadi, kita akan perbaiki di Materi berikutnya.
  • 21. Mobile Game Developer War 4: Online Camp Finish mini quest to get exp! MINI QUEST
  • 22. Mobile Game Developer War 4: Online Camp Quest (Tantangan tambahan!) 1. Review sebuah game, dan jelaskan game logic dari game tersebut (bebas, kecuali game yang sudah dibahas di materi ini)!
  • 23. Mobile Game Developer War 4: Online Camp Cara menyelesaikan Quest 1. Tulis jawaban pada email, atau dokumen word / open office (jika menggunakan gambar), dengan format nama file, nama- materikeberapa.doc – Contoh: Danang-materi2.doc 2. Kirim email ke: quest@agateacademy.com 3. Gunakan subject “Quest Online Camp 02”
  • 24. Mobile Game Developer War 4: Online Camp • Untuk menyelesaikan materi, kunjungi http://bit.ly/NxI8aZ • Untuk pertanyaan atau diskusi, bisa dilakukan via forum: http://bit.ly/mgdw4forum

Editor's Notes

  1. Game Loop merupakan jantung dari sebuah game. Biasanya Game Loop menangani user input, update game state, menangani AI, memainkan musik dan sound effect, dan menampilkan display game.
  2. Bikin beberapa contoh game loop dan hal yang dilakukan: pong, minesweeper
  3. Contoh game loop yang general
  4. Prosesmemasukkanide game kedalamsebuahmekanikapermainanseringdisebutjuga Game Logic.Dimana game logic inimengaturbagaimanamekanisme game terbentuk. Mulaidaribagaimana char bergerak, melompat, bertemumusuh, highscore, dan lain – lain. Bahkanuntuk game puzzle, game logic lebihfokusterhadap problem solving.Misalnyapada game Sudoku, kitafokuskepadabagaimanamelakukanpengecekanterhadap angka yang kitamasukkankedalamkotak, cekapakahada angka yang samadalamsatukolomataubarisdancekapakahdalamkotak 3x3 ada angka yang samaatautidak.