Skip to content
31 Juli 2013 / Jeffrey Hermanto Halimsetiawan

Scoreoid – Cross-Platform Game Leaderboard

Saat mengembangkan sebuah game, seringkali game tersebut membutuhkan sebuah fitur online highscore yang digunakan untuk membandingkan skor yang diraih seluruh pemain. Cara yang paling simpel tentunya kita perlu menyediakan sebuah API sederhana dalam bentuk REST atau file php yang bertugas untuk mengunggah skor pemain dan mengambil skor pemain yang telah diurutkan dari yang tertinggi. Jika kita menggunakan cara ini, tentunya kita harus merawat server tersebut agar selalu available 24 jam dan storage space yang mencukupi yang tentunya cukup merepotkan. Solusi untuk mengatasinya adalah dengan memanfaatkan jasa penyedia backend untuk game yang banyak tersedia secara gratis dengan fitur terbatas. Salah satu penyedia jasa tersebut adalah Scoreoid.    

Beberapa pengembang telah menyediakan wrapper untuk API dari Scoreoid. Apabila ingin mengintegrasikan Scoreoid pada Windows Phone 8, Scoreoid for Windows 8 yang dikembangkan oleh Rudi Grobler dapat digunakan dengan sedikit modifikasi. Scoreoid sangatlah mudah untuk diintegrasikan ke dalam game kita.

Berikut adalah contoh untuk mendapatkan leaderboard / online highscore:

// Get game data
var games = await ScoreoidManager.ScoreoidClient.GetGameAsync();
var game = games.items.First();

// Get leaderboard
Leaderboard leaderboard = await ScoreoidManager.GetLeaderboard();

Salah satu contoh game pada Windows Phone 8 yang menggunakan Scoreoid sebagai backend adalah Icon Pop Quiz yang dikembangkan oleh Aksara Studio bekerjasama dengan Alegrium.

16

Selamat mencoba!

31 Juli 2013 / Jeffrey Hermanto Halimsetiawan

Oral Defense Master Thesis CSIE NTUST

Sejak 10 September 2011, saya melanjutkan pendidikan master saya di National Taiwan University of Science and Technology (NTUST), Taipei, Taiwan. Kebetulan pada bulan Oktober 2010, rombongan professor dari College of Electrical Engineering and Computer Science, NTUST berkunjung ke kampus ITS, melakukan wawancara kepada beberapa mahasiswa dan saya menjadi salah satu penerima full scholarship untuk melanjutkan studi pada Department of Computer Science and Information Engineering (CSIE), NTUST. Adviser saya adalah Dr. Wei-Chung Teng yang memperoleh gelar Doctor of Engineering dari University of Tokyo, Jepang. Saya tergabung dalam Networked Robotic Laboratory dan melakukan penelitian seputar robot teleoperation.

Setelah menyelesaikan 24 course credits pada tahun pertama dan penelitian sejak awal tahun pertama, tibalah waktu saya untuk menjalani oral defense yang dilaksanakan pada hari Selasa, 16 Juli 2013 pukul 09.30 di ruang T4-517 dengan judul thesis “Low-Bandwidth Multiresolution Panoramic Video Streaming System for Mobile Robot Teleoperation“.

Oral Defense Room

Oral Defense Room

Beberapa minggu sebelumnya, saya disibukkan dengan menulis semua yang telah saya kerjakan pada buku thesis, revisi buku, menghubungi beberapa professor sebagai oral defense committee members, dan mempersiapkan segala macam dokumen yang dibutuhkan. Adviser saya merekomendasikan beberapa nama sebagai oral defense committee members saya:

Tepat pukul 09.30, semua penguji telah masuk ke dalam ruangan dan mendiskusikan beberapa hal terlebih dahulu. Sekitar pukul 09.40, saya dipersilahkan oleh Dr. Wang untuk mempresentasikan thesis saya. Presentasi berjalan dengan lancar dan disertai beberapa kali interupsi oleh Dr. Wang terkait dengan beberapa gambar yang ada pada slide presentasi saya. Kurang lebih 30 menit, saya telah selesai mempresentasikan thesis saya kepada para penguji.

Oral Defense Presentation

Oral Defense Presentation

