Game Puzzle Mesin Konstruksi

Jonathan suka sekali bermain puzzle di iPad dan Android. iPad ukurannya besar, dan  tablet Android yang kami miliki (Asus Transformer) juga sama besarnya. Biasanya kami membawa-bawa Playbook ke mana-mana untuk hiburan Jonathan, tapi mainan puzzle anak-anak kurang banyak di Playbook. Jadi saya memutuskan untuk membuatkan game puzzle untuk Jonathan sekaligus aplikasinya dijual.

Tema yang dipilih untuk puzzle pertama ini adalah mesin konstruksi (construction machines). Salah satu alasannya karena Jonathan suka dengan mobil-mobil mainan konstruksinya yang berwarna kuning.

Game ini sudah dirilis di Blackberry Appworld. Mungkin di masa depan akan dirilis di Ipad dan Android. Versi lite (5 Puzzle) bisa di dapat di sini dan versi fullnya (20 Puzzle) bisa dibeli di sini.

Untuk Anda yang memakai desktop dengan browser yang mendukung Flash, Anda bisa melihat demonya (versi lite di): http://yohan.es/demo/construction-puzzle/ Harap sedikit sabar, karena file SWF utamanya 3 mb.

Sebelum membahas mengenai detail implementasinya, saya berikan dulu gambaran mengenai aplikasinya. Berikut ini halaman awalnya. Di sini pengguna bisa langsung menunjuk gambar puzzle yang ingin diselesaikan.

IMG_00000130

Puzzlenya beberapa jenis. Misalnya yang standar seperti puzzle biasa seperti ini:

IMG_00000145

Sebagian sedikit lebih sulit karena tidak menampilkan garis:

IMG_00000148

 

Sebagian hanya melengkapi bagian kendaraan saja:

IMG_00000112

 

Dan sebagian melengkapi bentuk dalam sebuah scene:

IMG_00000136

Gambar-gambar puzzle ini dibeli dari VectorStock. Harga sebuah vektor di VectorStock bervariasi. Untuk standard license, sebagian besar biayanya 1 USD per file (satu file bisa cuma satu gambar, bisa juga banyak gambar), dan tidak boleh digunakan di aplikasi yang dijual (aplikasi gratis boleh, website boleh). Untuk expanded license yang mengijinkan penggunaan gambar untuk produk komersial, harganya mulai dari 25 USD per file.

Saya membeli dua file expanded license untuk aplikasi ini. Biaya VectorStock ini sangat murah dibandingkan situs lain dan hal ini membuat sebagian designer/artist kesal karena VectorStock ini membuat mereka sulit bersaing dengan situs lain. Sebagai developer, saya merasa harga ini cukup fair. File yang rumit dihargai lebih mahal di VectorStock.

Untuk masalah kode program, saya menggunakan haxenme yang baru saya pelajari baru-baru ini. Haxe memungkinkan pembuatan program cross platform dari satu source code. Game ini sebenarnya jalan di Android dan iPad (juga di browser), tapi masih butuh sedikit polesan supaya sesuai dengan ukuran layar Android  dan iPad.

Secara algoritma, game puzzle yang dibuat ini sangat sederhana, yang memakan waktu adalah membuat konten puzzlenya. Puzzle dirancang menggunakan inkscape oleh saya dan Risna. Untuk memudahkan pemotongan gambar, saya menulis program dalam Python yang akan melakukan pemotongan gambar secara otomatis (berdasarkan properti objek di inkscape). Dengan tools yang sudah saya rancang, rencananya kami akan merilis lagi beberapa aplikasi puzzle dengan tema yang berbeda-beda.

Jonathan menjadi tester utama kami. Dia sudah sangat lancar memainkan berbagai jenis puzzle di tablet lain dan semua puzzle ini bisa dimainkan oleh Jonathan. Jonathan juga menemukan beberapa bug kecil yang sudah saya perbaiki. Namanya saya cantumkan di bagian about sebagai tester Smile

register

Semoga puzzle-puzzle berikutnya bisa segera menyusul.

Bongkar pasang

Posting ini sekedar sebagai pengingat saja, mengenai hal-hal yang berhubungan dengan hardware yang saya lakukan akhir-akhir ini.

