Intel Developer Zone

AuraLab, Pemenang Kompetisi Level-Up yang Menunjukkan Karma yang Baik

* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.

Alexander Kuvshinov pernah bermimpi untuk menciptakan sesuatu yang lebih dari sekedar banner Adobe Flash sederhana. Sayangnya serangkaian pekerjaan teknis tingkat rendah di sebuah perusahaan arsitektur, printer, dan biro iklan membuat kreativitasnya bersembunyi.

Untuk itu dia bekerja sama dengan Andrey Sharapov dan Roman Povolotshy, dua veteran industri game Rusia, untuk membangun AuraLab. Game pertama yang dibuat mereka adalah Karma. Incarnation 1 yang telah berhasil memenangkan penghargaan utama dalam hal seni, desain, suara, dan cerita. Pemain di seluruh dunia sedang menunggu tim Rusia ini membuat game tersebut dari sebuah demo menjadi game komersial.

Karma Incarnation 1 adalah game petualangan 2D bertema aneh pada dunia psychedelic yang mengingatkan pada kartun klasik tahun 1968 Yellow Submarine atau mungkin terinspirasi dari seniman tahun 60-an Peter Max.

Dalam game ini, karakter pahlawannya berbentuk gumpalan seperti tentakel yang bernama Pip. Dalam hal ini karakter harus belajar dari lingkungannya dan memahami logika sebab akibat dibalik apa yang terjadi saat melakukan perjalanan balik, memecahkan teka-teki, dan menaklukan labirin. Ketika Pip mengambil tindakan efektif, penampilannya berubah menjadi lebih mengancam. Namun ketika karakter ini bertindak sesuai keinginannya maka dirinya berubah menjadi lebih menarik.

Ketika pengembangan game mencapai titik saat ini maka menjadi tantangan bagi AuraLab. Bergerak dari hanya coret-coret di atas kertas menjadi animasi digital membutuhkan waktu beberapa bulan. Melaju ke demo game yang bisa dimainkan merupakan dorongan untuk menghadapi tantangan lainnya, dan bahkan tim harus bekerja lebih keras supaya game dapat sepenuhnya hadir di pasar aplikasi. Namun dengan kemenangan pada kompetisi 2015 Intel Level-Up Game Developer Contest, membuat tim bekerja keras menyelami lebih dalam ke beberapa rahasia.

Gambar 1 Karma adalah game petualang point and click bergaya arcade klasik di tanah psychedelic

Tim ini Terinspirasi dari Mana?

Inspirasi untuk Pip, karakter utama dari Karma, sebenarnya berasal dari sebuah kontes seni Kuvshinov yang menantang pesertanya untuk menciptakan desain pada panel belakang tablet. Awalnya tim ini tertarik karena pemenangnya akan mendapat Apple iPad yang memiliki desain panel belakang dari hasil pemenang kontes tersebut. Kuvshinov mulai bermain-main dengan logo Apple hitam menggunakan gigitan untuk membentuk semacam mulut ke samping.

Gambar 2 : Inspirasi desain untuk karakter utama Karma, Pip, awalnya dibawa pada logo Apple oleh desainernya untuk mengikuti kontes lokal.

Kuvshinov cepat dalam membuat kawanan makhluk, Pip, di komputer. Dia membuat sketsa gambar secara acak, membuat beberapa mata dan tentakel, dan bermain-main dengan gambar itu. “Saya tidak memenangkan hadiah utama, namun saat itu tidak terlalu peduli karena saya memiliki kreasi baru saya yang telah menempati pikiran saya.” Ucap dirinya.

Gambar 3 : Kuvshinov segera menciptakan seluruh kawanan karakter yang akhirnya menjadi Pip.

Kartun ini tumbuh dengan kecanggihan, namun pada tahun 2013, lembaga tempat Kuvshinov bekerja dibubarkan yang ternyata menjadi berkah tersembunyi. Dia dan teman-temannya segera membentuk perusahaan game mereka sendiri, AuraLab. Mereka menetapkan hak untuk bekerja agar Pip dapat hidup.

Melakukan Peningkatan Level dalam masa Pra Produksi

