Sabtu, 21 Juni 2014

GAME CLOSURE GAME ENGINE

Game Closure
Game Closure adalah sebuah pengembangan game berbasis mobile dengan menggunakan HTML5, yang memungkinkan para pengembang untuk membangun permainan dan meluncurkan gamenya, biasanya game closure di gunakan untuk membangun game untuk platform android dan iOS.
GC juga membuat seperti cross-compiller,browser costum, Perakitan ARM7,Shade GPU,Node.js&Python,API JavaScript game dan apapun yang di perlukan dalam perancangan untuk membuat sebuah game. GC di dukung oleh investor papan atas termasuk dari Highland,Benchmark dan greylock

Game closure sebagai HTML5 pengembangan dari game SDK dan mesin yang membantu studio game mengembangkan dan mempublikasikan game di seluruh ekosistem iOS dan Android. Game Closure SDK memungkinkan tim yang sangat kecil untuk membangun game kualitas produksi hanya dalam 4-6 minggu, dan itu termasuk kait untuk analisis, distribusi, versioning, internasionalisasi dan setiap penerbitan fitur lain yang diperlukan untuk mendapatkan permainan ke dalam 10 dan tetap di sana .

Bagi para pengembang yang ingin membuat game di berbagai perangkat mobile biasanya akan menggunakan HTML 5. Dan masalahnya adalah bahwa HTML5 belum dianggap sebagai sebuah platform yang sah untuk pengembangan sebuah game,mengingat kinerja lamban dan di bandingkan dengan iOS asli ataupun android.

Perusahaan game closure berharap untuk mengatasi rintangan tersebut dengan merilis SDK terbaru yang memungkinkan pembangunan hanya dalam JavaScript dengan kinerja yang lebih baik.dan perusahaan devkit mengatakan bahwa gameclosure akan memungkinkan user mengupload game yang mereka buat di appstore untuk iOS atau google play untuk android
"Pertandingan akan berjalan pada kecepatan asli, mengambil keuntungan penuh dari GPU yang kuat dan CPU dalam smartphone modern. Kami telah menangani semua perbedaan antara iOS dan Android untuk Anda," negara Permainan Penutupan. Itu termasuk kompilasi asli dengan dorongan, pembayaran dan banyak lagi.

Tapi seberapa cepat itu? Game closure mengatakan mesin inti dapat menangani 8.000 pada layar sprite pada 30 atau 60 frame per detik. Halaman utama memiliki video yang mendemonstrasikan gerakan halus tersebut sprite, dan game yang telah dikembangkan menunjukkan kehalusan mirip dengan tindakan.

Beberapa lusin game telah dipublikasikan di kedua toko aplikasi mobile. Permainan Penutupan mengklaim bahwa itu sudah diperiksa oleh "jutaan pengguna dan Top-10 tangga lagu di lebih dari 20 negara," membuktikan stabilitas platform dan popularitas.

Devkit gratis untuk penggunaan komersial dan 100 persen open-source. Perizinan adalah melalui kedua GPLv3 dan Game Penutupan Lisensi Gratis (GCFL).

memamerkan HTML5 berbasis cross-platform teknologi multiplayer gaming pada konferensi Google I / O hari ini. Perusahaan ini menggunakan sendiri permainan Popstar Pertahanan untuk membuktikan bahwa hal itu dapat membuat permainan tunggal, seluruhnya ditulis dengan bahasa HTML5, yang dapat berjalan pada web browser, iPhone, ponsel Android, tablet Android dan iPad.

The Popstar Defense permainan yang khas "menara pertahanan" permainan, di mana Anda harus mempertahankan bintang rock di atas panggung dari mendapatkan pusat perhatian dicuri dari beberapa rocker menyerang. Ini adalah permainan multiplayer dimana pengguna dapat berkolaborasi secara real-time, dan menggunakan grafis dua dimensi yang layak. Sebanyak 2.000 benda bergerak dapat di layar pada saat yang sama.

Karena ditulis dalam HTML5, tidak perlu untuk men-download plug-in untuk menjalankannya di browser compliant seperti Google Chrome. Permainan menggunakan kode yang sama di seluruh platform, sehingga pengembang tidak perlu melakukan versi yang berbeda untuk setiap perangkat baru. Pengguna dapat mengirimkan link web sederhana untuk mengundang pemain lain untuk bergabung dengan permainan. Itulah sesuatu yang generasi sekarang game Facebook tidak mengizinkan. Dengan Game Closure, pengembang dapat menulis dalam murni JavaScript dan kemudian menggunakan antarmuka pemrograman aplikasi HTML5 standar. Permainan Penutupan itu software development kit akan mengkompilasi, menyebarkan dan mempercepat game pada perangkat tertentu. Ketika permainan berjalan pada platform non-browser seperti ponsel, permainan Penutupan menciptakan teknologi aplikasi asli seperti OpenGL. Itu penting untuk mendapatkan permainan untuk berjalan pada kecepatan jauh lebih cepat daripada yang mungkin dengan HTML5.

Jika ini terdengar akrab, itu cukup mirip dengan rencana permainan dari Sibblingz, yang juga menciptakan teknologi pengembangan game cross-platform yang mencapai seluruh platform yang lebih seperti RIM PlayBook atau Palm WebOS. Michael Carter, co-founder, mengatakan bahwa sesuai dengan kuat perusahaan adalah fokus pada real-time multiplayer dan alat pengembang mulus. Tetapi fokus untuk saat ini tidak benar-benar 3D.

Teknologi ini diciptakan oleh Carter, Martin Hunt dan Tom Fairfield. Semua dari mereka memiliki latar belakang di permainan dan web startups seperti Meebo. Setelah perusahaan pertama mengumumkan teknologi beta pada bulan Februari, lebih dari 7.000 pengembang mendekati game closure
-------------------------------------------------------------------------------------------------------------------------------
Kebanyakan orang menyukai pengalaman interaktif bermain game multiplayer realtime, namun sebagian besar game di App Store saat ini hanya dapat memaikan single player. Bahkan game sosial populer di Facebook tidak menawarkan pengalaman yang kaya klasik multiplayer game konsol seperti Halo. Hal ini tampaknya sebagian besar disebabkan oleh fakta bahwa coding, sinkronisasi, dan de-buggings diperlukan untuk menulis game multiplayer masih sangat sulit, memakan waktu, dan juga mahal. Hal yang sama juga berlaku untuk multi-platform, multiplayer game.

Game Closure, yang pada dasarnya adalah versi game dari Heroku dan Appcelerator, memungkinkan developer game untuk menulis permainan dalam JavaScript dan menggunakan API HTML5 standar. SDK digunakan untuk mengkompilasi, menyebarkan, dan mempercepat permainan. Tidak ada plug-in yang diperlukan, hanya browser Web, dan browser lama akan dilakukan. Ketika permainan Anda berjalan pada platform non-browser seperti perangkat mobile dan tablet, SDK menciptakan aplikasi yang menggunakan API seperti OpenGL. Seperti pesaing mereka, game clouser menawarkan segala yang dibutuhkan untuk membangun dan menyebarkan permainan mereka dengan kecepatan warp pengembang.