Mulai dari yang sederhana, mengganti batere Chronos ez430 yang voltasenya sudah dibawah 3 Volt (setelah di bawah 3 volt, jamnya tidak stabil, terkadang akan reset).

Sudah lama membeli modul bluetooth serial port ini, tapi belum pernah ditest. Beberapa hari yang lalu punya niat dan waktu untuk mengetesnya:

Testingnya menggunakan Bus Pirate



Menambahkan serial port ke DNS-320

Lanjutkan membaca “Bongkar pasang”

Ngoprek Software dan Hardware

Catatan: istilah “ngoprek” di sini saya pakai sebagai padanan hacking dalam definisi positif (a hacker is a computer hobbyist who pushes the limits of software or hardware, someone messing about with something in a positive sense, that is, using playful cleverness to achieve a goal).

Sebagian orang heran, kenapa sih sebagian orang suka menghabiskan waktu mengoprek hardware dan software. Kenapa nggak pake produk yang “sudah pasti jalan”. Misalnya sebagian menyarankan menggunakan produk Apple sehingga semua bisa langsung jalan (misalnya iPhone dan komputer Mac MacBook/iMac/Mac Mini). Menurut saya ada beberapa alasan mengapa ngoprek itu perlu:

  1. Saya bisa lebih mengerti benda yang saya pakai, dan bisa memaksimalkan penggunaan benda tersebut
  2. Tidak ada satu kombinasi software/hardware yang benar-benar bisa memenuhi keinginan saya
  3. Software-software dan hardware yang ada sekarang ini, hampir semuanya “busuk” (mengesalkan, banyak bugnya, fiturnya kurang lengkap).

Mengenai point terakhir tersebut, tadinya saya mau nulis panjang lebar. Tapi orang ini sudah menuliskan keluhannya: Everything is Broken and Nobodys Upset. Saya masih bisa menambahkan banyak daftar lagi di keluhan tersebut, tapi intinya: semua kombinasi software dan hardware sekarang ini mengesalkan.

Saya sudah mencoba berbagai sistem operasi (Windows, Linux, Mac), bukan sekedar sebagi pengguna, tapi sebagai developer. Saya memakai Windows sejak 3.11, memakai Mac OS X sejak Tiger (memakai prosessor Power PC), memakai Linux sejak 1998. Saya sudah mengembangkan lusinan software dalam semua platform tersebut. Demikian juga dalam hal mobile, memakai Palm OS, smartphone Symbian, ngoprek Android, ngoprek iOS.

Untuk berbagai masalah yang ada di software dan hardware, saran orang-orang adalah: coba restart atau coba reinstall (backup, wipe clean, reinstall, restore). Untuk aplikasi web: coba logout lalu login lagi, atau: coba ganti browser. Yang lebih mengesalkan lagi: coba tunggu versi berikutnya.

Sebagian orang “menyelesaikan” masalahnya dengan membeli software dan hardware dari satu vendor saja dengan harapan semua bisa berjalan dengan baik. Misalnya saat ini yang paling terkenal adalah Apple, karena mereka memiliki: hardware desktop sendiri (Macbook, iMac, dsb, bahkan sampai keyboard dan mouse), sistem operasi sendiri (OSX dan iOS), toko digital sendiri (iTunes), tablet sendiri (iPad), ponsel sendiri (iPhone), layanan cloud sendiri (iCloud).

Tapi menggantungkan diri pada pihak lain (apalagi satu pihak saja) untuk kenyamanan juga berisiko tinggi. Misalnya orang ini accountnya dihack, dan semua datanya di semua device apple milikinya diwipe. Tentunya orang tersebut salah, seharusnya dia membuat backup datanya, tapi itu berarti harus membeli harddisk eksternal, harus tahu cara mengkonfigurasi time machine, dsb. Ini masih level “ngoprek” yang sederhana, tapi sudah terlihat bahwa itu tetap diperlukan.

Bahkan dengan semua software dan hardware dari satu perusahaan pun, kita tidak bisa berhenti berinteraksi dengan orang lain: attachment tertentu tidak bisa dibuka di OSX (karena softwarenya tidak ada), presentasi yang sangat bagus yang sudah dibuat dengan keynote di OSX tidak terlihat indah ketika diexport ke format PDF atau Power Point (dan ketika diexport ke format HTML5 dengan isi movie di sebagian slidenya, filmnya tidak bisa dibuka oleh firefox karena tidak mendukung format mp4).