Setelah tim menyelesaikan pre-alpha engine mereka berdasarkan Adobe Flash yang memiliki tiga level, atau lokasi dalam game. Pip bisa bergerak antara lokasi, dan game memiliki beberapa interaksi sederhana juga. “Namun, kami memiliki jalan panjang untuk dijalani,” Berdasarkan ingatan Kuvshinov.

Untungnya, tim sudah memiliki kemampuan desain dan iterasi yang layak berdasarkan pengalaman mereka yang mendalam di posisi teknis. Ketika ditanya, apakah keterampilan yang paling penting bag tim pada saat ini, Kushinov menjelaskan tanpa ragu-ragu bahwa kekeluargaan mereka sebelumnya ketika proses pengembangan seluruh game adalah kuncinya. “Kami tahu keterampilan apa yang kami butuhkan untuk tim kami, dan kami memiliki mereka,” katanya. Kemampuan mereka termasuk kemampuan teknis, pengalaman dengan proses pengembangan, kemampuan untuk iterasi dan tes, dan latar belakang yang kuat dalam desain.

Tim bekerja dari rumah, hanya menggunakan perangkat lunak gratis. Google Docs adalah alat kolaboratif utama tim selama fase pra-produksi proyek. Untuk memantau tugas mereka yang tergantung jenis kerja, mereka menggunakan Redmine, yang mereka instal pada server virtual yang telah dibeli. “ Kami tidak membeli hardware, kami memiliki PC, notebook, dan iPad, hal itu sudah cukup,” kata Sharapov. “Dan setelah kami membangun demo kami dalam Unity, akhirnya kami berhasil memenangkan lisensi Unity Pro karena berhasil mendapatkan gelar juara Best Unity Game pada konferensi Winter Night 15, jadi kami tidak pernah membeli lisensi Unity, itu hal baiknya.”

Kuvshinov melihat pengumuman untuk Intel Level-Up Game Developer Contest atau http://www.promoterapp.com. Memenuhi kualifikasi dan dengan prototype dari demo yang layak yang akan mengambil keuntungan dari layar sentuh dan kemampuan beradaptasi dari perangkat 2 in 1, akhirnya dia mengikuti kontes. “Lalu, aku lupa tentang hal itu,”ucapnya. “Jujur saja, saya tidak mengharapkan apa-apa”. Kami semua sangat terkejut mengenai hadiah yang kami menangkan.”

Jadi tidak seperti beberapa tim yang harus berebut untuk manghasilkan demo yang layak untuk pengajuan, AuraLab benar-benar sibuk setelah berhasil menang. Tim masuk ke rangkai pengembangan game indie dan menyingsingkan lengan baju mereka. “Pekerjaan utama dimulai setelah kami menerima pesan bahwa kami menang.”kata Sharapov. “Itu adalah ketika kita mulai mempersiapkan diri dalam membangun game untuk pameran di PAX Prime, serta mempersiapkan game untuk versi Steam.

Gambar 4: AuraLab menggunakan shading dan seni surreal untuk menciptakan suasanan yang unik untuk pemain.  

Unity – Engine yang menjadi Pilihan

Salah satu keputusan awal tim yang diperdebatkan adalah game engine yang dipilih untuk pengembangan. Dua engine yang populer adalah Unreal Engine 4 dan Unity Engine, dan kedua engine tersebut bersaing dengan kuat, akhirnya AuraLab memilih Unity.

“Unity memungkinkan kita untuk membuat game cross-platform dengan mudah.” Kata Sharapov. “Kami sudah mempunyai beberapa pengalaman dengan Unity sebelumnya, dan itu sangat menbantu. Juga, kita jauh lebih mudah untuk menemukan programmer Unity yang baik untuk proyek di Rusia.

Setelah AuraLab menggunakan Unity Engine, mereka memulai beberapa sesi desain game yang serius dan dikembangkan menjadi demo nyata untuk bisa dimainkan untuk umum. Mereka menggunakan 2D Toolkit plugin yang bisa ditemukan di Unity 5, namun mereka memiliki beberapa tantangan untuk diatasi. Jadi Yuriy Kuptshevich selaku lead programmer menciptakan beberapa tool untuk mempercepat tugas-tugas berikut :

  • Mengunggah dan membongkar atlas di runtime
  • Mengungah serangkaian atlas berurutan
  • Menghitung jumlah tekstur yang dapat ditampung dalam atlas

Kuptshevich juga melakukan beberapa percobaan dengan kompresi grafis, namun dia cepat belajar bahwa itu menjadi masalah ketika mencoba untuk mengunggah tekstur dari flie *.png asynchronous. Tim Unity berjanji akan memperbaiki masalah itu di versi 5.3.

Petunjuk Bermanfaat – Pembelajaran

Karena tim baru saja berjuang agar game mereka sendiri diperhatikan oleh publik yang lebih luas, mereka tahu tantangan yang dihadapi oleh developer. Dalam semangat itu dan mungkin untuk membangun beberapa Karma yang baik dari mereka sendiri, Kuptshevich bersemangat untuk berbagi tips dan trik berikut ini dengan sesama developer indie :

Cara untuk mengikat perbesaran dari partikel dan objek dalam sebuah adegan :

BorderLeft and BorderRight - pivots the edges of the object

    public void ScaleParticles ()
    {
        float size = Vector3.Magnitude(Camera.main.WorldToViewportPoint(BorderLeft.position) -
                                       Camera.main.WorldToViewportPoint(BorderRight.position));
        _particleRend.maxParticleSize = size;
    }

Cara membuat ekspresi lambda deferred-in-time melalui delegasi Action atau call kereka dalam lingkaran untuk waktu yang ditetapkan, atau keduanya :

public void InvokeWithDelay (Action method, float delay)
{
    StartCoroutine(InvokeMethodWithDelay(method, delay));
}

private IEnumerator InvokeMethodWithDelay (Action method, float delay)
{
    yield return new WaitForSeconds(delay);
    method.Invoke();
}

Saran terbaik dari Kuptshevich adalah : “Tetap Sederhana. Hal utamanya adalah  untuk tidak melakukan hal-hal rumit jika semuanya mungkin.“ Dia juga menyarankan agar developer mencari tempat – tempat di mana tool dapat membantu dengan proses berulang. Timnya dia memperluas Unity editor dengan tool buatan sendiri, melakukan seala sesuata yang mungkin dengan cara otomatis. “ Kamu mungkin berpikir bahwa kamu akan menghabiskan terlalu banyak waktu pada tool ketika awalnya, namun otomatisasi akan membuat hidup kamu jauh lebih mudah dan mempercepat pekerjaan ketika kamu mendalami bagian utama dari proses pengembangan.”

Tim akan melakukan beberapa hal berbeda ketika diberikan kesempatan, ucap Kuptshevich. Namun pegalaman adalah guru besar. “In bukan game pertama bagi kami,” ucapnya. “Kami tidak membuat kesalahan kritis dalam proses pengembangan karena kami semua memiliki banyak pengalaman dalam tahap pra-produksi. Di situlah perencanaan dan keputusan desain yang sangat penting.”

AuraLab membuat sesuatu yang besar, game langsung ditujukan untuk lokasi yang lebih sedikit. Namun memiliki gameplay yang lebih intensif. Hal ini mengakibatkan rencana produksi lebih pendek dan lebih murah. “Pesan moralnya adalah jika kamu dapat membagi pekerjaan kamu menjadi beberapa bagian dan membuat itu menjadi bagian pertama yang lebih cepat, dengan kualitas yang sama atau lebih baik, lakukan saja.” Kata Sharapov. Dan setelah kamu membuat keputusan, dia mengatakan untuk tetap dengan hal tersebut.” Tanpa belas kasihan.

Live Demo Memberikan Kritik dan Saran yang Positif

Tanpa tim pengujian yang cukup besar di belakang mereka, AuraLab mengandalkan pemain yang bermain demo game yang dikembangkannya di acara-acara game, konferensi, konvensi,dan banyak lagi, untuk menguji game mereka pada beberapa tahap. “Metodologi pengujian kami adalah untuk menjalankan setiap adegan secara terpisah,” kata Kuptshevich. “Dalam game dengan banyak adegan terkait, juga penting untuk dapat dengan mudah dalam menguji dari setiap lokasi di alur cerita. Kedengarannya klise, namun perlu diingat tentang hal itu dari awal, dan pembangunan pada umummnya akan lebih mudah.”

Untuk menggambarkan skrip scene yang dipotong, tim memutuskan untuk menggunakan coroutine lainnya. Komponen ini menggeneralisasi subrutin untuk multitasking nonpreemptive, dengan memungkinkan beberapa entry point untuk menangguhkan dan melanjutkan ekseskusi pada lokasi tertentu. Pilihan memberikan mereka fleksibilitas untuk mengelola asynchronous event, setelah menulis beberapa kode yang telah dikustomasi untuk mengelola event yang berkaitan dengan pemicu animasi.

Mereka menggunakan mesin Mecanim Animation State untuk logika. Menurut dokumentasi Unity, “Mesin Mecanim Animation State menyediakan cara untuk memperlihatkan semua klip animasi yang berhubungan dengan karakter tertentu dan memungkinkan berbagai event dalam game (misalnya, input dari pengguna) untuk memicu animasi yang berbeda.” (Untuk lebih jelasnya, tim mengacu pada pembaca untuk proyek kode, yang memiliki tautan ke buku Simon Jackson pada Mastering Unity 2D Game Development, yang mencakup mesin cover state secara mendalam. Kamu juga akan menemukan tautan ke contoh kode proyek dengan mesin state.

Tim AuraLab menekankan bahwa developer harus meluangkan waktu untuk membuat inspector khusus untuk class yang umum digunakan, karena mereka menambahkan banyak kekuatan dan fleksibiltas untuk sebagian besar alur kerja. “Dalam jangka panjang, hal itu akan menghemat waktu,” kata Kuptshevich.

Adapun tanggapan langsung dari pemain, Sharapov menatakan bahwa pengguna dengan cepat mengidentifikasi beberapa hambatan yang mengganggu pada gameplay yang harus diperbaiki. Akibatnya, mereka melakukan pekerjaan ulang untuk bagian dari demo, sehingga memudahkan pengguna untuk melewati hal ini dari awal sampai akhir. Namun, teka-teki lebih susah dalam pengembangan dan harus yakin untuk bisa menyenangkan orang banyak dalam konferensi.

Gambar 5 : Tim AuraLab berhasil menciptakan secene di Karma yang aneh, menarik, dan indah.

Karma memiliki hal menarik, soundtrack asli, dengan efek menarik dan aliran musik yang menenangkan. Tim kredit melakukan kolaborasi mereka dengan band Zmeiraduga, yang indah, dan musik yang telah dimprovisasi telah mengembangkan sedikit pengikut. Band melakukan improvisasi 100 persen musik yang berarti pengalaman konser yang sama sekali berbeda setiap kali keluar. Untuk membuat sisa efek suaranya, Kuvshinov menggunakan mikrofon, contoh gratis yang didistribusikan, dan imajinasi.

Sukses Multi-Patform

Berkat Unity Engine yang menawarkan fleksibilitas pada target output, AuraLab tidak kesulitan dalam menciptakan demo untuk beberapa platform. Saat ini AuraLab sudah mengembangkan game yang mendukung sistem operasi Microsoft Windows 7/8, Widows Vista, Windows XP SP 3, Mac, dan Android.

Selanjutnya, tm ini berencana mengembangkan game untuk AppleTV, Microsoft Xbox, dan Sony PlayStation setelah mereka merilis versi komersial pertama pada PC, Mac, iOS, dan Android.

“Unity Engine memungkinkan kita untuk merilis game secara multiplatform tanpa melakukan usaha yang terlalu banyak. Namun, kita harus melakukan refactor terhadap game kita beberapa kali sebelum game tersebut dirilis untuk beberapa platform sekaligus,” ucap Sharapov. Semua versi yang berbeda memiliki fitur unik, sehingga membantu untuk pengembangan game menggunakan game engine karena mengetahui subtleties.

“Setelah beberapa kali percobaan dan beberapa bulan melakukan refactoring kode, kita akan masuk ke titik di mana memiliki arstiektur yang stabil untuk proyek dan proses pembangunan kuat  yang memungkinkan kita untuk membangun game untuk masing-masing platform yang telah didukung pada satu kali proses dengan minimal pekerjaan,” kata Sharapov.

Salah satu dari sedikit perencanaan benar-benar membantu dalam tahap ini, tim selalu memikirkan gameplay untuk dapat berjalan di versi mobile dan desktop.  Mereka tahu bahwa mereka harus mengakomodasi berbagai jenis kontrol pengguna, dari gerakan menyentuh point-and-click. “Kami merencanakan gameplay dari awal sehingga kami bisa menangani kedua versi mobile dan desktop.” Ucap Sharapov. Dengan perencanaan untuk beberapa versi di depan, mereka menghindari pemrograman di bottleneck yang akan memakan waktu lebih lama untuk menyelesaikan jalannya.

Misalnya, tim mengingat ide bahwa pengguna mungkin tidak memiliki mouse atau hanya dapat menggunakan layar sentuh. Salah satu tempat yang muncul adalah ketika mereka merencanakan sebuah ikon”petunjuk”. Mereka menyadari juga bahwa mereka tidak bisa menarik elemen clickable kecil terlalu dekat satu sama lain, karena mereka membutuhkan zona tap yang besar bagi pengguna ponsel.

Sesi pengujian telah sering menyebabkan perbaikan mereka dan tidak akan pernah dianggap. “Kami belajar bagimana posisi kamera dan perbesaran pada scene yang dipotong untuk ponsel berbeda dibandingkan versi desktop,” kata Sharapov. “ Kami belajar dengan cepat”

Tim memasukkan ikon petunjut di sudut kanan bawah, membangun itu sehingga ketika petunjuk baru datang, lampu pada ikon mulai bersinar. Sayangnya, ketika mereka menguji petunjuk pada iPad, mereka mengetahui bahwa sebagian besar pengguna tidak melihat ikon petunjuk karena kecenderungan alami untuk menutup daerah tersebut dengan tangan ketika memegang tablet. Tanggapan mereka adalah untuk menambahkan dukungan tambahan untuk ikon petunjuk tepat ke viewport dari game. Sekarang lampu bersinar di atas kepala karakter utama dan di sudut kanan bawah.

Langkah Selanjutnya

Masa depan terlihat cerah bagi Pip dan AuraLab. Pada saat penulisan ini, tidak ada tanggal pengumuman untuk kehadiran Karma di 4 platform utama, namun tim bekerja keras untuk bisa menghadirkan game ini secepatnya.

AuraLab sudah merencakan episode kedua dari game ini untuk sepenuhnya mengeksplorasi Pip Incarnation ini. Mereka akan terus mengembangkan alur cerita dan meningkatkan lagi pertanyaan, teka-teki, dan labirin untuk game Karma. Selain itu, game harus lebih menyenangkan lagi.

Dan berdasarkan kesedian AuraLab untuk berbagi tips, trik, dan kode, mungkin mereka telah membangun sedikit karma positif untuk diri mereka sendiri.

Referensi:

* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.

Share
Published by
Intel Developer Zone

Recent Posts

Cisco Peringkatkan Kerentanan Kritis Dalam Cisco Data Center Network Manager

Cisco mengungkapkan tiga kerentanan dalam layanannya. Ini dia penanganannya!

January 7, 2020

Optimal idM Meluncurkan OptimalCloud Partner Platform

Ini ulasan mengenai keuntungan OptimalCloud Partner Platform, platform baru milik Optimal idM!

January 6, 2020

Google Siapkan Coral Accelerator Module dan Coral Dev Board Mini untuk Tahun 2020

Google kenalkan dua koleksi baru dari Coral. Dua koleksi baru ini bakal menambah kemampuan pengembangan…

January 3, 2020

Google Kembangkan Model Kecerdasan Buatan Untuk Deteksi Kanker Payudara

Raksasa Google baru saja mengembangkan sistem pemindaian kanker payudara berbasis kecerdasan buatan. Bagaimana hasilnya, berikut…

January 3, 2020

Google Dorong Fitur Bubbles Notifications Ke Versi Stabil

Meski dikenalkan bersamaan dengan Android 10 Beta, sampai kini Bubbles Notifications masih dalam tahap pengembangan.…

December 31, 2019

Samsung Siapkan Lima Proyek dan Empat Startup C-Lab Untuk CES 2020

Samsung akan kembali memamerkan hasil program C-Lab ke ajang CES 2020. Ini dia proyek dan…

December 30, 2019