Biasanya pemain terbiasa mengalami Platform lock-in ketika sedang bermain game. Game Clouser memiliki kelebihan yaitu memungkinkan pemain untuk menjalankan game ke perangkat hampir semua dan menyediakan pengembang dengan semua alat untuk membuat distribusi cross-platform cepat dan mudah.

Game Clouser adalah proyek dari Michael Carter, Martin Hunt, dan Tom Fairfield, semuanya memiliki pengalaman sebelumnya dengan pengembangan game. Carter merancang protokol WebSocket awal untuk HTML5 dan Hunt sebelumnya bekerja di Meebo, di mana dia memimpin pengembangan dari "Meebo Bar".

Fellow TechCruncher MG Siegler menulis posting minggu lalu tentang bagaimana pengalaman pengguna secara keseluruhan dari aplikasi jauh melebihi aplikasi berbasis HTML5. Carter mengatakan bahwa dia setuju dengan penilaian ini. Selama persidangan awal permainan berjalan di HTML5 pada ponsel, ia menemukan bahwa "berjalan 30 kali lebih lambat dari browser". Namun, karena HTML5 memiliki seperangkat jauh lebih kaya dan optimasi, itu jauh lebih rumit untuk mengembangkan game-game di HTML5. Untuk mengatasi masalah ini, GC SDK dipercepat untuk digunakan pada perangkat mobile.

Menurut Carter, semua studio perlu dilakukan belajar bagaimana menggunakan teknologi HTML5 standar dan Game Closure akan menjadi aplikasi dan menyebarkan permainan mereka pada setiap platform yang relevan.
Instalasi Game Closure
Panduan penginstalan ini untuk Linux dan OSX. Sebelum melakukan penginstalan devkit game closure lebih baik menginstall software berikut :
1.      Git
Git ini digunakan untuk mengunduh atau mendownload source aplikasi devkit game closure yang berada pada cloud guthub.

2.      Node.js
Node.js adalah sebuah platform dibangun di atas JavaScript runtime Chrome untuk dengan mudah membangun aplikasi jaringan scalable. Node.js menggunakan event-driven, non-blocking I / O model yang membuatnya ringan dan efisien, cocok untuk aplikasi real-time data-intensif yang berjalan di perangkat didistribusikan.

3.      Java
Java adalah bahasa pemrograman yang multi platform dan multi device. Sekali anda menuliskan sebuah program dengan menggunakan Java, anda dapat menjalankannya hampir di semua komputer dan perangkat lain yang support Java, dengan sedikit perubahan atau tanpa perubahan sama sekali dalam kodenya. Aplikasi dengan berbasis Java ini dikompulasikan ke dalam p-code dan bisa dijalankan dengan Java Virtual Machine. Fungsionalitas dari Java ini dapat berjalan dengan platform sistem operasi yang berbeda karena sifatnya yang umum dan non-spesifik.

4.      Chrome
Chrome adalah sebuah peramban web sumber terbuka yang dikembangkan oleh Google dengan menggunakanmesin rendering WebKit. Proyek sumber terbukanya sendiri dinamakan Chromium.

Cara termudah untuk menginstal software ini adalah melalui installer masing-masing atau  anda dapat menggunakan manajer paket, seperti Homebrew pada OSX, Yum pada Fedora Linux untuk selalu melakukan update ketika ada pembaharuan software dari pihak tersebut. Web browser Chrome adalah software yang mensupport game closure karena debugging toolset unggulannya.

Jika Anda menggunakan OSX dan melakukan installasi devkit game closure, anda harus menginstal software Xcode Command Line dari situs Pengembang Apple. Anda mungkin akan disaran kan untuk mendownload software tersebut.

Xcode adalah sebuah suite of tools, yang dikembangkan oleh Apple, untuk mengembangkan software untuk platform Mac OS X dan iOS. Untuk menggunakan Xcode, tentunya kita harus menggunakan Mac OS X. Untuk mendownload Xcode, dapat didownload dari situs resmi Apple di  http://developer.apple.com/technologies/xcode.html.
Xcode adalah integrated development environment (IDE) yang berisi seperangkat alat pengembangan perangkat lunak yang dikembangkan oleh perusahaan Apple yang berfokus pada pengembangan perangkat lunak untuk OS X dan iOS. XCode itu sendiri pertama kali dirilis pada tahun 2003, perluncuran tersebut didukung dengan versi 4.6 terbaru dan tersedia Mac App Store secara gratis untuk Mac OS X Lion and OS X Mountain Lion. Aplikasi utama dari perangkat ini adalah integrated development environment (IDE), yang juga bernama Xcode. Xcode Suite juga mencakup sebagian besar pengembangan dokumentasi Apple, dan built-in Interface Builder, sebuah aplikasi yang digunakan untuk membangun graphic interface.
Xcode juga mencakup versi modifikasi dari GNU Compiler Collection, di Xcode 3.1 dan llvm-gcc compiler dimana semua tersusun secara sistematis dalam file dan group. Hal pertama yang perlu kita ketahui adalah framework. Framework merupakan perpustakaan yang berisi kode-kode untuk dibangun kedalam sebuah XCode, sama seperti class-class pada java, dan unit-unit VCL pada delphi. Setiap Aplikasi yang dibuat di XCode merujuk pada framework. Karena sebenarnya tidak ada aplikasi tanpa framework termasuk XCode ini.

Text editor pada MacOSX kami sarankan mengedit permainan anda dalam kode JavaScript dengan Sublime Text 3 Beta dengan plugin NBSP yang sudah terinstall.

Plugin NBSP memungkinkan anda untuk dengan mudah menuliskan kode kode program dalam bentuk karakter seperti NBSP yang cenderung untuk memberikan sugesti atau biasa disebut sebagai spelling untuk kode JavaScript. Hal ini menyebabkan masalah yang sulit-untuk-debug di mana kode terlihat baik-baik saja dalam editor, tapi browser seperti Chrome memunculkan error atau biasa disebut sebagai kesalahan. Biasanya kesalahan akan menjadi sesuatu seperti "Unexpected tanda {". Ini bisa juga terjadi di JSON pada file yang anda edit.

Setelah Anda memiliki Sublime Text 3 yang telah diinstall pada klomputer anda selanjutnya anda dapat melakukan penginstalan NBSP, untuk menginstal plugin nbsp:

·         Buka aplikasi Sublime Text 3
·         Dalam "Sublime Text" menu di bagian kiri atas, pilih "Preferences" => "Browse Paket ..."
·         Folder pengguna Anda harus terbuka di Finder.
·         Tarik "sublime_unicode_nbsp.py" file dari plugin ke folder User.

Sekarang karakter bermasalah seperti NBSP akan disorot dalam warna merah dan Anda dapat menghapusnya dan menggantinya.
Setelah anda melakukan installasi software software yang diperlukan sekarang anda install devkit game closure