Berikutnya adalah sesi tanya jawab yang diawali oleh Dr. Yao. Bidang penelitian beliau adalah computer graphics dan beliau memberikan beberapa saran tentang metode yang dapat digunakan untuk membentuk multiresolution image dan menanyakan alasan memanfaatkan akselerasi GPU (Graphical Processing Unit) untuk image processing. Prof. Guo yang merupakan expert di bidang digital signal processing menanyakan tentang beberapa data yang ditampilkan, memberikan masukan tentang pemanfaatan H.264 secara langsung untuk membentuk multiresolution video, dan menggunakan gesture untuk mengontrol kamera. Terakhir, Dr. Wang memberikan masukan untuk mencoba sistem ini pada lingkungan dengan bandwidth yang benar-benar terbatas dan menanyakan alasan kenapa menggunakan spherical camera. Dr. Teng sebagai adviser saya tentu saja hanya menanyakan beberapa hal kecil. Setelah itu, saya diminta untuk keluar ruangan dahulu sembari mereka mendiskusikan hasil dari oral defense saya.

Di luar teman-teman lab saya telah menunggu di sana, saya pun mengobrol dengan mereka sambil menunggu panggilan dari penguji di dalam ruangan. Dr. Wang membuka pintu dan berkata pada saya “gong xi gong xi” yang berarti selamat. Berikutnya, Dr. Teng memberitahu saya kalau ada beberapa hal yang harus saya kerjakan sebelum saya bisa meninggalkan lab. Kemudian, giliran Prof. Guo dan Dr. Yao memberikan selamat kepada saya. Karena Dr. Teng memiliki janji dan terburu-buru pergi, akhirnya saya berfoto bersama dengan Prof. Guo, Dr. Wang, dan Dr. Yao di depan ruang oral defense.

Sore harinya, saya bertemu dengan adviser saya dan beliau memberikan beberapa hal yang harus saya perbaiki dan tugas untuk mengeksplorasi sesuatu. Revisi telah saya selesaikan pada tanggal 19 Juli 2013, tetapi beliau menugaskan saya untuk melakukan eksplorasi yang lebih dalam tentang JPEG2000 dan H.264. Selama seminggu saya melakukan survei sambil melengkapi berbagai persyaratan yang dibutuhkan untuk school leaving process. Pada hari Jumat, 26 Juli 2013, saya mengirimkan report eksplorasi saya kepada adviser, memberikan buku thesis, dan beliau bersedia menandatangani formulir school leaving process saya.

Master Thesis (Front)

Master Thesis (Front)

Master Thesis (Side)

Master Thesis (Side)

Akhirnya, hari Senin, 29 Juli 2013 saya mendapatkan ijazah saya dengan gelar “Master of Science” dan transkrip saya selama menempuh pendidikan di NTUST dengan hasil yang baik. Tidak terasa sudah 2 tahun saya tinggal di Taiwan untuk melanjutkan studi saya dan kini saya tinggal menghitung hari sebelum pergi meninggalkan Taiwan. Semoga ilmu yang didapat selama 2 tahun di Taiwan dapat bermanfaat bagi diri sendiri dan orang lain. So, what’s next?

 

 

14 Juni 2013 / Jeffrey Hermanto Halimsetiawan

Self Cross Promotion Apps pada Windows Phone

Mendapatkan download dalam jumlah yang fantastis adalah suatu hal yang sangat sulit. Alangkah baiknya apabila kita telah memiliki aplikasi pada suatu toko aplikasi, kita melakukan cross promotion aplikasi tersebut pada aplikasi kita yang telah terlebih dahulu tersedia pada toko aplikasi. Mekanisme yang dapat dilakukan adalah sebagai berikut:

  1. Menampilkan banner tentang aplikasi B pada aplikasi A.
  2. Jika pengguna menekan banner tersebut, jalankan aplikasi B apabila telah ter-install atau arahkan ke Windows Phone Store apabila belum di-install.

Bagaimana cara melakukan cross promotion apps pada Windows Phone? Langkah-langkahnya sangat mudah sekali:

  1. Tambahkan potongan kode berikut, ketika pengguna ingin membuka aplikasi tersebut.
    // Change this with your desired Application Name
    string appName = "Song Freaks";
    // Get all installed applications from current publisher
    IEnumerable apps = Windows.Phone.Management.Deployment.
                                InstallationManager.
                                FindPackagesForCurrentPublisher();
    try
    {
        Package package = apps.First(q => q.Id.Name.Equals(appName));
        if (package != null)
        {
            // Launch Song Freaks
            package.Launch(string.Empty);
        }
    }
    catch (InvalidOperationException)
    {
        // Open Song Freaks in Windows Phone Store
        MarketplaceSearchTask marketplaceSearchTask = new MarketplaceSearchTask();
        marketplaceSearchTask.SearchTerms = appName;
        marketplaceSearchTask.Show();
    }

