Skip to content

Cara Membuat Mini Konsol Retro Game DIY (Pong & Tetris)

Bawa Kembali Sensasi Game Arkade Klasik

Bagi generasi yang tumbuh di era 80-an atau 90-an, game seperti Pong, Snake, dan Tetris memiliki tempat tersendiri di hati. Di tahun 2026, di tengah gempuran game dengan grafis 3D yang realistis, game grafis piksel sederhana tetap memiliki daya tarik tersendiri karena aspek mekanik permainannya yang adiktif.

Dalam tutorial ini, kita akan merakit sebuah Mini Konsol Retro portabel berbasis Arduino yang murah, menyenangkan, dan sangat mendidik untuk mengasah kemampuan logika pemrograman game Anda.

Komponen yang Diperlukan

  • Arduino Nano (Ringkas dan hemat daya).
  • Layar OLED 0.96 inch (SSD1306) (Menggunakan komunikasi I2C).
  • 4x Push Button (Untuk kontrol Arah: Atas, Bawah, Kiri, Kanan) atau Modul Analog Joystick.
  • 1x Push Button (Untuk tombol Action/Select).
  • Buzzer Pasif (Untuk efek suara 8-bit yang ikonik).
  • Baterai Li-ion 3.7V + Modul Step-Up 5V (Agar konsol bisa dibawa-bawa).

Desain Antarmuka Layar OLED

Layar OLED $128 \times 64$ piksel akan dibagi menjadi area koordinat $X$ dan $Y$. Menggunakan library grafis, kita dapat menggambar kotak kecil sebagai balok Tetris atau garis vertikal sebagai papan pemukul pada game Pong. Kecepatan refresh rate Arduino Nano cukup mumpuni untuk merender game 2D sederhana ini tanpa lag yang berarti.

Skema Perkabelan Utama

  1. Layar OLED: VCC ke 5V, GND ke GND, SDA ke Pin A4, SCL ke Pin A5.
  2. Tombol Kontrol: Hubungkan masing-masing pin input tombol ke Pin D2, D3, D4, dan D5 dengan konfigurasi INPUT_PULLUP.
  3. Buzzer: Hubungkan ke Pin D6 untuk menghasilkan nada via fungsi tone().

Logika Kode Program Dasar (Contoh Gerakan Balok)

Untuk membuat game utuh, Anda bisa menginstal library siap pakai seperti Arduboy2 atau menulis logika manual menggunakan Adafruit_SSD1306. Berikut adalah kerangka logika dasar untuk membaca input kontrol:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display(128, 64, &Wire, -1);
int posX = 64; // Posisi awal objek di tengah layar

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  pinMode(2, INPUT_PULLUP); // Tombol Kiri
  pinMode(3, INPUT_PULLUP); // Tombol Kanan
}

void loop() {
  if (digitalRead(2) == LOW) posX -= 2; // Bergerak ke kiri
  if (digitalRead(3) == LOW) posX += 2; // Bergerak ke kanan

  // Batasi agar tidak keluar layar
  posX = constrain(posX, 0, 120);

  display.clearDisplay();
  display.fillRect(posX, 50, 15, 4, WHITE); // Gambar papan pemukul Pong
  display.display();
  delay(30);
}

Pembuatan Casing Portabel

Agar menyerupai konsol genggam (handheld) sungguhan, Anda bisa:

  1. Menggunakan 3D Printing: Cetak bodi kustom dengan lubang ergonomis untuk tombol dan layar.
  2. Menggunakan Akrilik: Potong lembaran akrilik transparan menggunakan laser cutting untuk memberikan kesan retro-futuristik di mana komponen bagian dalam terlihat jelas.

Kesimpulan

Membuat game dari nol pada mikrokontroler dengan memori terbatas mengajarkan kita arti efisiensi kode program. Proyek ini tidak hanya menghasilkan mainan baru yang seru, tetapi juga memberikan pemahaman mendalam tentang bagaimana konsol game generasi awal bekerja.