Dengan prasyaratan software yang diinstall diatas, anda siap untuk menginstall Game Closure devkit dari library dan tools yang open source di GitHub Game Closure. Pengupdatean aplikas, tools, maupun fitur fiture Game Closure di sediakan di github tersebut yang dimiliki oleh official dari Game Closure sendiri.

Untuk men-download Game Closure devkit, anda dapat menjalankan perintah berikut di terminal dan tunggu sampai prosesnya selesai :


Perintah ini akan mendownload devkit dalam ke direktori ./devkit terletak pada directory atau folder kerja anda saat ini. Tempat yang saya rekomendasikan untuk menempatkan itu akan berada di direktori home anda. Setelah perintah github tersebut selesai mendowload pindah ke direktori tersebut dengan perintah berikut :

$ cd devkit
$. /Install.sh

Perintah diatas akan memindahkan directory kerja anda ke dalam directory devkit, didalam directory devkit tersebut terdapat kode kode untuk menginstall aplikasi devkit Game Closure. Pada perintah kedua dijalankan program install pada directory devkit tersebut. File tersebut adalah file shell yang berisi perintah perintah shell dan file tersebut dapat dieksekusi dengan ./ nama file. Untuk melihat daftar perintah dari devkit ini, jalankan perintah dibawah ini pada terminal anda :

$ Basil

Ini akan mencetak daftar perintah dari basil. Anda bisa mendapatkan bantuan untuk perintah tertentu dengan mengetikkan basil help [perintah], misalnya:

$ Basil help init

Perintah bantuan juga dapat menggunakan argumen-h untuk menampilkan bantuan. Untuk melakukan pengupdatetaan devkit Game Closure anda dapat menuliskan perintah dibawah ini pada terminal anda.

$ basil update

Perintah update juga dapat memeriksa versi saluran devkit atau berbeda dari versi devkit. Baca menu bantuan dengan pembaruan kemangi - help untuk informasi lebih lanjut tentang alat yang fleksibel ini.


Installasi Game Closure Pada Windows

Persyaratan sebelum anda menginstall devkit pada platform windows. Berikut ini adalah daftar prequisites untuk menjalankan Game Closure devkit pada Windows. Lihat bagian bawah untuk tips konfigurasi.

1.      msysgit
Installer penuh harus digunakan karena berisi git pesta command prompt yang diperlukan untuk menjalankan kemangi dan perintah di bawah ini. The pilihan default selama proses instalasi akan bekerja dengan GC devkit. Jadi, sebenarnya apa yang dimaksud dengan Git? Ini adalah bagian penting untuk dipahami, karena jika anda memahami apa itu Git dan cara kerjanya, maka dapat dipastikan anda dapat menggunakan Git secara efektif dengan mudah. Selama mempelajari Git, cobalah untuk melupakan VCS lain yang mungkin telah anda kenal sebelumnya, misalnya Subversion dan Perforce. Git sangat berbeda dengan sistem-sistem tersebut dalam hal menyimpan dan memperlakukan informasi yang digunakan, walaupun antar-muka penggunanya hampir mirip. Dengan memahami perbedaan tersebut diharapkan dapat membantu anda menghindari kebingungan saat menggunakan Git. Git ini digunakan untuk mengunduh atau mendownload source aplikasi devkit game closure yang berada pada cloud guthub.

2.      Node.js (> 0,8)
Node.js adalah sebuah platform dibangun di atas JavaScript runtime Chrome untuk dengan mudah membangun aplikasi jaringan scalable. Node.js menggunakan event-driven, non-blocking I / O model yang membuatnya ringan dan efisien, cocok untuk aplikasi real-time data-intensif yang berjalan di perangkat didistribusikan.

3.      NPM

4.      Java JDK
Java adalah bahasa pemrograman yang multi platform dan multi device. Sekali anda menuliskan sebuah program dengan menggunakan Java, anda dapat menjalankannya hampir di semua komputer dan perangkat lain yang support Java, dengan sedikit perubahan atau tanpa perubahan sama sekali dalam kodenya. Aplikasi dengan berbasis Java ini dikompulasikan ke dalam p-code dan bisa dijalankan dengan Java Virtual Machine. Fungsionalitas dari Java ini dapat berjalan dengan platform sistem operasi yang berbeda karena sifatnya yang umum dan non-spesifik.
Seperti namanya, JDK adalah semacam kotak peralatan (kit) yang digunakan untuk development. JDK ini berguna saat Anda menulis code program. Seperti halnya JRE, JDK juga memiliki JVM di dalamnya.

• javac, yaitu program untuk meng-compile kode sumber
• java, yaitu program untuk meluncurkan aplikasi

5.      Chrome
Chrome adalah sebuah peramban web sumber terbuka yang dikembangkan oleh Google dengan menggunakanmesin rendering WebKit. Proyek sumber terbukanya sendiri dinamakan Chromium. Web browser Chrome adalah web browser yang mendukung devkit karena alat debugging unggulannya. Ini adalah browser yang kita gunakan untuk mengembangkan devkit Game Closure dan uji terhadap.

Android Development

·         Android SDK
Android-SDK merupakan tools bagi para programmer yang ingin mengembangkan aplikasi berbasis google android. Android SDK mencakup seperangkat alat pengembangan yang komprehensif. Android SDK terdiri dari debugger, libraries,handset emulator,dokumentasi, contoh kode, dan tutorial. Saat ini Android sudah mendukung arsitektur x86 pada Linux (distribusi Linux apapun untuk desktopmodern), Mac OS X 10.4.8 atau lebih, Windows XP atau Vista. Persyaratan mencakup JDK, Apache Ant dan Python 2.2 atau yang lebih baru. IDE yang didukung secara resmi adalah Eclipse 3.2 atau lebih dengan menggunakan pluginAndroid Development Tools (ADT), dengan ini pengembang dapat menggunakan teks editor untuk mengedit file Java dan XML serta menggunakan peralatan command line untuk menciptakan, membangun, melakukan debug aplikasi Android dan pengendalian perangkat Android (misalnya, reboot, menginstal paket perangkat lunak dengan jarak jauh). Android SDK telah dirilis pada tanggal 12 November 2007. Dan pada tanggal 15 Juli 2008 tim Android Developer Challenge sengaja mengirimkan email ke semua pendatang di Android Developer Challenge untuk mengumumkan bahwa rilis SDK terbaru telah tersedia pada halaman download pribadi. Email tersebut juga ditujukan kepada pemenang Android Developer Challenge putaran pertama. Sebuah penyataan bahwa Google telah menyediakan rilis SDK terbaru untuk beberapa pengembang dan bukan untuk orang lain. Pada tanggal 18 Agustus 2008, Android SDK 0.9 beta dirilis. Rilis ini menyediakan API yang diperbarui dan diperluas, perbaikan pada alat-alat pengembangan dan desain terbaru untuk layar awal. Petunjuk untuk meng-upgrade SDK sudah tersedia pada rilis sebelumnya. Pada tanggal 23 September 2008, Android 1.0 SDK telah dirilis. Pada tanggal 9 Maret 2009, Google merilis versi 1.1 untuk telepon seluler Android. Rilis terbaru tersebut termasuk dukungan untuk pencarian dengan suara, harga aplikasi, perbaikan jam alarm, perbaikan pengiriman gmail, perbaikan surat pemberitahuan dan peta. Pada pertengahan Mei 2009, Google merilis versi 1.5 (Cupcake) pada sistem operasi Android dan SDK. Pembaruan ini termasuk banyak fitur baru seperti perekaman video, dukungan untuk bluetooth, sistem keyboard pada layar dan pengenalan suara. Rilis ini juga membuka AppWidget framework kepada para pengembang yang memungkinkan orang untuk membuat widget sendiri pada halaman home. Pada September 2009 versi 1.6 (Donut) dirilis yang menampilkan hasil pencarian yang lebih baik dan penggunaan indikator baterai. Aplikasi Android dipaketkan ke dalam format .apk dan disimpan pada folder /data/app. Pengguna dapat menjalankan perintah adb root untuk mengakses folder tersebut karena root memiliki izin untuk mengakses folder tersebut
·         Android NDK
Apps Android biasanya ditulis di Java, dengan desain berorientasi objek elegan. Namun, pada waktu, Anda perlu mengatasi keterbatasan Java, seperti manajemen memori dan kinerja, dengan pemrograman langsung ke antarmuka native Android. Android menyediakan asli Development Kit (NDK) untuk mendukung pengembangan asli di C / C + +, selain Software Development Kit Android (Android SDK) yang mendukung Java.