Pada contoh di atas, potongan kode tersebut akan mencari apakah aplikasi “Song Freaks” telah ter-install dan akan menjalankan aplikasi tersebut apabila telah ter-install atau membuka halaman Windows Phone Store dari aplikasi “Song Freaks”. Sebagai catatan, kode tersebut hanya dapat menjalankan aplikasi yang berasal dari Publisher yang sama jadi kita tidak dapat menjalankan aplikasi dari Publisher lain dari aplikasi kita.

Mudah sekali bukan? Selamat mencoba!

16 Mei 2013 / Jeffrey Hermanto Halimsetiawan

Menggunakan Layanan Flurry In-App Analytics pada Java ME

Berdasarkan data dari Cisco, jumlah perangkat mobile akan melebihi populasi manusia yang ada di bumi ini pada akhir tahun 2013. Tentunya bukanlah hal yang mengherankan apabila jumlah aplikasi mobile juga bertambah sangat cepat. Sayangnya, masih banyak pengembang aplikasi mobile yang belum melakukan analisis terhadap pengunaan aplikasi yang dilakukan oleh konsumen. Padahal, hasil analisis tersebut sangatlah berguna untuk menentukan arah pengembangan aplikasi mobile tersebut. Contohnya, sebagai pengembang game mobile kita ingin mengetahui berapa DAU (Daily Active Users), jumlah pengguna yang memainkan game lebih dari 5 kali, atau jumlah pengguna yang mampu mencapai level sekian dari game tersebut. Dari data-data analisis yang diperoleh tersebut, kita dapat mengetahui apakah tingkat kesulitan game tersebut terlalu sulit sehingga perlu menurunkan tingkat kesulitan game atau apakah game tersebut membosankan bagi konsumen sehingga perlu menambahkan fitur-fitur baru yang lebih menarik.

Salah satu layanan yang menawarkan layanan In-App Analytics secara gratis pada Java ME adalah Flurry. Langkah-langkah untuk menggunakan layanan In-App Analytics dari Flurry adalah sebagai berikut:

  1. Mendaftar akun Flurry pada tautan berikut.
  2. Masuk akun Flurry pada tautan berikut.
  3. Pilih tab “Applications”, klik pada pilihan “Add a New Application”.
  4. Pilih ikon “Java”.
    image
  5. Masukkan “Application Name” dan pilih “Categories” yang sesuai dengan aplikasi tersebut.
    image
  6. Pilih cara integrasi layanan Flurry yang diinginkan. Apabila ingin aplikasi di-wrap oleh layanan Flurry secara otomatis dengan hasil analisis yang standar, unggah JAD dan JAR files dari aplikasi tersebut. Namun, pilihan tersebut tidak dapat digunakan apabila kita ingin mempublikasikan aplikasi kita melalui Nokia Store. Nokia Store sangatlah sensitif terhadap privasi pengguna sehingga aplikasi harus menampilkan konfirmasi terlebih dahulu kepada pengguna apakah pengguna bersedia untuk mengirimkan data-data penggunaan aplikasi. Oleh karena itu, layanan Flurry harus diintegrasikan secara manual dengan SDK yang disediakan.
    image
  7. Unduh Flurry SDK for JavaME v1.1.
  8. Tambahkan library FlurryAgent.jar” pada project aplikasi.
  9. Tambahkan MIDlet-Permissions “javax.microedition.io.Connector.http” pada JAD file properties.
  10. Panggil method FlurryAgent.onStartApp(MIDlet, String) untuk memulai session pada saat pengguna telah setuju untuk mengirimkan data-data penggunaan aplikasi.
  11. Panggil method FlurryAgent.onDestroyApp() untuk mengakhiri session pada method destroyApp() yang dimiliki oleh kelas yang merupakan turunan dari MIDlet.
    public void destroyApp(boolean unconditional) {
        if (Utils.ALLOW_FLURRY_ANALYTICS){
            FlurryAgent.onDestroyApp();
        }
    }
  12. Panggil method FlurryAgent.onPauseApp() untuk menghentikan sementara session pada method pauseApp() yang dimiliki oleh kelas yang merupakan turunan dari MIDlet.
    public void pauseApp() {
        if (Utils.ALLOW_FLURRY_ANALYTICS){
            FlurryAgent.onPauseApp();
        }
    }
  13. Panggil method FlurryAgent.onEvent(event, parameter) untuk mengetahui user events yang terjadi pada suatu session seperti berapa kali sebuah button dipilih oleh pengguna.
    public static void logClickButton(String buttonName){
        if (! ALLOW_FLURRY_ANALYTICS)
            return;
    
        String event = "CLICK BUTTON";
        String key = "Count";
        Hashtable table = new Hashtable();
        table.put(key, buttonName);
        FlurryAgent.onEvent(event, table);
    }