Solusi saya untuk berbagai masalah komputer adalah dengan mengenal software dan hardware dan menghack-nya sesuai kebutuhan saya. Jika memungkinkan, setiap hardware yang saya miliki akan saya jailbreak, bahkan kalau perlu (dan masuk akal) akan saya install serial port. Saya memilih software yang bisa dikonfigurasi sefleksibel mungkin, walaupun software itu mungkin terlihat “kuno” (misalnya saya memakai editor teks Emacs yang sudah ada lebih dari 30 tahun). Saya suka memakai berbagai skrip buatan sendiri, karena saya tahu dengan tepat apa yang terjadi:

  1. Saya bisa membetulkan errornya jika ada perubahan di OS, di layanan web, atau apapun
  2. Saya tahu dengan tepat bahwa software tersebut tidak membocorkan data
  3. Saya bisa memindahkan skripnya dari satu OS ke OS lain

Membuat skrip sendiri atau mengkonfigurasi berbagai opsi memang butuh waktu, tapi saya anggap itu sebagai investasi di awal. Daripada memakai program atau layanan otomatis yang akhirnya error di kemudian hari dan harus menunggu orang lain membetulkannya.

Lagipula dibandingkan dengan kebanyakan hobi lain (nonton bola atau sinetron misalnya), ngoprek hardware dan software ini rasanya lebih berguna. Sekaligus mengasah ilmu.

Sebagai tambahan: saat ini banyak gerakan DIY (Do It Yourself) dan ngoprek secara umum (hacking). Beberapa website yang sering saya baca:

Dan beberapa orang yang kesukannya adalah Hacking/DIY. Semoga suatu saat saya bisa menurunkan kesenangan ngoprek ini pada Jonathan.

Barang Berguna

Sejak bisa mencari uang sendiri, saya banyak beli barang-barang. Kebanyakan barang-barang elektronik: komputer dan berbagai aksesorinya, handphone dan berbagai aksesorinya, printer, scanner, kamera digital, gps, peralatan jaringan, dsb, sampai komponen-komponen elektronik microcontroller, multimeter, kabel, timah, solder, obeng, dsb. Kadang-kadang saya merasa diri saya sangat boros, tapi biasanya selalu membela diri bahwa barang-barang itu “berguna” buat saya.

Ada beberapa level kegunaan barang yang saya beli:

  1. Benar-benar berguna, dipakai setiap hari, sampai setidaknya lebih dari setahun. Contohnya, saya beli iPod touch yang benar-benar dipakai setiap hari untuk browsing, mendengarkan musik, membaca twitter, dsb. Contoh lainnya adalah komputer yang saya pakai setiap hari.
  2. Berguna untuk proyek Alkitab. Saya punya dua proyek Alkitab open source, Symbian Bible dan BiblePlus. Untuk mengembangkan itu, saya membeli banyak HP. Sebagian HP-nya dipakai cukup lama, sebagian lagi cuma dipakai sebentar, tapi saya merasa sudah puas kalau HP-nya sudah terpakai untuk mengembangkan program Alkitab.
  3. Berguna untuk mengerjakan proyek tertentu. Minimal uangnya terganti dari proyek yang saya kerjakan.
  4. Berguna untuk menambah ilmu.

Untuk hal yang terakhir ini, ukuran apa yang saya pakai bahwa ilmu saya sudah bertambah?

  1. Sudah membuat kode program untuk benda itu. Misalnya saya membuat OTP untuk jam EZ430, atau ROM update tool untuk Acer E130.
  2. Sudah membuat tulisan mengenai benda tersebut.
  3. Sudah mengoprek benda tersebut, misalnya sekedar menginstall Linux pada Dingoo, atau menjailbreak Kindle.
  4. Untuk komponen elektronik, minimal saya sudah mencoba komponen tersebut di breadboard.

Setidaknya kalau dari ukuran saya, lebih dari 75% barang-barang yang saya beli adalah barang-barang yang berguna, bukan hanya sekedar beli, lalu tidak terpakai.

Kenangan Masa SMU

Posting ini tidak akan membahas banyak hal waktu sama masih SMU. Posting akan membahas kisah cinta saya, cinta pada programming. Saya belajar komputer kali pertama kelas 2 SMP, tahun 1994. Waktu itu saya ikut kursus DOS, Wordstar dan Lotus 123. Nama tempat kursus saya waktu itu adalah Linggar jati, di dekat pertigaan jalan raya bogor ke arah Cibubur. Dari segi komputer dan pengajar, tempat itu sangat biasa, yang luar biasa adalah: semua siswa boleh belajar di luar jam kursus, dan bahkan jika ada kursus lain pun boleh menggunakan komputer yang di belakang (jika tidak dipakai), asalkan tidak menganggu yang lain.

Di situlah saya belajar sendiri memprogram dalam bahasa BASIC. Buku pegangan saya cuma buku panduan ujian bahasa BASIC. Bukunya tidak punya teori, cuma soal pilihan ganda dan kunci jawaban saja. Ternyata buku semacam itu mudah untuk dipelajari, misalnya ada pertanyaan “Fungsi LEFT$ berguna untuk?”, lalu saya cari jawabannya, misalnya “mengambil N karakter terkiri”, nah dari situ saya tahu apa gunanya fungsi LEFT$. Setahun kemudian ayah saya membelikan Apple II/e (komputer tua yang dibeli karena bapak saya tidak mengerti soal komputer, dan kebetulan ada yang menjual murah). Saya banyak memprogram BASIC di komputer itu, tapi sayang dalam beberapa bulan komputernya mulai rusak, dan saya tidak punya lagi arsip program-program lama saya.

Tanggal 10 Januari 1997, kelas 2 SMU saya dibelikan PC pertama saya: Pentium 120 Mhz, Ram 16 Mb, harddisk 1 GB. Itulah dimulainya petualangan memprogram. Hari ini saya menemukan beberapa program yang saya buat waktu itu. Melihat program-program tersebut, aneka hal muncul di pikiran saya:

  1. Melihat sebagian program, saya berpikir: wah kok saya dulu goblok banget ya, kan ini mestinya bisa begini
  2. Melihat sebagian program lain saya berpikir: wah hebat juga ya, dulu saya bisa ngerti ini, padahal cuma belajar sendiri
  3. Wah kok dulu kepikiran ya bikin program ini
  4. Ngapain coba bikin program ini, gak ada gunanya
  5. Wah ternyata dulu saya fans Sailor Moon
Lanjutkan membaca “Kenangan Masa SMU”

Hobi Elektronik

Sejak kemarin saya baca-baca lagi isi blog ini yang sudah dimulai sejak 2004, dan ternyata sepertinya banyak hal dalam hidup ini yang tidak dituliskan. Nah supaya nggak lupa, sekarang mau nulis soal hobi baru: elektronik, atau tepatnya lagi elektronik digital. Dari dulu sebenarnya saya ingin belajar elektronika tapi nggak pernah dapet pelajarannya waktu SD, SMP ataupun SMU, jadi dasar elektronika yang saya punya cuma dari kuliah Fisika. Di ITB, dulu di Teknik Informatika tidak diajarkan sama sekali dasar elektronika (nggak tau ya sekarang setelah bergabung dengan elektro menjadi STEI).

Awal dari keinginan belajar elektronika lagi adalah karena kemalasan. Kami tinggal di sebuah apartemen yang kuno (fasilitas perusahaan, bukan milik sendiri). Sebenarnya isi apartemennya sangat bagus, kecuali AC yang harus dikendalikan langsung dari thermostat, tidak bisa via remote. Membeli thermostat yang lebih modern harganya cukup mahal (di Internet sekitar 1 juta rupiah), dan mungkin tidak kompatibel dengan AC yang sudah ada. Jadi saya ingin bisa mengendalikan remote tersebut dengan memodifikasi thermostat yang sudah ada. Saya hanya ingin bisa menyalakan/mematikan AC dari tempat tidur (tidak perlu bisa mengatur suhu).

Dengan berbekal kit dari buku berbahasa Thai, awal bulan lalu saya mulai belajar elektronika. Karena saya belum bisa baca bahasa Thai (paling cuma mengerti beberapa kata saja), saya belajar dengan melihat diagram, foto, dan source code. Kit dari buku itu menggunakan microcontroller PIC16F627A, dengan beberapa komponen (transistor, resistor, kapasitor, motor, LED, LDR, thermistor, potensiometer) dan disertai dengan programmer (disebut juga downloader/flasher) dengan serial port. Sebuah breadboard kecil juga disertakan, jadi saya tidak perlu menyolder ketika mulai belajar (breadboard adalah papan kecil dimana kita bisa menancapkan/melepaskan komponen dengan mudah).
Lanjutkan membaca “Hobi Elektronik”

Flickr di Facebook dan Ravelry

Sebenarnya dari dulu Joe udah mengusulkan untuk menggunakan fasilitas flickr berbayar sebagai tempat penyimpanan foto kami, tapi karena saya orangnya agak pelit saya selalu kasih alasan untuk tidak bayar flickr. Setelah akhirnya dengan berbagai cara Joe meyakinkan saya bahwa flickr bisa di share dengan mudah dan kita tidak perlu berulang kali mengupload foto untuk berbagai situs yang kami punya, selain sebagai tempat back-up semua foto-foto kami,  akhirnya saya setuju. Kami sepakat untuk menggunakan 1 account flickr bersama, karena sudah tentu Joe yang akan mengurus upload foto yang sangat banyak terlebih dahulu.

Setelah Joe mengupload semua foto yang pernah ada, bagian berikutnya yang cukup menyita waktu adalah mengorganisasikan foto. Mengupload foto dilakukan secara otomatis, jadi Joe emang agak curang melakukan bagiannya. Sedangkan mengorganisasikan foto harus dilakukan manual karena perlu dipilih mana yang cukup bagus buat di published dan mana yang kurang oke buat disimpan saja.

Selain memilih-memilih yang mana yang perlu dipublished, bagian lain yang cukup memakan waktu adalah mengelompokkan foto-foto. Kelebihan memakai flickr berbayar sudah tentu bisa memiliki set dan koleksi yang lebih banyak daripada yang gratisan. Jadinya saya bisa menyimpan hasil kerajinan tangan saya ataupun hasil eksperimen saya di dapur secara terpisah. Kami juga bisa mengelompokkan foto jalan-jalan kami baik yang di Indonesia maupun setelah tinggal di Chiang Mai.

Setelah hampir sekian persen beres-beres, sekarang saya malah kesenangan mengorganisasikan flickr ini. Kebetulan saya join komunitas rajut ravelry.com, saya bisa langsung sharing foto saya dari flickr dan tidak perlu mengupload ulang lagi. Lalu di facebook juga ada aplikasi untuk berbagi foto flickr langsung dari dalam facebook: Flickr Photosets, sehingga saya lagi-lagi ga harus upload foto berulang-ulang ke facebook.

Lalu, ada lagi flickr badge yang bisa di filter berdasarkan set ataupun tag, atau hanya foto tertentu, sehingga bisa menjadi widget seperti yang ada di sidebar blog ini. Dan yang tidak kalah penting adalah, dari Windows Live Writer (software yang saya gunakan untuk posting blog), ada plug-in untuk menyisipkan Flikcr Image, sehingga saya bisa tinggal pilih-pilih dan voila, saya ga perlu upload foto lagi buat ngeblog (termasuk di blog saya yang lain).

Sebenarnya, buat yang tertarik menyimpan foto di flickr tapi masih tidak mau bayar, fasilitas-fasilitas yang saya sebutkan diatas bisa saja dinikmati, akan tetapi akan ada batasan besarnya foto yang bisa di upload, batasan jumlah foto yg bisa di upload sebulan, batasan jumlah set dan tidak adanya collection. Intinya, kalau gratis ya sudah pasti ada batasan. Sedangkan Joe dan saya orangnya mau praktis, jadi kami memilih untuk mengupload filenya seukuran hasil foto tanpa diedit terlebih dahulu. Dipikir-pikir, sayang sih punya kamera sekian megapixel kalau kemudian yang di upload di kecilin jadi ukuran 640×480 :P.

Duh kok saya kesannya jadi jualan flickr, nggak kok ini cuma bagi-bagi pengalaman aja, saya tidak dibayar sepeserpun buat promo flickr, malahan bayar tuh biar punya account pro di flickr :). Yuk ngeflickr.