·         Apache Ant
Apache Ant adalah software berbasis Java yang digunakan untuk keperluan build tool. Sebagai build tool, tugas utama dari Ant adalah untuk menyediakan sumber daya dan melaksanakan proses yang memungkinkan membangun suatu software dari bentuk source code menjadi aplikasi yang siap didistribusikan atau bahkan telah diinstall pada remote server. Meskipun definisi tersebut kelihatannya sederhana, kita akan melihat bahwa Ant mempunyai banyak sekali tasks yang bisa digunakan untuk berbagai keperluan sesuai dengan tujuan utama dari build tool. Ada banyak build tool yang tersedia, beberapa diantaranya adalah build tool yang bersifat spesifik untuk sistem operasi tertentu. Ant merupakan software untuk keperluan build tool yang bersifat cross platform, bisa digunakan pada berbagai sistem operasi yang mendukung Java. Meskipun demikian, pembahasan dalam tulisan ini akan menggunakan Linux. Jika anda menggunakan Windows, silahkan sesuaikan dengan sistem operasi anda (hanya jika diperlukan). Selama tidak menggunakan fitur spesifik dari sistem operasi yang bersangkutan (diantaranya dengan tag <exec>), maka pembahasan ini bersifat cross platform.

Cara termudah untuk menginstal paket ini adalah melalui installer masing-masing. Perhatikan lokasi bahwa setiap dependensi di atas dipasang untuk karena mereka akan perlu ditambahkan ke PATH lingkungan Windows Anda. Untuk beberapa dependensi di atas mereka datang sebagai download zip bukan installer. Dalam kasus ini, mereka perlu membuka ritsleting dan lokasi file unzip perlu ditambahkan ke PATH anda. [Hal ini berlaku untuk Android NDK, semut membangun alat-alat, dan SDK Android saat menggunakan bundel adt]
Web and Native Development
·         {npm install location}
·         {java install location}\jdk1.7.0_13\bin
Android Development
·         {android-ndk install location}\android-ndk-r9\prebuilt\windows\bin
·         {android-ndk install location}\android-ndk-r9
·         {ant install location}\apache-ant-1.8.4\bin
·         {android-sdk install location}\android-sdk\tools
·         {android-sdk install location}\android-sdk\platform-tools
Tergantung pada versi Windows, path lengkap ke direktori bin NDK mungkin terlihat seperti ini sebagai gantinya:
·         {android-ndk install location}\android-ndk-r9\prebuilt\windows-x86_64\bin
Jika Anda membutuhkan bantuan mengkonfigurasi path merujuk ke dokumen ini yang menjelaskan cara mengkonfigurasi variabel lingkungan java.

Misalnya, jalan Anda mungkin berisi berikut setelah menambahkan segalanya. Perhatikan bahwa beberapa jalur di bawah ini ditambahkan secara otomatis oleh installer dan Windows. Juga perlu diketahui bahwa jalur ini akan berbeda berdasarkan lokasi di mana Anda menginstal dependensi.
C:\android-ndk-r9\prebuilt\windows\bin; C:\android-ndk-r9;
C:\Program Files\Java\jdk1.7.0_13\bin; C:\apache-ant-1.8.4\bin; C:\Users\gc\AppData\Local\Android\android-sdk\tools; C:\Users\gc\AppData\Local\Android\android-sdk\platform-tools; C:\Users\gc\AppData\Roaming\npm\; %SystemRoot%\system32;%SystemRoot%; %SystemRoot%\System32\Wbem; %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; C:\Program Files\nodejs\
Dengan persyaratan software yang diinstall diatas dan juga settingan path yang sudah anda atur, anda siap untuk menginstall Game Closure devkit dari library dan tools yang open source di GitHub Game Closure. Pengupdatean aplikas, tools, maupun fitur fiture Game Closure di sediakan di github tersebut yang dimiliki oleh official dari Game Closure sendiri.

Untuk men-download Game Closure devkit, anda dapat menjalankan perintah berikut di terminal dan tunggu sampai prosesnya selesai :


Perintah ini akan mendownload devkit dalam ke direktori ./devkit terletak pada directory atau folder kerja anda saat ini. Tempat yang saya rekomendasikan untuk menempatkan itu akan berada di direktori home anda. Setelah perintah github tersebut selesai mendowload pindah ke direktori tersebut dengan perintah berikut :

$ cd devkit
$. /Install.sh

Perintah diatas akan memindahkan directory kerja anda ke dalam directory devkit, didalam directory devkit tersebut terdapat kode kode untuk menginstall aplikasi devkit Game Closure. Pada perintah kedua dijalankan program install pada directory devkit tersebut. File tersebut adalah file shell yang berisi perintah perintah shell dan file tersebut dapat dieksekusi dengan ./ nama file. Untuk melihat daftar perintah dari devkit ini, jalankan perintah dibawah ini pada terminal anda :

$ Basil

Ini akan mencetak daftar perintah dari basil. Anda bisa mendapatkan bantuan untuk perintah tertentu dengan mengetikkan basil help [perintah], misalnya:

$ Basil help init

Perintah bantuan juga dapat menggunakan argumen-h untuk menampilkan bantuan. Untuk melakukan pengupdatetaan devkit Game Closure anda dapat menuliskan perintah dibawah ini pada terminal anda.

$ basil update

Perintah update juga dapat memeriksa versi saluran devkit atau berbeda dari versi devkit. Baca menu bantuan dengan pembaruan kemangi - help untuk informasi lebih lanjut tentang alat yang fleksibel ini.


Membuat Project

            Dengan basil yang sudah terinstall pada computer anda, anda siap untuk membuat proyek baru! Buka terminal dan arahkan ke direktori proyek dalam folder devkit Anda. Inisialisasi pertandingan di direktori proyek baru dengan menjalankan:

            $ basil init hello-world