Berikut adalah contoh screen yang digunakan untuk meminta persetujuan pengguna untuk mengirimkan data-data pengunaan aplikasinya pada game Tourism Quiz.WP_000048

NOTE: Jangan lupa memilih pilihan “yes” pada isian “App contains analytics” ketika mengunggah content files pada Nokia Store Publish.

Mudah sekali bukan untuk menambahkan fitur In-App Analytics pada aplikasi yang tentunya akan sangat bermanfaat pada pengembangan aplikasi mobile tersebut ke depannya. Selain Flurry, masih banyak penyedia layanan In-App Analytics lainnya yang bisa dicoba. Sudahkah rekan-rekan memanfaatkan layanan In-App Analytics pada aplikasi mobile nya?

Semoga bermanfaat!

22 April 2013 / Jeffrey Hermanto Halimsetiawan

Menampilkan Pengingat Rate Aplikasi dengan Telerik’s RateAppReminder pada Windows Phone

Tinggi dan banyak nya rating dari suatu aplikasi merupakan salah satu faktor yang menentukan ranking suatu aplikasi pada application store. Salah satu cara untuk meningkatkan rating dari aplikasi tersebut adalah dengan selalu mengingatkan pengguna agar melakukan rate & review terhadap aplikasi kita sehingga kemungkinan pengguna untuk memberikan rating semakin besar. Cara sederhanya yang dapat digunakan untuk mengimplementasikannya adalah:

  1. Tambahkan sebuah counter bertipe data Integer yang disimpan pada IsolatedStorageSettings.
  2. Ketika aplikasi dijalankan, lakukan increment pada nilai counter tersebut.
  3. Apabila nilai counter tersebut dibagi dengan periode rate reminder akan ditampilkan bersisa 0 maka tampilkan sebuah MessageBox pengingat.
  4. Jika user memilih OK pada MessageBox tersebut, manfaatkan MarketplaceReviewTask untuk menampilkan halaman rate dari aplikasi kita pada Windows Phone Store.

Kini dengan adanya Nokia Premium Developer Program yang memberikan Rad Controls for Windows Phone dari Telerik, hal tersebut dapat dilakukan dengan lebih mudah dan cepat. Langkah-langkah nya adalah sebagai berikut:

  1. Lakukan inisialisasi dari static class ApplicationUsageHelper dengan memasukkan parameter berupa versi dari aplikasi pada Application_Launching dan Application_Activated dalam App.xaml.cs.
    private void Application_Launching(object sender, LaunchingEventArgs e)
    {
        ApplicationUsageHelper.Init("1.1.0.0");
    }
    
    private void Application_Activated(object sender, ActivatedEventArgs e)
    {
        ApplicationUsageHelper.OnApplicationActivated();
    }
  2. Tambahkan referensi beberapa .dll files yang diberikan oleh Telerik seperti Telerik.Windows.Core.dll dan Telerik.Windows.Controls.Primitives.dll ke dalam project. Kemudian, tambahkan definisi namespace berikut:
    using Telerik.Windows.Controls
  3. Tambahkan potongan kode berikut pada bagian kode yang akan digunakan untuk menampilkan RateAppReminder, misalnya pada Main Menu.
    RadRateApplicationReminder rateReminder = new RadRateApplicationReminder();
    rateReminder.RecurrencePerUsageCount = 10;
    rateReminder.Notify();

    Maksud dari kode tersebut adalah RateAppReminder akan ditampilkan setiap 10 kali aplikasi dijalankan. Pilihan lain yang dapat digunakan adalah RateAppReminder akan ditampilan setiap periode tertentu dengan mengubah property RecurrencePerTimePeriod.

Hasil dari potongan kode di atas ada seperti pada gambar berikut:

Screen Capture (2)

Sebagai tambahan, judul dan isi dari MessageBox tersebut juga dapat diubah dengan mengubah property MessageBoxInfo dari RadRateAppReminder.

Semoga bermanfaat!

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 52 pengikut lainnya.

%d bloggers like this: