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 :
$ Git clone https://github.com/gameclosure/devkit
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 :
$ Git clone https://github.com/gameclosure/devkit
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.
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:
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.

Dan inilah bagaimana
16:9 dan 03:02 rasio aspek terbatas dalam rasio 4:3;
sekarang ada bantalan
vertikal di bagian atas dan bawah:

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:

Dengan
beralih simulator perangkat ke perangkat yang lebih besar-seperti Galaxy Nexus
tablet-kita bisa melihat bagaimana adegan ini ditampilkan untuk mengisi seluruh
layar:

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.
0 komentar:
Posting Komentar