Hal ini akan menciptakan direktori hello-dunia. Pada directory aktif saat ini, dan menghasilkan aplikasi baru yang memiliki templet "kosong". Sekarang Anda dapat beralih ke direktori proyek baru dan melayani aplikasi:

$ cd ./hello-word
$ basil serve

            Secara default, basil menjalankan server pada mesin anda di alamat http://localhost:9200. Untuk mengakses antarmuka untuk proyek tersebut, cukup mengarahkan browser web Anda untuk url ini. Jika Anda ingin menentukan port alternatif untuk server aplikasi Anda, hanya lulus sebagai opsi-p :

            $ basil serve –p 8080

            Jadi dalam hal ini, antarmuka web bisa diakses di url http://localhost:8080.

Catatan: Untuk mendapatkan hasil maksimal dari debugging di browser web, kita terutama mendukung web browser Chrome. Jadi untuk sisa panduan ini kita akan berasumsi Anda menggunakan itu.

Dengan server berjalan dan dibuka di browser web Anda, klik tab bernama Proyek di sebelah kiri, lalu pilih permainan yang baru dibuat, diberi label Proyek Baru dalam daftar proyek. Untuk mengubah judul proyek Anda, edit file manifest.json terletak di root direktori proyek Anda-Anda dapat menemukan daftar lengkap dari pengaturan proyek di Manifest Options Guide.



Dengan proyek ini dimuat, meluncurkan simulator untuk itu dengan mengklik tombol Simulasikan yang terletak di sudut kiri atas.



Berikut ini adalah aplikasi pertama Anda berjalan di browser! Pretty cool, kan?

Simulator adalah perkiraan bagaimana permainan Anda akan berperilaku ketika berjalan pada perangkat mobile. Tapi, kita masih dalam browser web, yang berarti kita dapat berinteraksi dengan itu, debug itu, dan menggunakan semua alat pengembangan web besar kami telah digunakan ketika membuat permainan. Hei, coba tebak, kita dapat melakukan hal-on asli juga!

Catatan: Jika Anda bekerja pada sebuah proyek yang tidak dibuat dengan kemangi init (mungkin Anda sudah download dari tempat lain), Anda harus mendaftar sebelum proyek itu tersedia di antarmuka web Anda. Untuk melakukan hal ini, gunakan perintah mendaftar kemangi di root folder dari proyek Anda:

            $ cd ./anotherproject
            $ basil register

Setelah mendaftarkan proyek Anda, jika Anda menjalankan basil melayani Anda akan melihat proyek baru di antarmuka web. Daftar proyek yang terdaftar dipertahankan dalam file config.json terletak di root kemangi Anda menginstal dan dapat diedit langsung.

Alat kemangi memiliki sejumlah perintah untuk membantu Anda dalam menciptakan, membangun, dan menyebarkan permainan Anda. Untuk daftar perintah yang tersedia, jalankan kemangi bantuan atau basil-h di dalam terminal. Selain itu, setiap perintah basil mungkin memiliki pilihan sendiri. Anda dapat menambahkan-h bendera untuk perintah untuk melihat bantuan yang tersedia untuk itu:

Struktur project

Bila Anda menginisialisasi permainan baru, sebuah proyek kemangi dibuat menggunakan struktur direktori berikut:


Untuk sebagian besar, Anda akan paling tertarik pada file yang terdapat di direktori src, karena setiap file yang Anda buat untuk permainan Anda akan disimpan di sini. Ada satu file yang dibutuhkan di sini,. / Src / application.js, yang merupakan titik awal untuk permainan Anda. Bila Anda membuat proyek baru dengan menggunakan kemangi init / src / application.js file terlihat seperti ini:

File ini mendefinisikan titik masuk ke dalam permainan Anda: initUI dan launchUI, yang merupakan metode callback diwarisi dari GC.Application.

Dalam contoh sederhana ini, TextView diimpor ke dalam file, ditambahkan ke adegan grafik, dan digunakan untuk menulis kalimat "Hello, world!" Ke layar. Kelas dan sistem modul devkit permainan Penutupan menggunakan rinci di Utilities API dokumentasi.

Pemeriksaan dan Debugging

Tombol UI Inspektur di bagian atas jendela simulator membuka pemetaan seperti pohon dari semua Views aktif dalam permainan Anda.


Menelusuri inspektur dan Anda akan melihat bahwa ada TextView dalam hirarki bernama 'TextView2: Hello, world'.

Menggunakan web browser Chrome, membuka debugging konsol JavaScript dengan mengklik ikon pengaturan, kemudian "Tools> JavaScript Console." Dalam pane ini Anda dapat melihat semua log debugging dari aplikasi dan kesalahan JavaScript. Anda dapat mengatur breakpoints dalam kode game seperti aplikasi web JavaScript lainnya. Untuk informasi lebih lanjut tentang menggunakan debugger Chrome, lihat dokumentasi untuk Developer Tools Chrome.

Di bagian bawah panel konsol, beralih konteks konsol JavaScript dari frame> <top ke <Simulator_0>. Sekarang Anda dapat mengakses variabel dari aplikasi Anda secara langsung, asalkan mereka berada dalam lingkup yang benar. Untuk mencobanya, masuk GC.app akan mengembalikan instance dari aplikasi Anda. Jika Anda menambahkan simulator tambahan (Pilih Simulator-> Tambah Simulator ...), Anda dapat mengakses setiap lingkungan eksekusi JavaScript dengan beralih ke frame yang sesuai.

Sekarang, jika kita ingin mengubah "Hello, world!" Text, dari konsol, sementara aplikasi berjalan, kita bisa mengebor memiliki hirarki pandangan kami dan ambil referensi ke instance dari TextView. Kita tahu dari melihat-UI Inspektur bahwa TextView tunggal adalah anak langsung dari tampilan aplikasi utama, sehingga kita dapat referensi menggunakan metode accessor view pada GC.app:

var textview = GC.app.view.getSubviews()[0]; //select the first child view

Seperti disebutkan, GC.app adalah turunan dari aplikasi didefinisikan dalam proyek sebagai file src / application.js. GC.app.view adalah akar dari grafik adegan yang dilihat melekat juga jadi mereka akan diberikan.

Metode getSubviews mengembalikan array yang berisi semua anak-anaknya. Di sini, kita hanya ambil yang pertama (dan satu-satunya objek) dalam koleksi ini.Dengan mengacu pada TextView, kita dapat menggunakan API untuk mengubah teks untuk sesuatu yang lain:

textview.updateOpts({size: 42});
textview.setText("We did it!");

Perhatikan bagaimana Anda dapat melihat perubahan langsung di browser Anda! Hal ini membuat coding-debug loop umpan balik ketat dan pengembang ramah.



Tentu saja, Anda juga dapat mengedit properti dari TextView langsung di UI Inspektur yang membuatnya sangat mudah untuk melihat bagaimana perubahan terlihat segera. Memiliki akses ke elemen permainan di inspektur dan konsol membuat untuk lingkungan pengembangan yang sangat kuat. Tapi, jika Anda ingin bertahan perubahan ini dalam aplikasi Anda, Anda masih perlu mengedit file sumber Anda.

Install The Examples

Sekarang bahwa Anda telah melihat bagaimana contoh dasar dibuat, saatnya untuk melihat melalui beberapa proyek yang lebih rumit! Anda dapat menginstal contoh addon dan download banyak contoh kode untuk menjalankan dan melihat melalui:

$ basil install examples

Addon ini menginstal kumpulan proyek yang menunjukkan beberapa teknik pengembangan game menggunakan devkit permainan Penutupan. Ketika Anda menjalankan kemangi Anda akan dapat melihat sumber dijelaskan untuk setiap isi dan menjalankan proyek-proyek, dan juga.


Scaling the Game to Fit the Device
Dalam panduan ini untuk melihat bagaimana skala permainan dengan cara yang sesuai dengan beberapa aspek rasio perangkat. Contoh ini merupakan bagian dari contoh add-on, yang dapat diinstal ke basil dengan baris perintah.berikut:
$ basil install examples
Pada web interface, arahkan ke  Projects > Examples > Layout: Scale Region untuk menjalankan contoh di simulator.
Hal ini juga dapat dilihat secara online bersama dengan contoh-contoh lain.
Aspect Ratio
Aspect Ratio pada layar menggambarkan hubungan proporsional antara lebar dan tingginya.
Berikut adalah cara rasio aspek 4:3 (green box) dan 03:02 (red box) bisa cocok dalam aspek rasio 16:9 (blue box) sambil menjaga semua aspek rasio dan tanpa peregangan. Perhatikan padding tambahan pada margin kanan dan kiri green box dan red box.
aspect ratio 1
Dan inilah bagaimana 16:9 dan 03:02 rasio aspek terbatas dalam rasio 4:3;
sekarang ada bantalan vertikal di bagian atas dan bawah:
aspect ratio 2
Dalam diagram ini rasio yang berbeda terpusat dalam tampilan menghambat. Jika diinginkan, rasio dibatasi bisa diposisikan di sepanjang tepi, meninggalkan padding tambahan sepanjang tepi berlawanan
Dimensi populer dari rasio aspek yang berbeda:
16:9
·         1280 × 720 (Galaxy Nexus)
·         1136 × 640 (iPhone 5)
·         1024 × 576
·         720 × 405
3:2
·         1080 × 720 (High-definition TV)
·         960 × 640 (iPhone 4)
·         864 × 576
·         480 × 320 (iPhone 3)
4:3
·         2048 × 1536 (iPad 3 & 4)
·         1024 × 768 (iPad 1 & 2)
·         960 × 720
·         768 × 576
·         427 × 320
·         320 × 240

Calculate Scaling
Disini akan mendefinisikan wilayah yang dapat ditampilkan maksimum untuk permainan yaitu 576 x 1024 piksel. Hal ini karena pada kebanyakan ponsel lebar maksimum tekstur adalah 1024 piksel. Pengembang game harus bekerja dalam 576 x 1024 koordinat ruang, cara itu posisi mereka dalam game bisa konsisten di semua aspek rasio yang berbeda dengan skala ruang ini. Disini menggunakan pixel koordinat karena, saat ini, resolusi yang paling ekstrim di ponsel populer adalah 720 x 1280, dan dapat dengan mudah skala dimensi kerja naik 25 persen mencapai ini: 576 * 1,25 = 720, 1024 * 1,25 = 1.280.
Semuanya 576 x 1024 rectangle akan ditampilkan di telepon, terlepas dari dimensi perangkat. Setiap aset seni harus disampaikan relatif terhadap dimensi-dimensi ini.
Jadi, dalam kode contoh tercantum di bawah ini, yang akan menentukan daerah dapat ditampilkan maksimum untuk bagian terlihat dari game ini:
var boundsWidth = 576;
var boundsHeight = 1024;
Di sini, telah ditetapkan daerah yaitu 576 x 1024 piksel, dan karena akan dilihat di bawah ini adalah dimensi yang digunakan untuk gambar latar belakang dalam contoh. Ini adalah aspek rasio dalam modus potret, terluas yang tersedia di ponsel lebih populer seperti yang ditunjukkan di atas 16:9.
Jadi akan menggunakan nilai-nilai ini untuk menghitung dimensi dasar dan skala yang digunakan untuk pandangan top-level. Ini memberi 576 x 864 persegi panjang yang akan digunakan sebagai dasar permainan dan setiap layar koordinat untuk posisi dalam game harus diberikan dalam dimensi ini. Dalam kode di bawah, akan menghitung skala untuk diterapkan ke koordinat yang akan cocok untuk perangkat.
Untuk modus potret, berikut adalah cara untuk menghitung dimensi dasar persegi panjang dan skala:
var baseWidth = bounds_width; //576
var baseHeight = device.screen.height * (boundsWidth / device.screen.width); //864
var scale = device.screen.width / baseWidth; //1
Mengganti variabel untuk menghitung tinggi akan mendapatkan: 480 * (576/320) = 864.
Dan dalam landscape mode, hanya dapat membalikkan perhitungan ini:
var baseWidth = device.screen.width * (boundsHeight / device.screen.height); //864
var baseHeight = boundsHeight; //576
var scale = device.screen.height / baseHeight; //1

Scale the Top-Level View

Scaling pandangan memastikan bahwa semua pandangan anaknya juga ditingkatkan. Untuk pusat pandangan permainan pada layar, mengatur ukuran dan skala dari pandangan akar dalam scene graph, yang merupakan GC.app.view:
GC.app.view.style.scale = scale;
Anda juga dapat memposisikan overflow dalam arah tertentu dengan offsetting posisi tersebut.
Positioning Game Assets
Dengan set dasar persegi panjang, secara dinamis dapat posisi aset permainan di layar sehingga mempertahankan posisi relatif yang terlepas dari aspek rasio perangkat. Misalnya, untuk posisi sprite di tengah gambar latar belakang, cukup menetapkan itu x dan posisi y setengah dari lebar dan tinggi basis wilayah:

Art Deliverables

Karena kita telah menetapkan wilayah yang dapat ditampilkan permainan ke koordinat layar 576 x 1024 piksel, ini harus menjadi dimensi yang bisa dikirim. 1024 piksel adalah lebar maksimum tekstur pada banyak perangkat, dan kemudian dapat skala atas atau bawah agar sesuai dengan dimensi perangkat lain.
Contoh: Skala Image Background dan Game Asset untuk Isi Layar
Dalam contoh ini kita akan membuat sebuah adegan yang sesuai dengan beberapa perangkat. Pertama, inilah bagaimana tampilannya pada simulator iPhone:
scaling iphone screenshot
Dengan beralih simulator perangkat ke perangkat yang lebih besar-seperti Galaxy Nexus tablet-kita bisa melihat bagaimana adegan ini ditampilkan untuk mengisi seluruh layar:
scaling tablet screenshot
Dan inilah kode untuk mengatur ImageView latar belakang dan sprite yang berjalan di sepanjang permukaan bulan:



Designing User Interfaces

When building game UI in timestep, we want to be able to layout views that flow without concern for the screen dpi, aspect ratio, or resolution.
The first step to building UI is setting up the viewport. This is non-trivial because the viewport changes depending on the screen size. There are a few different methods for configuring your viewport. To understand these methods, you must first understand aspect ratio.

Aspect ratio

The aspect ratio is the ratio between the width and the height of a screen resolution. The aspect ratio is important because a UI designed for one screen resolution trivially scales to fit any screen resolution with the same aspect ratio. By trivially we mean that it fills the screen entirely without clipping any content.
Two different screen resolutions can have the same aspect ratio. For example, the squares 100x100 and200x200 have the same aspect ratio, 1:1, while the HD 1080p resolution of 1920x1080 shares the aspect ratio,16:9, with the iPhone 5’s resolution of 1136x640. We refer to the aspect ratio as the smallest integer fraction that represents the ratio.

Fixed aspect ratio: stretch to fit

If you’re only designing for one aspect ratio, it’s relatively easy to design your UI. For example, only targetting the iPhone 5 and other 16:9 devices would allow you to design for a 16x9 resolution such as 1024x576 and scale your content to fit any 16x9 screen.
As soon as you want to fill the screen on all devices, however, you need to code your UI with some flexibility to handle the differences in aspect ratios. One method is to still target a fixed aspect ratio, but handle clipping differently. There are three common ways to scale a fixed aspect ratio:
1.    cover: The notion of covering a screen means that all available pixels on the screen show the game (no “black bars”). We don’t want to squish or stretch the screen, so we scale the screen to fill all the pixels and clip anything that expands beyond the screen boundaries. In practice, it’s usually fine to clip background images and simply align the important UI elements with the edges of the screen. An example where cover makes a lot of sense is an isometric simulation game. Here, having different aspect ratios simply means that users can see more or less of the game map. UI controls snap to the sides of the screen. Users with higher aspect ratios will see more of the game world than users with lower aspect ratios. In multiplayer games, this may lend itself to a competitive advantage, in which case another scaling method might make more sense.
2.    contain: The notion of containing a screen means that all pixels in the original design are visible. We scale the screen as large as we can without clipping any pixels. When the aspect ratios are not equivalent, this leads to bars on the side. We can ignore these, resulting in black bars, or fill them with some repeating pattern or texture.
3.    Hybrid: UI designers may implement a combination of cover and contain. Usually, this is done by prefering cover over contain, choosing a maximum amount of clipping that is allowed for cover. If covering would result in too much clipping, the UI is first scaled using cover to the maximum allowed clip and then scaled using contain to ensure that all important visual regions are not being clipped.

Fixed DPI

For UI-heavy games, you may want to scale your UI based on dpi, but then dynamically position all subviews according to the screen widths. For background images, you could either apply the cover or contain methods directly to the images or use a scaling method based on slices (see ScaledImageView).

Automatic Subview Layout

For either the fixed dpi or fixed aspect ratio methods, you will want to impose higher-level positioning constraints on your views. In a game, you may only care about the x, y, width, and height of a view. The game logic determines exactly where each subview is. Consider an army marching across a field: a developer would probably use a subview for each army unit with a controller class setting each subview’s position based on an underlying data model. but in a UI, you frequently want to position views relative to each other. For example, “place this image 20px from the bottom edge of the screen,” or, “put these images in a line with 5px of space between each image.”
Each view in timestep can contain subviews. A UI composed of several buttons or input fields, however, can quickly become tedious to layout by hand.
You typically set the position of a basic timestep view by setting its x, y, width, and height. Layouts define higher-level rules that control some (or all) of these attributes for you.

Box Layout

The box layout is a collection of the most basic layout positioning rules. Most other layouts extend from thebox layout – for example, a view with a linear layout can be positioned using any of these properties as well.
Compared to more advanced layouts such as linear, the box layout does not control the layout of its subviews.

Centering

If you want to center multiple views, you should consider using justifyContent: center in a linear layout, but you can use the centerX and centerY properties for aligning a single view in the parent view.
Figure 1: centered view with {y: 20, centerX: true}.

Offset alignment

The propeties top, left, right, bottom specify the distance from the corresponding edge of the parent view. The layout computes (and overwrites) values for width, height, x, and y based on these properties. When the superview resizes, these properties automatically update the view’s position.
If both top and bottom are set, the view is stretched to meet both constraints (overriding any preset height). Similarly, if both left and right are set, the width is ignored.

Percentage width and height: layoutWidth and layoutHeight

Note: the following also applies to height and layoutHeight.
You can apply constraints to the width of a view using layoutWidth. Setting layoutWidth of a view to a percentage value, e.g. "80%", will constrain the view to 80% of the superview’s width.
You can also assign the constant "wrapContent" to layoutWidth, which fits the width of the view to the sum of its children.

Fixed aspect ratios

Sometimes you want to control one dimension of a view, while fixing the other dimension to a particular ratio of the first. To do this, set the aspectRatio property of a view. We define aspectRatio as the ratio width / height.
If you want the aspectRatio to be computed automatically, set style.fixedAspectRatio to true. AnyImageView with autoSize: true and fixedAspectRatio: true will update the aspect ratio automatically when the image is auto-sized.

Linear Layout

The linear layout extends from the box layout.
One of the most common representations of a layout is a line. This encapsulates everything from a high-level structural layout such as a header, body, and footer (vertical line) to a more detailed layout such as a list of buttons in a toolbar (horizontal line). Linear layouts can be easily nested to build more complex UI.
The LinearLayout class makes configuration of linear lists of views very easy. To change the layout of a view, set the layout property of a view:
Programatically:
var view = new View({
  layout: 'linear',
  direction: 'vertical'
});
 
var redview = new View({
  superview: view,
  backgroundColor: 'red'
});
 
var blueview = new View({
  superview: view,
  backgroundColor: 'blue',
  flex: 1
});
 
var greenview = new View({
  superview: view,
  backgroundColor: 'green'
});
Or using JSON:
var MainView = Class(View, function (supr) {
  this._def = {
    layout: 'linear',
    children: [
      {backgroundColor: 'red'},
      {backgroundColor: 'blue'}
    ]
  };  
});

Layout Order

Subviews are ordered by zIndex first and add-order second. This means that if the zIndex values for two subviews are equivalent, the two views are sorted by the order in which they were added, with later views appearing last. Setting zIndex can therefore resort the subviews.
Sometimes, you need to layout views in a different order than the underlying sort order. For example, in a vertical layout with a fixed header and a scrolling body, you may want the header positioned above the body so that it can overlap the body content. Setting the header’s zIndex will change the order of the subviews. If the header has a higher zIndex, the body renders first and the header renders second, placing the header abovethe body. However, you still want the header to be positioned first in the linear layout.
To specify a sorting for the layout order that differs from the subview order, set the order property on a subview’s style. Higher order values will be later in the layout. The order defaults to 0 and should always be an integer.

Ignoring views in the layout

Sometimes you want some, but not all, subviews to be in your linear layout. By default, all subviews are in a linear layout. To remove a view from the layout, set the inLayout property of a subview’s style to false.

Sizing the containing view to fit

This can be accomplished using the same layoutWidth and layoutHeight values inherited from the box layout.

Margin

A view in a linear layout can specify margin using the style properties top, left, bottom, and right. This adds space around each view when they are layed out.

Padding

A view with a linear layout can add padding using the style.padding property. style.padding is an instance of ui.layout.Padding. You can assign directly to it with a number or string, such as:
// 10px padding on all sides
view.style.padding = 10;
 
// 10px padding on top/botom
// 20px padding on left/right
view.style.padding = "10 20";
 
// 10px on top, 20px on right
// 30px on bottom, 40px on left
// (clockwise set)
view.style.padding = "10 20 30 40";
You can also address the four sides of padding independently:
view.style.padding.top = 10;
view.style.padding.right = 30;
view.style.padding.left = 40;
view.style.padding.bottom = 20;

Flex

A view in a layout can specify a dynamic resize attribute flex. This can only be used if the containing view has a fixed dimension (the layout does not have layoutWidth set to wrapContent).
A view with flex set to a nonzero value will expand to fit the available size. It will not shrink below itsminWidth, if one is set. It will also not exceed maxWidth.

Justify Content

If, after laying out all subviews, there is space left over, you can choose to distribute that space between the views in different ways. Set the justifyContent property of a view to one of the following:
·         start: the default value, this does what you would expect for the default behavior - views are laid out in order from the start and all space is left at the end of the line.
·         end: The extra space is pushed to the front of the line.
·         center: The space is distributed between the start and end of the line. This effectively centers the subviews!
·         space: Space is distributed evenly between all gaps in subviews.
·         space-outside: Space is distributed evenly between all gaps in subviews as well as at the start and end of the line.
Figure 1: centered view with {y: 20, justifyContent: 'center', layoutHeight: 'wrapContent', layoutWidth: 'wrapContent'}.
Figure 1: centered view with {y: 20, justifyContent: 'center', layoutHeight: 'wrapContent', layoutWidth: 'wrapContent'}.

Creating Audio Assets

This guide will get you started creating and managing audio assets for your game. To information about how touse sound within your game, consult the AudioManager API.

The Essentials

On iOS you cannot play .OGG audio, so ensure that your sound files are in .MP3 format as discussed in this guide. With the Game Closure DevKit, you can easily support both .OGG for Android and .MP3 for iOS by having two copies of each sound file. When building, basil will take the .OGG version when it can be used on the target platform (Android for example) and will fall back to the .MP3 extension version if needed (iOS). Inside your game, name your sound files with a .MP3 extension rather than .OGG.

Audio Recording and Editing Tools

There are a wide variety of hardware and software solutions available for recording and editing audio for games. If you’re planning on creating the audio assets yourself, you may already have a preferred program for editing digital audio. However, if you’re new to digital audio recording and editing and want to gain a better understanding of how it all works, Audacity is an open source, free digital audio workstation (DAW), that can handle many of your audio needs.

Audio File Size and Format

Whether you’re creating the assets yourself, or having them delivered by a third party, the most important aspect of any audio asset, for developers, will be file size and format.

Format

The Game Closure DevKit does not place restrictions on any audio formats, but it is important for developers to be aware of the format restrictions of the operating systems, and browsers, on which their game will be deployed. Check the target platform’s website for the latest information on supported audio file formats, the browser, iOS and Android.
Other important considerations, when choosing a file format for your audio assets, are restrictions that are inherent to the format. For example, while MP3 is often a good choice for games because of its small file size and almost universal compatibility, it is generally not an ideal format for looping audio. This is because the MP3 format adds brief amounts of silence to the beginning and end of any given audio file. This addition of silence is inherent to the MP3 format, and although the added silence is brief, it is generally noticeable to listeners as a gap or pop in the audio. For this reason, it is often better practice to use an alternate format for an audio asset that will play on a loop.

File Size

The file size of a given asset is generally an important issue in game development, since it can affect the overall performance of the game. Audio assets often require a relatively large amount of disk space when compared to other assets, such as images. For this reason, it is important to choose a format, and compression rate (when applicable), that reduces the size of the audio file, while preserving as much of the audio quality as possible.
The first step is finding a reliable audio converter that can compress the audio to the desired format and file size. There can be a wide variance in the quality of audio converters, particularly when converting at low bit rates, such as 112 kbps, or 64kbps. Professional DAWs will often produce significantly higher quality conversions than most stand-alone, or batch audio converters. However, it is important to make sure that a given DAW can convert to the desired format, as formatting options within DAWs can vary widely.
There is no one conversion rate that suits all audio, and you may find that some sounds have reasonable fidelity at extremely low conversion rates, whereas others require something significantly higher. It’s generally best to consider audio files on an individual basis, and convert them at the lowest rate that preserves the desired fidelity.

Stereo and Mono Files

Another important consideration for audio content is whether the audio needs to be in stereo or mono. This is significant because it can drastically affect the size of the audio file. In uncompressed formats, such as WAV or AIFF, stereo files require twice the amount of disk space that mono files require. While this is not the case for all compressed formats, it is generally best practice to use mono files when possible, and stereo files only when necessary.
Another factor to consider when choosing between stereo and mono files is the speaker configuration of the target platform. For example, most mobile devices only have one speaker. This means that even your stereo files will be effectively summed to mono when a user is listening to the audio on the device. However, if the user plugs-in headphones, stereo files will be heard as stereo, and mono files will be heard as mono.
For these reasons, among others, many developers will only make their music files stereo, while keeping all sound effects in mono (perhaps with the exception of particularly special sound effects).

Sample Rates

All digital audio is re-coded at a particular sample rate. That sample rate also drastically affects file size, and it is important for developers to be aware of any limitations that a particular target platform may place on sample rates.
The sample rate for CD quality audio is 44.1kHz. Most target platforms will support this, as well as any lower sample rates. 44.1kHz is also the rate to which most DAWs will default. Higher sample rates will generally not be used in game development, since higher sample rates require larger amounts of disk space. However, since lower sample rates use less disk space, it is often worth while to check the quality of a given audio asset when it is converted to a lower sample rate, and use it if the quality is suitable.

Tips for Audio Production

Whether you are creating the audio content yourself, or having it produced by a third party, the following tips may be helpful during the development process:
·         Decide what audio content will need to loop, and choose your audio file formats accordingly (remember that some formats loop better than others).
·         Always check your audio content in mono, since many users may only hear the audio from mobile devices that have only one speaker.
·         Check your audio on the target platform’s speakers (when possible). If you’re developing a game for iOS, listen to the audio content on an iPod, iPad, and/or iPhone. Audio content often sounds significantly different on a device speaker, due to its physical limitations, and you’ll want to make sure your audio sounds great to the end user regardless of how they choose to listen to it.



 
Copyright © @gluguthari
Blogger Theme by BloggerThemes Sponsored by Internet Entrepreneur