<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>#IDdevblogaday</title>
	<atom:link href="http://blog.gamedevid.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.gamedevid.org</link>
	<description>Daily Dosage of Indonesian Gamedev</description>
	<lastBuildDate>Wed, 21 Mar 2012 13:29:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Browser game dengan Libgdx Applet</title>
		<link>http://blog.gamedevid.org/?p=829&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=browser-game-dengan-libgdx-applet</link>
		<comments>http://blog.gamedevid.org/?p=829#comments</comments>
		<pubDate>Thu, 01 Mar 2012 17:20:56 +0000</pubDate>
		<dc:creator>fugogugo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[applet]]></category>
		<category><![CDATA[libgdx]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=829</guid>
		<description><![CDATA[hello there, lama tak menulis. tutorial yang saya tulis belum selesai juga ya? hehe . bukannya tak sempat tapi lupa terus. lagipula saya juga masih belajar jadi masih perlu explorasi lebih jauh lagi metode terbaik buat bikin game pake libgdx. Yang saya suka dari libgdx adalah ternyata libgdx sangat flexible untuk digunakan. Dan satu lagi [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Browser%20game%20dengan%20Libgdx%20Applet' class='twitter-share-button' data-text='Browser game dengan Libgdx Applet' data-url='' data-counturl='http://blog.gamedevid.org/?p=829' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p>hello there, lama tak menulis. <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
tutorial yang saya tulis belum selesai juga ya? hehe . bukannya tak sempat tapi lupa terus. lagipula saya juga masih belajar jadi masih perlu explorasi lebih jauh lagi metode terbaik buat bikin game pake libgdx. Yang saya suka dari libgdx adalah ternyata libgdx sangat flexible untuk digunakan. <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Dan satu lagi yang bikin saya suka dengan libgdx. Ternyata game yang dibuat dengan libgdx dapat dideploy sebagai web-app hanya dengan sedikit konfigurasi project tanpa harus mengubah kode. saaaaaaangat mudah dan hasilnya memuaskan <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>lalu bagaimana caranya? mari kita coba!</p>
<p>(sebelumnya silakan download semua jar dan requirement lainnya <a href="http://www.largedocument.com/2/67c6a178/jars.zip">disini</a>)</p>
<p><span id="more-829"></span></p>
<p><strong>1 . Buat Project Libgdx dan Libgdx Applet</strong></p>
<p>Untuk masalah membuat cara membuat project libgdx nya saya  pakai <a href="http://blog.gamedevid.org/?p=494">tutorial Avoider yang lalu </a>saja , cukup menambahkan project applet ke dalamnya. jadi mari buat project Java dan beri nama Avoider-applet .</p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/03/01-lib-folder.png"><img class="aligncenter size-full wp-image-839" src="http://blog.gamedevid.org/wp-content/uploads/2012/03/01-lib-folder.png" alt="" width="252" height="103" /></a></p>
<p>beri folder libs di dalam project, copy beberapa jar yang dibutuhkan ke dalam folder tersebut. Jar yang dibutuhkan antara lain :</p>
<ul>
<li>gdx.jar</li>
<li>gdx-natives.jar</li>
<li>gdx-backend-lwjgl.jar</li>
<li>gdx-backend-lwjgl-natives.jar</li>
<li>lwjgl_util_applet.jar</li>
</ul>
<p>kemudian add to buildpath semua jar tersebut</p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/03/02-new-project.png"><img class="aligncenter size-medium wp-image-840" src="http://blog.gamedevid.org/wp-content/uploads/2012/03/02-new-project-222x300.png" alt="" width="222" height="300" /></a></p>
<p>klik kanan project dan pilih  Build Path -&gt; Configure Build Path.</p>
<p><img class="aligncenter size-medium wp-image-841" src="http://blog.gamedevid.org/wp-content/uploads/2012/03/03-build-path-300x122.png" alt="" width="300" height="122" /></p>
<p>pilih tab  project dan klik Add. Pilih project Avoider.</p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/03/04-add-project.png"><img class="aligncenter size-medium wp-image-842" src="http://blog.gamedevid.org/wp-content/uploads/2012/03/04-add-project-300x228.png" alt="" width="300" height="228" /></a></p>
<p>pindah ke tab Source, klik Link Source. akan muncul window baru, pencet browse dan pilih folder asset dari project Avoider-android</p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/03/05-link-folder.png"><img class="aligncenter size-medium wp-image-843" src="http://blog.gamedevid.org/wp-content/uploads/2012/03/05-link-folder-300x230.png" alt="" width="300" height="230" /></a></p>
<p>all is done. tinggal pencet OK dan tutup window configure build path. <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>now is the coding part. Buat Class bernama AvoiderApplet dan turunkan dari kelas LwjglApplet  .Ketik ketik sedikit di bagian super() dan beginilah hasil akhirnya</p>
<pre class="brush: java; title: ; notranslate">
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.backends.lwjgl.LwjglApplet;
import com.gdi.avoider.Avoider;

public class AvoiderApplet extends LwjglApplet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    public AvoiderApplet() {
        super(new Avoider(), false);
        // TODO Auto-generated constructor stub
    }

}

</pre>
<p>save dan it&#8217;s done! <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>weits ? sudah? IYA SUDAH! codingnya yang sudah. haha</p>
<p>now is the most tricky part , deploying <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>2. Deploy sebagai Lwjgl Applet</strong></p>
<p>untuk masalah deploying ini memang saya akuin sedikit tricky. Mari kita lakukan agar bisa anda lihat seperti apa yang saya maksud dengan tricky.</p>
<p>pertama buat folder baru di dalam project dan beri nama applet dan copy semua jar yang ada tadi ke dalamnya.</p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/03/07-applet-folder.png"><img class="aligncenter size-full wp-image-845" src="http://blog.gamedevid.org/wp-content/uploads/2012/03/07-applet-folder.png" alt="" width="239" height="110" /></a></p>
<p>lalu mari kita deploy project avoider-applet ini ke dalam folder applet tersebut.</p>
<p>klik kanan project -&gt; Export -&gt; JAR file</p>
<p>pilih yang penting &#8211; penting saja untuk menghemat filesize, seperti src folder dan asset folder, oiya jangan lupa folder src di project Avoider juga dicentang juga ya. Kemudian pilih destination ke folder applet yang baru saja dibuat tadi. Beri nama saja avoider.jar . kalau sudah klik finish</p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/03/08-export-jar.png"><img class="aligncenter size-medium wp-image-846" src="http://blog.gamedevid.org/wp-content/uploads/2012/03/08-export-jar-272x300.png" alt="" width="272" height="300" /></a></p>
<p>kemudian lewat windows explorer (atau apapun lah kalau anda tidak pakai windows) masuklah ke folder applet yang baru saja dibuat tadi. bakal ada 6 jar disitu yang salah satunya adalah avoider.jar .</p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/03/09-all-jar.png"><img class="aligncenter size-medium wp-image-847" src="http://blog.gamedevid.org/wp-content/uploads/2012/03/09-all-jar-300x97.png" alt="" width="300" height="97" /></a></p>
<p>Karena Applet berjalan di browser tentu saja butuh html page untuk meload nya. karena itu mari kita buat sebuah index.html file. <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>isi HTML file seperti di bawah ini</p>
<pre class="brush: xml; title: ; notranslate">

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
&lt;html&gt;
 &lt;head&gt;
 &lt;title&gt;Avoider&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;

&lt;div id=&quot;applet_container&quot;&gt;
 &lt;applet code=&quot;org.lwjgl.util.applet.AppletLoader&quot; archive=&quot;lwjgl_util_applet.jar&quot; codebase=&quot;.&quot; width=&quot;800&quot; height=&quot;480&quot;&gt;

 &lt;param name=&quot;al_title&quot; value=&quot;Avoider&quot;&gt;
 &lt;param name=&quot;al_main&quot; value=&quot;AvoiderApplet&quot;&gt;
 &lt;param name=&quot;al_logo&quot; value=&quot;appletlogo.png&quot;&gt;
 &lt;param name=&quot;al_progressbar&quot; value=&quot;appletprogress.gif&quot;&gt;

&lt;param name=&quot;al_bgcolor&quot; value=&quot;000000&quot;&gt;
 &lt;param name=&quot;al_fgcolor&quot; value=&quot;ffffff&quot;&gt;

 &lt;param name=&quot;al_jars&quot; value=&quot;avoider.jar, gdx.jar, gdx-backend-lwjgl.jar&quot;&gt;

&lt;param name=&quot;al_windows&quot; value=&quot;gdx-natives.jar, gdx-backend-lwjgl-natives.jar&quot;&gt;
 &lt;param name=&quot;al_linux&quot; value=&quot;gdx-natives.jar, gdx-backend-lwjgl-natives.jar&quot;&gt;
 &lt;param name=&quot;al_mac&quot; value=&quot;gdx-natives.jar, gdx-backend-lwjgl-natives.jar&quot;&gt;
 &lt;param name=&quot;al_solaris&quot; value=&quot;gdx-natives.jar, gdx-backend-lwjgl-natives.jar&quot;&gt;

 &lt;param name=&quot;codebase_lookup&quot; value=&quot;false&quot;&gt;

&lt;param name=&quot;java_arguments&quot; value=&quot;-Dsun.java2d.noddraw=true -Dsun.awt.noerasebackground=true -Dsun.java2d.d3d=false -Dsun.java2d.opengl=false -Dsun.java2d.pmoffscreen=false -Xmx800M&quot;&gt;
 &lt;param name=&quot;lwjgl_arguments&quot; value=&quot;-Dorg.lwjgl.input.Mouse.allowNegativeMouseCoords=true&quot;&gt;
 &lt;param name=&quot;separate_jvm&quot; value=&quot;true&quot;&gt;
 &lt;param name=&quot;codebase_lookup&quot; value=&quot;false&quot;&gt;
 &lt;/applet&gt;
 &lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;

</pre>
<p>penjelasan tentang semua atribute itu bisa dibaca <a href="http://www.lwjgl.org/wiki/index.php?title=Deploying_with_the_LWJGL_Applet_Loader_1_-_Basics">disini</a></p>
<p>setelah itu mari kita save dan jalankan index.html tersebut. bagaimana hasilnya? pasti gagal. Mengapa demikian? karena sesungguhnya applet sangat restricted. Karena itu kita perlu melakukan signing SEMUA jar yang ada di dalam folder applet tersebut.</p>
<p><strong>3. Signing the Jar</strong></p>
<p>buka command line, masuk ke dalam folder applet , kemudian ketikkan command berikut:</p>
<pre class="brush: java; title: ; notranslate">

-genkey -alias avoiderkey -keypass android -validity 360 -keystore .keystore

</pre>
<p>bagian yang tidak diawali dengan karakter minus (-) dapat diganti. silakan mengubah bila perlu.</p>
<p>setelah itu kita buat .bat file yang dapat digunakan untuk melakukan signing seluruh Jar dengan mudah. buat file bernama signing.bat dan isikan dengan tulisan berikut</p>
<pre class="brush: bash; title: ; notranslate">

@for /f %%i in (&quot;%0&quot;) do @set curpath=%%~dpi
@cd /d %curpath%

@for /r . %%X in (*.jar) do jarsigner -keystore .keystore -storepass android %%X avoiderkey

</pre>
<p>save file tersebut. kemudian double klik di file signing.bat tersebut untuk melakukan signing ke semua Jar. coba jalankan index.html lagi . kalau berjalan lancar berarti selamat anda berhasil!</p>
<p><strong>tapi kalau ga bisa</strong>? tak apa , kemarin saya juga pusing setengah mati mencari alasan gagalnya. dan akhirnya ketemu jawabannya di bagian comment di <a href="http://www.thesecretpie.com/2011/05/being-like-minecraft-or-how-to-run-your.html">tutorial ini</a> , ternyata penyebabnya adalah karena beberapa jar telah di sign dengan key lain sehingga tidak dapat diajalankan oleh applet , signed jar ditandai dengan adanya folder META-INF. Maka solusinya mudah, kita tinggal hapus saja semua META-INF dari jar yang ada . Extract file jar yang ada , hapus file META-INF dan compress lagi menjadi zip, rename zip menjadi jar. Sesungguhnya jar itu hanyalah sebuah zip yang direname saja. This is what I mean by tricky part. :p</p>
<p>setelah semua META-INF dihapus, jalankan signing.bat lagi. seharusnya bisa berjalan lancar sekarang. <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a href="http://dl.dropbox.com/u/27073998/applet/avoider/index.html">coba disini</a> <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>cukup menyenangkan menggunakan libgdx karena bisa dijalankan di 3 platform dengan satu code saja : web, desktop, dan android, dan dengan performa yang tidak perlu dipertanyakan lagi. hehe <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Okay that&#8217;s all for now. stay tuned for the next Libgdx tutorial.. this 2012. maybe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=829</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making a shooter game with flashpunk: making waves of enemies</title>
		<link>http://blog.gamedevid.org/?p=769&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=making-a-shooter-game-with-flashpunk-making-waves-of-enemies</link>
		<comments>http://blog.gamedevid.org/?p=769#comments</comments>
		<pubDate>Tue, 10 Jan 2012 16:07:22 +0000</pubDate>
		<dc:creator>Aryadi Perwira</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=769</guid>
		<description><![CDATA[Part 1: Memulai dengan flashpunk dan AS3 Part 2: Membuat pesawat menembakkan peluru Part 3: Tambahkan musuh, tambahkan ketegangan Part 4: Saatnya bullet pattern! Part 5 Part 6: Improving our character Part 7: Background Part 8: Scrolling camera Tak terasa kita sudah sampai di seri kesembilan dari serial tutorial membuat game dengan flashpunk. Sekarang kita [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Making%20a%20shooter%20game%20with%20flashpunk%3A%20making%20waves%20of%20enemies' class='twitter-share-button' data-text='Making a shooter game with flashpunk: making waves of enemies' data-url='' data-counturl='http://blog.gamedevid.org/?p=769' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p><a href="http://blog.gamedevid.org/?p=5">Part 1: Memulai dengan flashpunk dan AS3</a></p>
<p><a href="http://blog.gamedevid.org/?p=91">Part 2: Membuat pesawat menembakkan peluru</a></p>
<p><a href="http://blog.gamedevid.org/?p=204">Part 3: Tambahkan musuh, tambahkan ketegangan</a></p>
<p><a href="http://blog.gamedevid.org/?p=316">Part 4: Saatnya bullet pattern!</a></p>
<p><a href="http://blog.gamedevid.org/?p=455">Part 5</a></p>
<p><a href="http://blog.gamedevid.org/?p=562">Part 6: Improving our character</a></p>
<p><a href="http://blog.gamedevid.org/?p=625">Part 7: Background</a></p>
<p><a href="http://blog.gamedevid.org/?p=698">Part 8: Scrolling camera</a></p>
<p>Tak terasa kita sudah sampai di seri kesembilan dari serial tutorial membuat game dengan flashpunk. Sekarang kita akan menambahkan lebih banyak musuh ke dalam stage kita yang sudah scrolling secara otomatis. Tapi sebelum itu, kita akan memperbaiki satu bug dari tutorial kita sebelumnya. Coba dari hasil tutorial sebelumnya, ketika scrolling (belum sampai ujung atas) klik-tahan mouse untuk menembak. Peluru tidak keluar dari pesawat, ketika kita mendekat bagian atas, baru terlihat peluru kita. Ini karena posisi awal dan akhir peluru yang masih belum kita ubah.</p>
<div id="attachment_772" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/Bug-Peluru.png"><img class="size-medium wp-image-772" title="Bug Peluru" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/Bug-Peluru-300x246.png" alt="Ada yang aneh" width="300" height="246" /></a><p class="wp-caption-text">Bug peluru tutorial sebelumnya</p></div>
<p>Untuk memperbaikinya kita tinggal mengubah posisi awal dan akhir peluru kita sesuai dengan camera offset. Dalam class character, ubahlah code buat menembakkan peluru jadi seperti ini:</p>
<pre class="brush: actionscript3; gutter: true">				if (timeToDeltaShot &gt; deltaShot)
				{
					shoot(FP.camera. x + Input.mouseX, FP.camera.y + Input.mouseY);
					timeToDeltaShot -= deltaShot;
				}</pre>
<p>dan ubahlah inisiasi peluru dalam fungsi shoot() menjadi seperti ini:</p>
<pre class="brush: actionscript3; gutter: true">var peluru:Bullet = new Bullet(AssetsList.PELURU1, FP.camera.x + x, FP.camera.y + y, xTarget, yTarget);</pre>
<p>dengan dua perbaikan ini sebenarnya kita sudah memperbaiki bug kita, tapi masih ada satu masalah lagi: yaitu peluru akan otomatis dihapus dari world kalau keluar dari koordinat tertentu. Coba lihat fungsi update() kelas Bullet, kita akan bisa melihat baris codenya. Bagaimana penyelesaiannya? tinggal comment saja baris yang menghapus peluru dan masalah selesai.</p>
<pre class="brush: actionscript3; gutter: true">			if (x &lt; 0 || x &gt; 640 || y &lt; 0 || y &gt; 480)
			{
				// remove peluru ketika keluar dari game window
				// this.world.remove(this);
			}</pre>
<div id="attachment_775" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/Bug-peluru-hilang.png"><img class="size-medium wp-image-775" title="Bug peluru hilang" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/Bug-peluru-hilang-300x246.png" alt="" width="300" height="246" /></a><p class="wp-caption-text">Peluru sudah menembak dengan benar</p></div>
<p><span id="more-769"></span></p>
<p>Now that that&#8217;s done, mari kita bahas tentang tulisan kita kali ini. Kalau kamu memainkan game shmup (shoot &#8216;em up) para musuh berdatangan dalam beberapa kelompok,  tiap-tiap kelompok terdiri dari beberapa musuh. Kelompok-kelompok ini dinamakan wave (saya menamakannya begitu, mungkin orang lain punya istilah sendiri), dan bagaimana cara membuat wave inilah yang akan kita bahas dalam blog post kali ini. Sekali lagi saya tidak mengatakan bahwa cara saya adalah yang paling benar, cara ini juga bukanlah satu-satunya cara, tapi ini adalah cara yang akan saya share dalam kesempatan ini.</p>
<div id="attachment_812" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/screenshot-touhou-1.png"><img class="size-medium wp-image-812" title="screenshot touhou-1" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/screenshot-touhou-1-300x168.png" alt="" width="300" height="168" /></a><p class="wp-caption-text">Contoh wave dari touhou</p></div>
<p>Wave adalah rentetan musuh seragam (setipe) yang muncul dengan jeda waktu tertentu. Dari definisi simple barusan, kita bisa membuat wave dengan mudah dengan menggunakan loop (perulangan). Kita akan membuat class wave yang mampu mengatur kapan dan dimana satu wave muncul, berapa banyak musuh dalam satu wave, dan AI apa yang digunakan para musuh dengan mudah. Buatlah class baru seperti di bawah ini:</p>
<pre class="brush: actionscript3; gutter: true">package  
{
	import net.flashpunk.World;
	
	/**
	 * ...
	 * @author Aryadi Perwira Subagio
	 */
	public class Wave 
	{
		
		public function Wave() 
		{
			
		}
		
		/**
		 * Menambahkan satu wave ke permainan
		 * @param	x				Posisi x dari musuh pertama di wave ini
		 * @param	y				Posisi y dari musuh pertama di wave ini
		 * @param	deltaX			Selisih x antara tiap musuh di wave ini
		 * @param	deltaY			Selisih y antara tiap musuh di wave ini
		 * @param	enemy			Musuh yang dibuat wave ini
		 * @param	howMany			Jumlah musuh
		 * @param	dunia			World-nya wave ini
		 */
		public function addWave(x:int, y:int, deltaX:int, deltaY:int, player:Character, howMany:int, dunia:World):void 
		{
			for (var i:int = 0; i &lt; howMany; i++) 
			{
				var AI:BasicAI = new BasicAI(player);
				var musuh:Enemy = new Enemy(AssetsList.ENEMY1, AI);
				musuh.x = x + i * deltaX;
				musuh.y = y + i * deltaY;
				
				musuh.layer = 2;
				dunia.add(musuh);
				
			}
		}
		
	}

}</pre>
<p>bagian yang penting di sini adalah fungsi addWave() yang berguna untuk menambahkan wave yang kita mau ke dalam permainan. Di sini kita membuat perulangan yang akan membuat musuh sebanyak variabel howMany. Dalam perulangan ini kita membuat AI dan musuh seperti yang kita lakukan dalam class MapOne, menentukan target serangan (alias player) dan juga sprite musuh (di sini: AssetsList.ENEMY1). Selanjutnya kita mengatur posisi musuh dalam wave ini. Normalnya kita cukup memberi nilai ke dalam musuh.x dan musuh.y, tapi bisa saja dalam sebuah wave posisi musuh berbeda sedikit untuk membentuk formasi tertentu, karena itu kita memberikan i * deltaX dan deltaY. Kenapa harus dikalikan dengan i? karena nilai awal i adalah 0 sehingga posisi musuh pertama dalam wave ini adalah posisi seperti yang kita tentukan dalam parameter, untuk musuh berikutnya, posisinya akan berbeda sesuai jeda yang kita berikan.</p>
<p>Sepertinya saya belum pernah menjelaskan tentang perulangan (looping) dan kaitannya dengan permrograman, karena itu kali ini akan saya bahas sedikit. Perulangan (atau looping) dalam pemrograman adalah sebuah cara untuk mengulang baris kode kita sehingga kita tidak perlu melakukan tugas yang repetitif. Coba bayangkan kalau kita ingin membuat 50 pesawat dalam satu wave misalnya (iseng banget), maka akan lebih mudah bagi kita dengan membuat looping. Ada 3 macam looping dalam pemrograman: for loop, while loop, dan do while. Sekarang saya hanya akan membahas for loop, sisanya akan saya bahas di blog post saya yang lain kalau sempat.</p>
<p>For loop digunakan ketika kita tahu berapa kali kita akan mengulang baris kode kita. Dalam kasus di atas kita akan mengulang kode kita sebanyak nilai variabel howMany. Syntax penulisan for loop adalah for(<em>inisiasi</em>; <em>kondisi</em>; <em>increment</em>). Inisiasi adalah pendeklarasian variabel yang kita gunakan dalam for loop (dalam hal ini: i). Kondisi (sebenarnya saya lupa istilahnya, mungkin ada yang tahu?) adalah kondisi yang dimana jika kondisi ini bernilai true, maka perulangan akan terus berjalan (dalam hal ini: selama i bernilai kurang dari howMany). Increment adalah seberapa banyak penambahan terhadap variabel di inisiasi terjadi, i++ berarti nilai i bertambah satu setiap perulangannya (kita bisa menulis i = i + 2 atau i = i + 3 atau nilai lainnya kalau itu yang kita inginkan).</p>
<p>Sekarang mari kita implementasikan class baru kita ini. Bukalah class MapOne dan tambahkan variabel ini di awal class:</p>
<pre class="brush: actionscript3; gutter: false">private var level1Wave:Wave = new Wave();</pre>
<p>lalu tambahkan satu baris berikut di  dalam constructor:</p>
<pre class="brush: actionscript3; gutter: false">level1Wave.addWave(100, 200, 10, 50, airship, 4, this);</pre>
<p>silahkan ubah-ubah nilai parameter kalau anda mau. Kita bisa saja tekan F5 sekarang dan melihat hasilnya, tapi sebelum itu ada dua class yang harus kita ubah sedikit. Buka BasicAI lalu ubahlah fungsi shoot() menjadi seperti ini:</p>
<pre class="brush: actionscript3; gutter: true">		private function shoot(target:Character):void 
		{
			if (!actor.world) 
			{
				// buat ngatasi bug
				return;
			}
			
			var peluru:Bullet = new Bullet(AssetsList.PELURU1, actor.x, actor.y, FP.camera.x + target.x, FP.camera.y + target.y, 500, &quot;player&quot;);
			peluru.attackPower = actor.power;
			actor.world.add(peluru);
		}</pre>
<p>yang paling mencolok adalah comment &#8220;// buat ngatasi bug&#8221; yang saya tulis di situ. Terkadang memang ada bug musuh mencoba nembak padahal sudah dihapus dari world sehingga menyebabkan crash, di sini kalau musuh sudah keluar dari world maka akan langsung keluar dari fungsi (tidak nembak). Kedua, dalam inisiasi peluru adalah posisi target kini memperhitungkan posisi camera (FP.camera.x dan FP.camera.y) kalau posisi target tidak memperhitungkan orientasi camera, maka tembakan musuh akan meleset (jauh).</p>
<p>Sesudah itu bukalah EnemyAI, dalam fungsi update() ada code yang berperan untuk menghapus musuh ketika sudah keluar dari window. Karena sekarang kita sudah menggunakan camera scrolling, maka code-nya pun harus diubah agar sesuai dengan orientasi camera.</p>
<pre class="brush: actionscript3; gutter: true">public function update(elapsedTime:Number):void 
		{
			if (actor.y &gt; FP.camera.y + FP.bounds.height) 
			{
				actor.world.remove(actor);
			}
		}</pre>
<p>silahkan tekan F5 dan lihatlah hasilnya.</p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/wave-di-blog.png"><img class="aligncenter size-medium wp-image-814" title="wave di blog" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/wave-di-blog-300x246.png" alt="" width="300" height="246" /></a></p>
<p>Dan seperti yang pernah saya janjikan, saya akan memberikan file project kita selama ini: <a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/Blog-project.zip">Blog project</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=769</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pembentukan Rasa Dan Citra Untuk Musik</title>
		<link>http://blog.gamedevid.org/?p=780&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pembentukan-rasa-dan-citra-untuk-musik</link>
		<comments>http://blog.gamedevid.org/?p=780#comments</comments>
		<pubDate>Fri, 06 Jan 2012 14:34:03 +0000</pubDate>
		<dc:creator>Ittou</dc:creator>
				<category><![CDATA[Music and sound]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=780</guid>
		<description><![CDATA[Rasa dan citra adalah dua parameter dasar yang digunakan untuk menilai karya seni. Tidak terkecuali pada musik atau BGM game, pemberian rasa dan citra yang pas pada musik yang kita buat akan menentukan apakah musik itu bernilai baik, atau tidak. Pada tulisan saya yang sebelumnya, saya telah membahas tentang cara composing musik menggunakan FL Studio. [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Pembentukan%20Rasa%20Dan%20Citra%20Untuk%20Musik' class='twitter-share-button' data-text='Pembentukan Rasa Dan Citra Untuk Musik' data-url='' data-counturl='http://blog.gamedevid.org/?p=780' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p>Rasa dan citra adalah dua parameter dasar yang digunakan untuk menilai karya seni. Tidak terkecuali pada musik atau BGM game, pemberian rasa dan citra yang <em>pas</em> pada musik yang kita buat akan menentukan apakah musik itu bernilai baik, atau tidak.</p>
<p>Pada tulisan saya yang sebelumnya, saya telah membahas tentang cara composing musik menggunakan FL Studio. Nah, sekarang kita akan mengupas tentang bagaimana membentuk rasa dan citra pada musik.</p>
<p><strong><em><span style="text-decoration: underline">Terdapat 4 unsur dasar yang vital dalam pembentukan rasa dan citra pada musik.</span></em></strong></p>
<h1>Harmoni musik</h1>
<p>Harmoni dapat menentukan sifat atau emosi yang hendak disampaikan musik. Harmoni adalah kombinasi antara nada-nada yang tingginya berbeda dan dibunyikan dalam suatu urutan waktu tertentu. Harmoni yang terbentuk atas tiga atau lebih nada bersamaan biasanya kita kenal dengan sebutan akord (<em>chord</em>). Sedangkan harmoni yang dibunyikan berurutan, kita kenal dengan sebutan <em>arpeggio</em>.</p>
<p>Pola nada dalam harmoni diatur dalam <em>scale</em>. Scale (tangga nada) adalah jarak interval nada yang membentuk suatu urutan tertentu. Scale yang paling umum dan populer digunakan adalah scale mayor dan minor. Meskipun banyak scale-scale lain seperti Maqamat (scale pada musik Arabic), Gamelan (Pelog) scale, Pentatonic (cinese oriental) scale, dll. Tapi scale-scale tersebut jarang digunakan.</p>
<p style="text-align: center"><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/C-major-C-minor1.png"><img class="aligncenter  wp-image-785" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/C-major-C-minor1.png" alt="" width="589" height="358" /></a>Gambar 1. scale C major dan C minor</p>
<p>Penggunaan scale musik tersebut sangat mempengaruhi emosi musik yang nantinya akan kita buat. Beberapa diantaranya :</p>
<ul>
<li>Suasana ceria dan semangat biasanya dibentuk dengan scale mayor.</li>
<li>Musik dengan scale minor untuk menggambarkan kesedihan, galau, suram, dll.</li>
<li>Scale minor dengan chord diminish dan nada-nada atonal (sengaja melenceng dari scale) untuk membuat suasana tegang.</li>
<li>Untuk menggambarkan suasana bingung, gunakan scale mayor dengan nada-nada atonal.</li>
</ul>
<h1>Tempo dan Dinamika</h1>
<p>Tempo adalah ukuran kecepatan dalam birama lagu yang memiliki satuan BPM (Beats per Minute). Dalam sebagian besar partitur lagu klasik, kita juga bisa menjumpai ukuran tempo yang dinamai dengan bahasa italia seperti “Andante”, “Allegro”, “Adagio”, dll. Beberapa istilah tempo dalam bahasa italia yang dikenal beserta penjelasannya :</p>
<ul>
<li><em>“Larghissimo</em> — very, very slow (20 bpm and below)</li>
<li><em>Grave</em> — slow and solemn (20–40 bpm)</li>
<li><em>Lento</em> — slowly (40–60 bpm)</li>
<li><em>Largo</em> — broadly (40–60 bpm)</li>
<li><em>Larghetto</em> — rather broadly (60–66 bpm)</li>
<li><em>Adagio</em> — slow and stately (literally, &#8220;at ease&#8221;) (66–76 bpm)</li>
<li><em>Adagietto</em> — rather slow (70–80 bpm)</li>
<li><em>Andante moderato</em> — a bit slower than andante</li>
<li><em>Andante</em> — at a walking pace (76–108 bpm)</li>
<li><em>Andantino</em> – slightly faster than andante</li>
<li><em>Moderato</em> — moderately (108–120 bpm)</li>
<li><em>Allegretto</em> — moderately fast (but less so than allegro)</li>
<li><em>Allegro moderato</em> — moderately quick (112–124 bpm)</li>
<li><em>Allegro</em> — fast, quickly and bright (120–168 bpm)</li>
<li><em>Vivace</em> — lively and fast (?140 bpm) (quicker than allegro)</li>
<li><em>Vivacissimo</em> — very fast and lively</li>
<li><em>Allegrissimo</em> — very fast</li>
<li><em>Presto</em> — very fast (168–200 bpm)</li>
<li><em>Prestissimo</em> — extremely fast (more than 200bpm)”</li>
</ul>
<p>(sumber : Wikipedia)</p>
<p>Dinamika menyatakan keras lembutnya suatu musik dimainkan. Ukuran dinamika biasanya juga dinyatakan dalam bahasa italia. Ukuran dinamika paling keras adalah fortissimo assai (fff), dan paling lembut adalah pianissimo possibile (ppp). Dalam composing musik digital, dinamika dapat diatur melalui velocity pada piano roll.</p>
<p style="text-align: center"><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/dynamic.jpg"><img class="size-full wp-image-784 aligncenter" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/dynamic.jpg" alt="" width="419" height="288" /></a>Gambar 2. ukuran dinamika dalam velocity not</p>
<p>Peranan tempo dan dinamika dalam pembentukan citra dan rasa musik sangatlah vital. Musik-musik dengan tempo tinggi dan dinamika forte akan memberikan kesan emosi yang tinggi dan meluap-luap, ceria, atau juga bisa ketakutan. Sedangkan lagu dengan tempo lambat dan dinamika piano biasanya akan memberikan nuansa tenang atau sedih.</p>
<h1>Pemilihan Instrumen</h1>
<p>Instrumen musik adalah suatu alat atau seperangkat alat yang berfungsi untuk menghasikan bunyi, nada, dan ritme yang membentuk musik. Citra dan rasa dalam musik tentu saja sangat dipengaruhi bentuk bunyi dari sumber nada. Pemilihan instrument juga dapat menentukan genre musik yang akan dibuat.</p>
<p>Misalnya :</p>
<ul>
<li>Pada musik orchestra, instrument yang digunakan : String (biola, cello, contrabass), Brass (terompet, trombone), Woodwinds (Seruling, Oboe), Perkusi (timpani, simbal)</li>
<li>Untuk genre musik celtic, digunakan instrument : Biola, Bag and Pipe, Bodhran (semacam tamborin), Seruling</li>
<li>Untuk genre musik trance, disko, dubstep digunakan instrument-instrumen Elektrik dan Synthetizer</li>
<li>Untuk genre musik ethnic digunakan instrument : gitar akustik, ketipung, gamelan, rebab, seruling, tamborin</li>
<li>Untuk musik rock, punk dan metal digunakan instrument : gitar elektrik, drum, bass, keyboard</li>
</ul>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/gamelan-instrument.jpg"><img class="alignnone size-full wp-image-786" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/gamelan-instrument.jpg" alt="" width="400" height="309" /></a><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/celtic-instruments.gif"><img class="alignnone size-full wp-image-788" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/celtic-instruments.gif" alt="" width="313" height="246" /></a></p>
<p><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/orchestra-instrument.jpg"><img class="alignnone size-full wp-image-787" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/orchestra-instrument.jpg" alt="" width="301" height="450" /></a><a href="http://blog.gamedevid.org/wp-content/uploads/2012/01/masschine-instrument.jpg"><img class="alignnone size-full wp-image-789" src="http://blog.gamedevid.org/wp-content/uploads/2012/01/masschine-instrument.jpg" alt="" width="450" height="350" /></a></p>
<p style="text-align: center">Gambar 3. (dari atas) gamelan, instrumen celtic, instrumen orchestra, synthetizer elektronik</p>
<p>Sebenarnya, hampir tidak ada aturan yang fixed tentang pemilihan instrument. Bisa saja kita membuat musik punk dengan menggunakan gamelan atau instrument elektrik (Saya sendiri sering membuat musik trance dengan instrument-instrument yang seharusnya digunakan dalam musik orchestra XD). Selama itu cocok dan harmonis, maka musik yang dihasilkan akan tetap terdengar enak.</p>
<h1>Spotting Musik</h1>
<p>Yang dimaksud spotting musik, adalah peletakan musik itu dalam suatu adegan atau kesempatan.<br />
Misalnya : Musik fanfare yang ceria untuk adegan kemenangan, Musik bertempo tinggi dengan nada penuh tension untuk adegan battle, Musik dengan tempo slow dan scale minor untuk adegan sedih, dll.<br />
Peletakan musik yang emosinya pas pada adegan yang benar akan meciptakan harmoni antara adegan dengan musik.</p>
<p>Demikian tulisan dari saya untuk minggu ini. Semoga bisa menjadi wacana untuk membuat musik yang berguna bagi pembaca.</p>
<p>Keep rock all :3</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=780</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apa yang membedakan industri gamedev kita dengan industri gamedev luar? Part 4</title>
		<link>http://blog.gamedevid.org/?p=762&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apa-yang-membedakan-industri-gamedev-kita-dengan-industri-gamedev-luar-part-4</link>
		<comments>http://blog.gamedevid.org/?p=762#comments</comments>
		<pubDate>Mon, 02 Jan 2012 07:28:12 +0000</pubDate>
		<dc:creator>RonWidjaja</dc:creator>
				<category><![CDATA[Game business]]></category>
		<category><![CDATA[Game design]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=762</guid>
		<description><![CDATA[Part 1: http://blog.gamedevid.org/?p=422 Part 2: http://blog.gamedevid.org/?p=552 Part 3: http://blog.gamedevid.org/?p=702 Waduh! Sorry telat ngepost berhubung lagi liburan kemarin jadinya gak bisa ngepost sama sekali so sebagai gantinya saya postnya hari ini aja deh mumpung lagi ada waktu. So berikut adalah lanjutan dari apa yang sudah saya bahas pada post sebelumnya dan kini kita akan berbicara mengenai negara-negara pelaku game [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Apa%20yang%20membedakan%20industri%20gamedev%20kita%20dengan%20industri%20gamedev%20luar%3F%20Part%204' class='twitter-share-button' data-text='Apa yang membedakan industri gamedev kita dengan industri gamedev luar? Part 4' data-url='' data-counturl='http://blog.gamedevid.org/?p=762' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p>Part 1: <a href="http://blog.gamedevid.org/?p=422">http://blog.gamedevid.org/?p=422</a></p>
<p>Part 2: <a href="http://blog.gamedevid.org/?p=552">http://blog.gamedevid.org/?p=552</a></p>
<p>Part 3: <a href="http://blog.gamedevid.org/?p=702">http://blog.gamedevid.org/?p=702</a></p>
<p>Waduh! Sorry telat ngepost berhubung lagi liburan kemarin jadinya gak bisa ngepost sama sekali so sebagai gantinya saya postnya hari ini aja deh mumpung lagi ada waktu. So berikut adalah lanjutan dari apa yang sudah saya bahas pada post sebelumnya dan kini kita akan berbicara mengenai negara-negara pelaku game industry di benua timur lainnya.</p>
<p><strong>South Korean Gaming Culture.</strong></p>
<p>Kalau kita bicara soal Industri game di Korea, maka jelas kata game online atau MMORPG mungkin yang pertama kali terlintas di pikiran kita. (atau kalau buat saya, “Starcraft” adalah kata yang terlintas di kepala saya setiap kali denger negara Korea) Namun, some of you maybe wonder, “Apa sih yang membuat Korea begitu hebat di dunia game online dan MMORPG?”</p>
<div class="wp-caption aligncenter" style="width: 565px"><img src="http://uzumakisharegame.com/wp-content/uploads/2011/01/263967-screen05_super.jpg" alt="" width="555" height="416" /><p class="wp-caption-text">I&#039;m pretty sure pasti pada inget game apa ini!</p></div>
<p>Industri game di Korea mulai mendapatkan momentumnya sedikit demi sedikit ketika internet mulai mendunia (sekitar tahun 1996-2000an) dan dari game-game MMORPG barat yang telah keluar sebelumnya, maka Industri Game di Korea mulai memutuskan untuk membuat game MMORPG mereka sendiri.</p>
<p>Alhasil, industri game online pun ngeBoom di Korea dan developer-developer game pun mulai bermunculan di Korea, dan tentunya mereka semua mayoritas berkecimpung di dunia MMORPG atau game online saja. Selanjutnya kita semua tau bahwa sampai hari ini, Korea Selatan masih merupakan negara penghasil game MMORPG terbesar dan masih menjadi raja dari industri game MMORPG dunia.</p>
<p><strong>South Korean Game Industry Mentality.</strong></p>
<p>Orang-orang Korea mungkin terlihat romantis dan ganteng-ganteng atau cantik-cantik di drama-drama Korea, tapi orang Korea yang sebenarnya itu sangatlah kompetitif (tapi tetep mereka ganteng2 and cantik2 karena kebanyakan pada operasi. lol!). Selain kompetitif, orang Koreapun terkenal high-tech. Makanya tidak heran, industri elektronik terbesar di dunia juga terletak di Korea.</p>
<p>Dari segi art and gameplay pun, Koreajuga cukup sama flexiblenya seperti Jepang dimana banyak game dan komik Korea yang masih memiliki art dengan nuansa “manga” Jepang. Sedangkan untuk tema yang digemari pun juga masih seputar “medieval Europe fantasy RPG” ala Lord of the Ring.<span style="text-align: center"> </span></p>
<div class="wp-caption aligncenter" style="width: 266px"><img src="http://upload.wikimedia.org/wikipedia/en/thumb/9/9c/Lineage2_Gracia_Final_Poster.jpg/256px-Lineage2_Gracia_Final_Poster.jpg" alt="" width="256" height="362" /><p class="wp-caption-text">Mirip kostum Elven armornya LOTR, right?</p></div>
<p>Sikap kompetitif dan high-tech inilah yang membuat industri game online di Korea tumbuh subur. Para developer game disana juga sangat pandai membuat event2 gaming khusus yang membuat para pemainnya merasa harus bekerja keras untuk membuat karakter avatar mereka bisa terlihat lebih kuat dan lebih hebat lagi. Sehingga gak heran, gamer Korea banyak yang jago karena mereka rajin dalam bermain game disana.</p>
<p><strong>China</strong><strong> and </strong><strong>Taiwan</strong><strong> Game Industry Culture.</strong></p>
<p>Dari semua negara timur yang saya sebutkan diatas, sebetulnya pasar market terbesar untuk game online terletak di China tentunya. Dalam hal ini, yang saya bicarakan lebih kepada para pemain dan bukan dari segi developer. China merupakan negara kedua dengan penduduk terpadat di dunia dan pengguna Internet di China tidaklah sedikit sehingga hal ini menjadi target bagi para pelaku industri game online seperti di Jepang dan Korea untuk menargetkan China sebagai ladang emas buat mereka.</p>
<div class="wp-caption aligncenter" style="width: 634px"><img src="http://i.cdn.cnngo.com/sites/default/files/imagecache/624x468_gallery/2010/08/02/China-joy----main.jpg" alt="" width="624" height="310" /><p class="wp-caption-text">As you can see, gamer di China banyaknya luar binasa.</p></div>
<p>Game Industry di China sendiri juga masih tergolong kecil dan walaupun beberapa saat terakhir mulai bermunculan banyak developer-developer game kecil dariChina, namun sayangnya game-game yang mereka buat masih bisa dibilang dibawah standard. Namun dari segi outsource industri game, maka bisa dibilangChinamerupakan negara penghasil outsource asset untuk game yang sangat baik. Hal ini bisa dilihat dari banyaknya perusahaan publisher game besar luar yang menempatkan kantor cabang mereka di China seperti Ubisoft dan EA di Shanghai.</p>
<p>Berbeda dengan Taiwan, dimana Taiwan lebih maju dari segi online game development dibandingkan China. Taiwan sendiri mulai banyak membuat game-game online sekelas MMORPG yang mereka harapkan bisa menembus pasar game online dunia seperti layaknya Korea. Memang terdapat beberapa kemiripan antaraTaiwan dan Korea, dan tampaknya Taiwan saat ini sedang berusaha mengejar Korea dari segi industri game online mereka.</p>
<p><strong>China</strong><strong> and </strong><strong>Taiwan</strong><strong> Game Industry Mentality.</strong></p>
<p>Seiring dengan semakin baiknya jasa penyediaan internet di China, begitu pula dengan kalangan-kalangan menengah yang mengerti teknologi semakin banyak bermunculan di China, maka penduduk China yang sangat banyak merupakan market yang luar biasa besar untuk game-game online. Bagi para developer China yang masih baru di industri game ini, mereka tentunya ingin sekali bisa memonopoli industri game di local mereka sendiri. Namun sayangnya, kualitas game-game yang ada bisa sangat terlihat dan tampak cukup dibawah standard dikarenakan gameplay design yang kurang menarik.</p>
<div class="wp-caption aligncenter" style="width: 650px"><img src="http://2.bp.blogspot.com/-bcA3UxP6jww/TlXpHOhhNhI/AAAAAAAAEIM/TMdRs1hWmF0/s1600/hb1.jpg" alt="" width="640" height="480" /><p class="wp-caption-text">Tebak ngeClone dari game apakah ini?</p></div>
<p>Dari segi ini, terlihat sekali bahwa keinginan untuk mendapatkan profit yang cepat dengan kualitas game yang masih dibawah standard adalah hal yang diincar oleh para pelaku industri game di China. Secara mentalitas sendiri, game-game buatan lokal Chinamasih terkesan sangat menjiplak dari game-game sukses yang sudah ada. Hal ini bukanlah hal yang memalukan untuk Industri Game di China, karena bagi mereka, “Copying is a sign of flattery”.</p>
<p>Dari segi outsource however, kualitas asset game yang dihasilkan di China tidak kalah dengan negara penghasil game lainnya di dunia. There is nothing wrong with China Game Industry from the skill perspective, but they need to work things out from their game design perspective.</p>
<div class="wp-caption aligncenter" style="width: 650px"><img src="http://www.f2pgames.com/wp-content/uploads/2011/01/galaxia20bg20.jpg" alt="" width="640" height="425" /><p class="wp-caption-text">One of Taiwan made MMORPG</p></div>
<p>Sedangkan kalau di Taiwan sendiri, industri game onlinenya memang sedang beranjak naik dan jauh lebih bagus dan original dari segi kualitas dibandingkan dengan Industri Game yang ada diChinadaratan. Saat ini, investor dari luar mulai semakin banyak yang tertarik untuk invest di industri game di Taiwan.<span style="text-align: center"> </span></p>
<p>Di part “Culture &amp; Mentality” yang terakhir, akhirnya kita akan bahas mengenai Industri game local kita sendiri so ditunggu untuk yang part terakhirnya. Thanks for reading and Godspeed!.</p>
<p>Oh iya dan sebelumnya &#8220;HAPPY NEW YEAR 2012, people!&#8221;</p>
<p>RonW.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=762</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Membuat Game Android Avoider Menggunakan Framework Libgdx – Part #3 Base Entity and Multiple enemies</title>
		<link>http://blog.gamedevid.org/?p=740&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=membuat-game-android-avoider-menggunakan-framework-libgdx-part-3-base-entity-and-multiple-enemies</link>
		<comments>http://blog.gamedevid.org/?p=740#comments</comments>
		<pubDate>Wed, 28 Dec 2011 16:44:10 +0000</pubDate>
		<dc:creator>fugogugo</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[libgdx]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=740</guid>
		<description><![CDATA[Part #1 &#8211; Introduction Part #2 &#8211; Movement Part #3 &#8211; Base Entity and Multiple Enemies hehe buat part 3 ini kayanya judulnya panjang banget yah saya bikin jadi satu saja karena sebenarnya masing &#8211; masing bagian ga terlalu panjang dan bisa dibahas sekaligus. so let&#8217;s get it done! Base Entity Apa itu base entity [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Membuat%20Game%20Android%20Avoider%20Menggunakan%20Framework%20Libgdx%20%E2%80%93%20Part%20%233%20Base%20Entity%20and%20Multiple%20enemies' class='twitter-share-button' data-text='Membuat Game Android Avoider Menggunakan Framework Libgdx – Part #3 Base Entity and Multiple enemies' data-url='' data-counturl='http://blog.gamedevid.org/?p=740' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p><a href="http://blog.gamedevid.org/?p=494">Part #1 &#8211; Introduction</a><br />
<a title="Part#2 - Movement" href="http://blog.gamedevid.org/?p=606">Part #2 &#8211; Movement</a><br />
<a title="Part #3 - Base Entity and Multiple Enemies" href="http://blog.gamedevid.org/?p=740">Part #3 &#8211; Base Entity and Multiple Enemies</a></p>
<p>hehe buat part 3 ini kayanya judulnya panjang banget yah <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
saya bikin jadi satu saja karena sebenarnya masing &#8211; masing bagian ga terlalu panjang dan bisa dibahas sekaligus.<br />
so let&#8217;s get it done!<br />
<span id="more-740"></span></p>
<p><strong>Base Entity </strong></p>
<p>Apa itu base entity dan mengapa saya membuat yang seperti ini?<br />
saya harap anda sudah memahami <a href="http://en.wikipedia.org/wiki/Object-oriented_programming">Object Oriented Programming (OOP)</a>. jadi Base Entity ini adalah kelas induk dari seluruh entity yang ada di dalam game. Tujuannya adalah masing &#8211; masing entity dapat saling berbagi <em>common attribute</em>.</p>
<p>mari kita buat kelas Base entity nya.<br />
buatlah kelas baru dengan nama BaseEntity , lalu isikan dengan tiga attribute seperti di bawah ini</p>
<pre class="brush: java; title: ; notranslate">

package com.gdi.avoider;

import com.badlogic.gdx.math.Vector2;

public class BaseEntity {

    public final Vector2 pos = new Vector2();   //posisi
    public final Vector2 vel = new Vector2();  //kecepatan
    public boolean visible = true;    //penanda render, bila true maka object akan dirender ke layar
}

</pre>
<p>Dengan adanya BaseEntity ini maka kita dapat memisahkan data logic dengan data render.<br />
segala macam data seperti posisi , kecepatan , logika update dan segala macam hal yang tidak berhubungan dengan rendering process dipisahkan dan ditaruh ke dalam kelas yang diturunkan dari BaseEntity ini.</p>
<p>mari kita ambil contoh dari karakter android.</p>
<p>pertama buatlah kelas AndroidEntity yang meng-extend kelas BaseEntity</p>
<pre class="brush: java; title: ; notranslate">

package com.gdi.avoider;

public class AndroidEntity extends BaseEntity {

    public AndroidEntity() {
    }
}

</pre>
<p>lalu kita buat instance dari AndroidEntity ini di kelas GameScreen.</p>
<pre class="brush: java; title: ; notranslate">

public class GameScreen extends BaseScreen implements InputProcessor {
    AndroidEntity androidEntity;
    public GameScreen(Avoider avoider) {
        super(avoider);
        //.....
        //android.setPosition(100, 100);         androidEntity = new AndroidEntity();
        androidEntity.pos.set(100, 100); //     }
}

</pre>
<p>kemudian di bagian yang menerima input dan mengubah posisi android menjadi sama dengan posisi mouse/touch juga harus diubah. lihat di method touchDragged di bawah.</p>
<pre class="brush: java; title: ; notranslate">

    @Override
    public boolean touchDragged(int x, int y, int pointer) {
        inputCamera.unproject(inputPos.set(x, y, 0));
        //dari ini
        //android.setPosition(inputPos.x - android.getWidth()/2, inputPos.y - android.getHeight()/2);
        //ubahlah menjadi seperti ini
        androidEntity.pos.set(inputPos.x, inputPos.y);
        return true;
    }

</pre>
<p>dan terakhir di method render, sekarang posisi dari sprite menggunakan posisi dari androidEntity sehingga perlu dilakukan sedikit pengaturan. dan juga ingat tentang yang saya bahas kemarin tentang origin dari gambar.</p>
<pre class="brush: java; title: ; notranslate">

    @Override
    public void render(float delta) {
        super.render(delta);
        update(delta);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
        Gdx.gl.glClearColor(255, 255, 255, 255);
        batch.begin();
         //write it like this.
        //it set the android sprite origin is in the middle of image
        android.setPosition(androidEntity.pos.x - android.getWidth()/2, androidEntity.pos.y - android.getHeight()/2);
        android.draw(batch);        //sprite has draw function inside
        //more code below...
        batch.end();
    }

</pre>
<p>coba jalankan hasilnya.<br />
tapi tentu saja ga akan terlihat bedanya. hahaha. ini hanya untuk memudahkan pemisahan logika dan render saja.</p>
<p>coba lakukan hal yang sama dengan si Honeycomb <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>monggo kalau mau pencet page 2 <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=740</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Beberapa Motivasi Seseorang dalam Bermain Game</title>
		<link>http://blog.gamedevid.org/?p=733&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=beberapa-motivasi-seseorang-dalam-bermain-game</link>
		<comments>http://blog.gamedevid.org/?p=733#comments</comments>
		<pubDate>Mon, 26 Dec 2011 05:49:08 +0000</pubDate>
		<dc:creator>jasprelao</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=733</guid>
		<description><![CDATA[Tentunya setiap orang memiliki motivasi mereka masing-masing ketika mereka memutuskan untuk membeli sebuah game dan memainkannya. Paling tidak ada beberapa alasan yang dapat dijadikan landasan pemikiran bagi para perancang game untuk memenuhi selera pemain maupun idealisme sang perancang itu sendiri. Mau tahu? OK, ayo kita kupas satu-persatu. 1. FANTASI DAN EKSPLORASI Sebuah motivasi yang sangat [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Beberapa%20Motivasi%20Seseorang%20dalam%20Bermain%20Game' class='twitter-share-button' data-text='Beberapa Motivasi Seseorang dalam Bermain Game' data-url='' data-counturl='http://blog.gamedevid.org/?p=733' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p>Tentunya setiap orang memiliki motivasi mereka masing-masing ketika mereka memutuskan untuk membeli sebuah game dan memainkannya. Paling tidak ada beberapa alasan yang dapat dijadikan landasan pemikiran bagi para perancang game untuk memenuhi selera pemain maupun idealisme sang perancang itu sendiri.</p>
<p>Mau tahu? OK, ayo kita kupas satu-persatu.<br />
<span id="more-733"></span><br />
<strong>1. FANTASI DAN EKSPLORASI</strong><br />
Sebuah motivasi yang sangat penting untuk bermain game adalah memenuhi fantasi yang selama ini kita bayangkan. Seperti sebuah film, sebuah buku, atau musik, sebuah game dapat mengirimkan kita dari dunia nyata yang menekan kita dan membuat sebuah dunia fantasi di mana di dalamnya kita dapat melupakan sejenak masalah kita.<br />
Game berpotensi lebih banyak daripada cara tradisional untuk melupakan masalah, karena game lebih bersifat partisipatif. Daripada sekedar menonton sebuah film, membaca sebuah buku, atau mendengrkan sebuah musik, kita secara aktif terlibat dalam game. Tentu saja, kita mengendalikan game, dan hal ini tidak mungkin dilakukan oleh media fantasi pasif lainnya.<br />
Pemenuhan fantasi mengambil bentuk eksplorasi simbolik. Ada dunia besar di luar sana, penuh dengan hal-hal yang mengasyikkan, orang-orang, dan tempat-tempat, sebaliknya, masih banyak dari kita yang terkurung di dalam dunia yang penuh dengan aspal, plastik, kertas. Banyak bentuk-bentuk kesenian yang mencoba untuk memindahkan penontonnya ke dalam sebuah dunia yang berbeda, untuk mengalami atau merasakan dunia fantasi tersebut. Dan game adalah salah satu dari bentuk kesenian tersebut.<br />
Contoh pemenuhan fantasi ini bisa kita lihat pada game-game Disney, di sana penuh dengan fantasi yang sangat unik dan menggugah daya imajinasi banyak orang, Disney tidak sekedar menghibur, tetapi memberikan nuanasa fantasi yang kental sehingga banyak orang yang dapat mengikutinya. Sementara itu, dari Timur ada pula game-game yang menggugah fantasi seseorang, contohnya “Final Fantasy”, game ini juga banyak menggali fantasi pemainnya dalam mengeksplorasi dunia yang begitu luas dan menjadi pahlawan di dalam dunia tersebut. Bedanya, bila di Barat mengandalkan cerita yang sederhana dan menarik, maka Timur mengandalkan cerita yang komplelks dan mengharukan . Kedua dunia tersebut pernah bersatu di dalam sebuah game yang cukup terkenal yang diberi judul “Kingdom Hearts” (gambar 1), di mana tokoh-tokoh fantasi dari Barat (Disney) bergabung dengan kekompleksan cerita dan fantasi dari Timur (Square Enix, dalam hal ini Final Fantasy).</p>
<div class="wp-caption aligncenter" style="width: 410px"><img class=" " src="http://media.tumblr.com/tumblr_kyicc304Vp1qavjh0.jpg" alt="&quot;Quack...,&quot; Donald said" width="400" height="400" /><p class="wp-caption-text">Gambar 1: Kingdom Hearts</p></div>
<p><strong>2. MENEMBUS BATAS</strong><br />
Sebuah fungsi umum dari game yaitu untuk menyediakan wadah bagi kita agar dapat menenbus batas-batas dalam kehidupan nyata, minimal di dalam fantasi. Banyak game memungkinkan kita menjadi seorang pencuri, bajak laut, agen rahasia, pahlawan penyelamat dunia atau bahkan penjahat yan dikejar-kejar banyak polisi.<br />
Contohnya dalam sebuah game yang berjudul ”Rampage” yang bisa dimainkan di Playsation One. Di dalam game ini pemain berperan sebagai monster yan bebas menghancurkan gedung, menginjak mobil, menghantam helicopter dan menciptakan kekacauan. Game ini membuktikan bahwa sebuah kasus ekstrim dari tingkah laku anti social dapat diterima dan diwujudkan dengan aman di dalam sebuah game. Coba kalau itu terjadi di dunia nyata….<br />
Di sisi lain ada beberapa peran dalam game yang bisa diterima oleh masyarakat, tetapi aksi yang harus dilakukan membutuhkan keberanian dan kemampuan yang kadangkala menakutkan kita di dunia nyata.<br />
Contoh sederhana tentang hal ini adalah game “Monopoly”. Di dalam game ini, kita dimungkinkan untuk dapat membeli atau menjual asset dan property dengan mudah tanpa perlu khawatir akan bangkrut betulan. Tapi di dunia nyata, kesalahan penjualan atau pembelian yang sudah terlanjur kita lakukan tidak dapat diulangi lagi dan taruhannya adalah kondisi perekonomian kita. Perhatikan gambar 2 sebagai sebuah versi dari game Monopoly yang dapat dimainkan dalam Super Nintendo (SNES).<br />
Contoh lain adalah pada game perang, di game kita bisa saja berlatih strategi dan mati berkali-kali, tapi di dunia nyata, sekali nyawa melayang, tamat riwayat kita.<br />
Hal-hal tersebut membuktikan bahwa game bisa menembus batas-batas yang semula tidak mungkin kita lakukan dengan cara yang aman dan tidak “melanggar hukum”.</p>
<div class="wp-caption aligncenter" style="width: 310px"><img src="http://www.worldofmonopoly.com/images/board300x300.jpg" alt="Monopoy from SNES" width="300" height="300" /><p class="wp-caption-text">Gambar 2: Monopoly</p></div>
<p><strong>3. MEMBUKTIKAN DIRI</strong><br />
Fungsi lain dari game adalah wadah untuk mendemonstrasikan kemampuan kita baik dalam ketangkasan maupun kecepatan berpikir. Pada game catur, kemamupan strategi kita benar-benar dikuras, begitu pula pada game perang, strategi saja tidak cukup, butuh ketangkasan dan kecekatan yang tinggi untuk dapat membuktikan diri dalam game tersebut.<br />
Kita semua ingin dikenal oleh orang lain. Pengenalan ini merupakan sekedar pembuktian akan eksistensi kita, namun juga kepribadian kita. Sebagai contoh sederhana, ketika kita bertemu dengan seorang teman kita, kita biasanya akan mendapatkan apaan yang menandakan pengenalan yang terbatas misalnya semacam ini, “Hallo Hettyca, apa kabar?”. Tentunya kita akan lebih berterima kasih bila kita mendapatkan sapaan yang lebih mendalam ke arah kondisi yang terjadi paa hidup kita seperti “Hallo Hettyca, bagaimana ujian skripsimu kemarin?”<br />
Saat ini banyak komunitas bermain game yang mensponsori turnamen atau sistem rating, banyak sekali LAN Game maupun Online Game yang mengadopsi sistem rating ini supaya para pemainnya berlomba-lomba untuk menjadi yang terbaik, minimal pada salah satu bagian tertentu. Misalnya saja menjadi orang yang paling banyak melakukan “Headshot” pada game-game FPS (First Person Shooter), atau menjadi orang yang mendapatkan senjata kelas dewa pada game-game online masa kini.<br />
Indonesia sendiri pernah membuktikan diri dengan menembus babak penyisihan WCG (World Competition of Games) beberapa kali pada game Counter Strike dan Warcraft 3. Selain itu juga tedapat tim-tim game online seperti Ragnarok Online yang mewakili Indonesia dalam kompetisi internasional yang berhubungan dengan game ini. Tim-tim ini beserta anggotanya berhasil membawa nama harum bangsa, karena mereka membuktikan diri bahwa mereka tidak kalah kemampuan dengan pemain-pemain game dari negara lain. Hal ini memperkuat motivasi bermain game untuk membuktikan diri.<br />
<strong>4. MELATIH DIRI</strong><br />
Beberapa game membutuhkan koordinasi mata dan tangan yang tepat untuk dapat memenangkannya, sedangkan game yang lain membutuhkan strategi yang sangat akurat untuk dapat lolos dari bahaya. Bila kita seorang pemain yang pertama kali bermain game tersebut, sangatlah mungkin kita akan mudah kalah, namun game dapat membuat seseorang menjadi berlatih untuk dapat menguasai kemampuan yang dibutuhkan untuk kemudian menyelesaikan game tersebut. Secara tidak langsung kita telah melatih diri untuk meningkatkan kemampuan kita dalam suatu bidang tertentu. Dan itu dapat bermanfaat secara positif dalam kehidupan kita sehari-hari.<br />
Misalnya saja pada game Catur, semakin pandai kita mengatur formasi dan strategi pada bidak-bidak catur, maka pemikiran kita di dalam dunia nyata juga akan semakin strategis. Selain itu dalam game simulasi kendaraan, kita akan mengerti panel-panel mana yang dibutuhkan untuk menjalankan maupun memberhentikan kendaraan tersebut dan itu benar-benar dapat diterapkan di dalam kehidupan nyata.<br />
Hal yang perlu perlu diperhatikan oelah para pemain game yaitu untuk memainkan sebuah game dibutuhkan sikap tertentu antara lain keinginan untuk menaati peraturan, keinginan untuk bekerjasama agar game tetap “menyenangkan”, dan keinginan untuk menerima pengalaman sebagai “hanya sekedar game&#8221;. Tanpa sikap tersebut game akan berubah menjadi suatu hal yang tidak mengenakkan.<br />
Contohnya dalam permainan “Monopoly” (gambar 2.2). Di mana menjadi pemain “Monopoly” berarti tidak mencuri dari bank (mungkin saja hal ini dapat menyelesaikan game dengan cepat, tapi hal ini akan membuat game tidak asyik), tidak berhenti/mengganggu pemain lain ketika hampir kalah atau mencegah pemain lain menang dan tidak menyimpan dendam setelah game berakhir.</p>
<p>Nah demikianlah beberapa motivasi seseorang dalam bermain game, siapa tahu kita pun pernah memiliki salah satu atau salah dua dari motivasi tersebut. Memang masih banyak motivasi-motivasi lain yang membuat seseorang bermain game, tapi setidaknya tulisan ini menambah sedikit dari pengetahuan kita. Nantikan tulisan-tulisan lainnya <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=733</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Making a shooter game series, part 8: Scrolling camera</title>
		<link>http://blog.gamedevid.org/?p=698&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=making-a-shooter-game-series-part-8-scrolling-camera</link>
		<comments>http://blog.gamedevid.org/?p=698#comments</comments>
		<pubDate>Wed, 21 Dec 2011 16:37:44 +0000</pubDate>
		<dc:creator>Aryadi Perwira</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=698</guid>
		<description><![CDATA[Sampai juga kita di seria kedelapan dari tutorial pembuatan game shooter. Sama seperti biasanya kita akan melanjutkan dari tutorial part terakhir, kalau kamu masih ingat pada tutorial terakhir kita membuat background yang lebih menghibur daripada sekedar warna hitam. Seperti yang (kalau tidak salah) saya janjikan di tutorial seri ketujuh, kali ini kita akan membahas mengenai [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Making%20a%20shooter%20game%20series%2C%20part%208%3A%20Scrolling%20camera' class='twitter-share-button' data-text='Making a shooter game series, part 8: Scrolling camera' data-url='' data-counturl='http://blog.gamedevid.org/?p=698' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p>Sampai juga kita di seria kedelapan dari tutorial pembuatan game shooter. Sama seperti biasanya kita akan melanjutkan dari tutorial part terakhir, kalau kamu masih ingat pada tutorial terakhir kita membuat background yang lebih menghibur daripada sekedar warna hitam. Seperti yang (kalau tidak salah) saya janjikan di tutorial seri ketujuh, kali ini kita akan membahas mengenai camera dan bagaimana membuat scrolling background.</p>
<p>Camera, dalam konteks game/game development, adalah pengganti mata kita dalam melihat game. Pendeknya, apa yang masuk dalam jarak pandang cameralah yang akan ditampilkan di game window. Kita bisa saja membuat sesuatu diluar jarak pandang camera, yang nantinya (dalam gameplay) akan tampil di game window dengan cara menggerakkan camera, dengan cara inilah kita akan membuat scrolling background. Sebelum kita membuat sesuatu diluar jarak pandang camera, pertama-tama kita akan belajar bagaimana cara menggerakkan camera terlebih dulu. Tambahkan fungsi ini di bagian atas class MapOne:</p>
<pre class="brush: actionscript3; gutter: false">	import net.flashpunk.utils.Input;
	import net.flashpunk.utils.Key;
        import net.flashpunk.FP;</pre>
<p>setelah itu kita akan menambahkan fungsi untuk menggerakkan camera, masih di MapOne:</p>
<p><span id="more-698"></span></p>
<pre class="brush: actionscript3; gutter: true">		override public function update():void
		{
			super.update();

			if (Input.check(Key.UP))
			{
				FP.camera.y -= 10;
			}
			else if (Input.check(Key.DOWN))
			{
				FP.camera.y += 10;
			}

			if (Input.check(Key.LEFT))
			{
				FP.camera.x -= 10;
			}
			else if (Input.check(Key.RIGHT))
			{
				FP.camera.x += 10;
			}
		}</pre>
<p>ada satu keyword yang seingat saya masih belum saya jelaskan lebih lanjut: override. Singkatnya, fungsi yang di override adalah fungsi milik base class (disebut juga parent class) yang &#8220;dilangkahi&#8221; oleh fungsi dengan nama &amp; parameter yang sama di child class. Maksudnya &#8220;dilangkahi&#8221; adalah, normalnya ketika fungsi yang di-override itu dipanggil (umumnya, oleh class yang bukan child class) maka fungsi milik base class lah yang dipanggil. Dalam hal ini, biasanya class update() akan dipanggil oleh engine untuk meng-update entity. Ketika fungsi ini di-override, maka fungsi di base class tidak dipanggil lagi, engine akan menjalankan fungsi yang ditulis di child class. Di sini timbul satu pertanyaan: bagaimana kalau pada fungsi yang ada di parent class terdapat code penting yang harus dijalankan? Kalau kita tetap ingin menjalankan fungsi aslinya di base class dan sekaligus menjalankan code di child class, yang perlu kita lakukan adalah memanggil super.update() (atau nama fungsi lain yang kita override) ini akan membuat engine &#8220;terpaksa&#8221; memanggil fungsi yang kita override di base class kita.</p>
<p>Baris-baris code sesudah super.update() pasti sudah dikenal karena kita punya code yang mirip dengan ini untuk menggerakkan pesawat kita. Tekan F5 untuk meng-compile dan coba gerakkanlah camera kita. Kalau sudah puas bermain-main dengan pergerakan camera dengan keyboard, sekarang kita akan menggerakkan camera secara otomatis. Di game kita, yang kita inginkan adalah background bergerak mundur, tapi gerakan pesawat kita dan juga musuh tidak terpengaruh oleh gerakan camera. Sehingga hasil akhirnya adalah pesawat kita yang terlihat &#8216;bergerak&#8217; maju.</p>
<p>Pertama-tama yang akan kita lakukan adalah melengkapi background yang akan kita gunakan, sehingga tidak ada bagian hitam yang terlihat dalam game kita. Ubahlah code untuk membuat background tile menjadi seperti ini:</p>
<pre class="brush: actionscript3; gutter: false">			tile.img.setRect(0, 10, 20, 45, 0);
			tile.img.setRect(5, 2, 4, 3, 3);
			tile.img.setRect(3, 5, 5, 4, 10);
			tile.img.setRect(4, 6, 3, 2, 2);
			tile.img.setRect(13, 5, 6, 7, 5);

			tile.img.setRect(15, 16, 4, 7, 3);
			tile.img.setRect(0, 16, 7, 9, 5);
			tile.img.setRect(15, 20, 3, 8, 2);
			tile.img.setRect(3, 20, 10, 7, 1);
			tile.img.setRect(8, 25, 9, 8, 2);
			tile.img.setRect(11, 32, 7, 6, 4);
			tile.img.setRect(2, 30, 8, 10, 3);
			tile.img.setRect(7, 40, 11, 1, 3);
			tile.img.setRect(4, 41, 12, 1, 3);
			tile.img.setRect(8, 42, 9, 1, 4);
			tile.img.setRect(9, 43, 11, 1, 4);
			tile.img.setRect(0, 44, 19, 1, 4);</pre>
<p>dan ubahlah instansiasi variabel img di constructor Tiles menjadi seperti ini:</p>
<pre class="brush: actionscript3; gutter: false">img = new Tilemap(tileset, 640, 1440, 32, 32);</pre>
<p>Kalau tidak begitu, ukuran kanvas tempat kita menggambar tilemap tidak berubah, dan tinggi area permainan akan tetap. Itu cukup membuat tilemap untuk level dalam tutorial kita kali ini. Kalau kamu ingin membuat level yang lebih luas, tinggal tambahkan saja sesukamu. Kalau kamu tekan F5 sekarang kamu akan melihat hasil dari background level yang sudah kita buat. Walau mungkin tidak terlihat natural karena desain level kita kebanyakan terdiri dari petak-petak persegi empat, tapi ini cukup untuk tutorial kita kali ini.</p>
<p>Ada satu hal yang masih terasa kurang dalam game kita ini. Posisi awal camera dan juga pesawat berada di ujung atas dari background. Ini bukanlah yang kita inginkan untuk game kita. Yang kita mau adalah ketika game dimulai, posisi pesawat ada di ujung bawah background lalu permainan akan berjalan perlahan-lahan ke atas. Sekarang kita akan menaruh pesawat kita di ujung bawah background. Harusnya kita bisa mengubah FP.camera.y di constructor untuk mengubah nilai y camera supaya berada di bawah ketika MapOne dibuat,tapi entah kenapa setiap saya ubah nilai FP.camera.y di constructor tetap tidak ada bedanya, nilai y kamera tetap saja 0 (mungkin ini setting default dari flashpunk, saya belum mencek lebih lanjut). Tapi jangan khawatir, karena ada work around untuk masalah ini. Pertama-tama buat sebuah variabel bertipe data Boolean bernama runOnce dan beri nilai awal false. Kemudian, buat conditional if seperti berikut dalam fungsi update:</p>
<pre class="brush: actionscript3; gutter: false">			if (!runOnce) 
			{
				FP.camera.y = 960;
				runOnce = true;
			}</pre>
<p>baris kode yang ada dalam conditional if ini hanya akan dilaksanakan sekali saja, memang lebih baik kalau kita mengubah posisi camera di constructor, tapi cara ini kita pakai karena ada hambatan dalam engine. Tekan F5, dan camera kita sudah menyorot bagian bawah peta. Langkah berikutnya adalah membuat pesawat bergerak bersama-sama dengan camera. Untuk yang satu ini mudah sekali, bukalah class Character dan tambahkan dua baris kode ini di constructor:</p>
<pre class="brush: actionscript3; gutter: true">			img.scrollX = 0;
			img.scrollY = 0;</pre>
<p>scrollX dan scrollY adalah nilai-nilai yang menentukan pergerakan entity ini terhadap camera.  Nilai default-nya adalah 1 yang berarti gerakan entity tidak terpengaruh oleh camera, jika diberi nilai 0,5 maka gerakan entity ini akan bergerak setengah kali kecepatan camera, dengan nilai 0 gerakan entity ini akan mengikuti camera. Terakhir, buat variabel baru dengan nama cameraSpeed dengan nilai awal 50 (bisa kamu ganti sesukamu) lalu ganti kode untuk gerakan camera dengan arrow pad dengan code di bawah ini:</p>
<pre class="brush: actionscript3; gutter: false">			if (FP.camera.y &gt; 0) 
			{
				FP.camera.y -= cameraSpeed * FP.elapsed;
			}</pre>
<p>Kalau kamu tekan F5 kamu bisa melihat bahwa kita sudah mencapai hasil yang kita inginkan! Camera sudah scroll otomatis dari bawah ke atas dan pesawat sudah bergerak mengikuti camera. Baiklah sampai sini dulu tutorial saya, sampai ketemu di tulisan saya berikutnya. Happy coding</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=698</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apa yang membedakan industri gamedev kita dengan industri gamedev luar? Part 3</title>
		<link>http://blog.gamedevid.org/?p=702&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=702</link>
		<comments>http://blog.gamedevid.org/?p=702#comments</comments>
		<pubDate>Fri, 16 Dec 2011 12:55:09 +0000</pubDate>
		<dc:creator>RonWidjaja</dc:creator>
				<category><![CDATA[Game business]]></category>
		<category><![CDATA[Game design]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=702</guid>
		<description><![CDATA[Part 1: http://blog.gamedevid.org/?p=422 Part 2: http://blog.gamedevid.org/?p=552 Faktor Budaya &#38; Mentalitas Part 2 Melanjutkan dari pembicaraan terakhir, kini kita akan berbicara mengenai kultur dan mentalitas dari pelaku industri game dari benua Timur seperti Jepang, Korea, China dan juga Taiwan. So mari kita langsung saja mulai dari Game Industri di Jepang terlebih dahulu. Japan Gaming Culture. Seperti yang sudah [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Apa%20yang%20membedakan%20industri%20gamedev%20kita%20dengan%20industri%20gamedev%20luar%3F%20Part%203' class='twitter-share-button' data-text='Apa yang membedakan industri gamedev kita dengan industri gamedev luar? Part 3' data-url='' data-counturl='http://blog.gamedevid.org/?p=702' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p>Part 1: <a href="http://blog.gamedevid.org/?p=422">http://blog.gamedevid.org/?p=422</a></p>
<p>Part 2: <a href="http://blog.gamedevid.org/?p=552">http://blog.gamedevid.org/?p=552</a></p>
<p><strong>Faktor Budaya &amp; Mentalitas Part 2</strong></p>
<p>Melanjutkan dari pembicaraan terakhir, kini kita akan berbicara mengenai kultur dan mentalitas dari pelaku industri game dari benua Timur seperti Jepang, Korea, China dan juga Taiwan. So mari kita langsung saja mulai dari Game Industri di Jepang terlebih dahulu.</p>
<p><strong>Japan</strong><strong> Gaming Culture.</strong></p>
<p>Seperti yang sudah saya bicarakan di artikel-artikel sebelumnya, pada tahun 1983 sampai sekitar 2005 pertengahan, dapat dibilang industri game Jepang memimpin industri game dunia pada saat itu.</p>
<div class="wp-caption aligncenter" style="width: 560px"><img src="http://image.com.com/gamespot/images/bigboxshots/8/563408_2841_front.jpg" alt="" width="550" height="386" /><p class="wp-caption-text">Thanks, Akira Toriyama</p></div>
<p>Salah satu hal yang paling mengena disetiap pemain yang pernah memainkan game-game Jepang adalah nuansa game yang unik dan tidak biasa bahkan sampai yang luar biasa absurd sekalipun. Dan tidak seperti game industri Amerika, budaya gaming di Jepang lebih mengarah ke tema fantasy dan bukan realitas seperti di North America. Hal ini tentunya bisa kita lihat dari banyaknya game-game RPG di Jepang (yang sekaligus merupakan genre andalan game Jepang) yang memiliki dunia yang terkesan sangat unik dan bersifat fantasy.</p>
<p>Budaya anime sendiri juga mendukung hal tersebut, dimana kalau kita melihat industri film animasi Jepang pada tahun 80-90an, hampir semua tema yang dipakai bergenre kan fantasy atau sci-fi fantasy (magic girl, mecha sci-fi, etc) dan umumnya cerita merupakan salah satu pertimbangan paling penting dalam pembuatan sebuah game di Jepang. Sehingga dengan kuatnya budaya “storytelling” tersebut, maka jelas pengembangan karakter di game-game Jepang terasa lebih kuat dan emosional.</p>
<p>Hanya saja sayangnya seiring waktu, cerita-cerita di game RPG Jepang mulai kehabisan idea dan semakin lama semakin monotone. Ditambah sayangnya lagi, para developer masih tidak berani untuk berinovasi dari segi cerita dikarenakan mereka takut sampai kehilangan market “remaja” mereka yang merupakan market utama pembeli game di Jepang.</p>
<div class="wp-caption aligncenter" style="width: 460px"><img src="http://i299.photobucket.com/albums/mm308/OmadaNara/CloudStrifeDissidia.png" alt="got emo?" width="450" height="700" /><p class="wp-caption-text">My first experience with an emo game character.</p></div>
<p>Memang remaja Jepang lebih “nyambung” dengan cerita dimana sang tokoh utama game RPG memiliki ciri-ciri kepribadian yang remaja Jepang miliki yaitu umumnya tokoh utama game berusia dibawah 20 tahun (namun sudah harus menyelamatkan dunia), tokoh utama masih remaja labil yang mencari jati diri dalam game, terkadang juga &#8220;emo&#8221; dan suka menyendiri dan banyak cliché lainnya yang tentunya kita semua sudah cukup familiar kalau kita sering memainkan game2 Jepang.</p>
<p>Alhasil dengan semakin monotonenya game-game RPG andalan Jepang, maka tindakan tersebut malah membuat market luar yang dulunya tertarik dengan game RPG Jepang menjadi jenuh dan tidak lagi tertarik dengan RPG Jepang, juga belum lagi mengingat jumlah kelahiran di Jepang semakin sedikit sehingga jumlah pemainnya pun terus berkurang dan barulah akhir-akhir ini, game developer Jepang mulai kelabakan dan mulai memikirkan untuk membuat game-game yang lebih dikhususkan untuk pasar di benua Amerika (yg jumlah gamer dan jumlah penduduknya jauh lebih banyak)</p>
<p><strong>Japanese Game Industry Mentality.</strong></p>
<p>Dari segi semangat dan niat, maka jelas game industry di Jepang tidak kalah dengan rival mereka di North America. Lalu satu hal lagi yang membuat Industri Game di Jepang unik dan bervariant adalah flexibilitas mereka dalam mengadopsi budaya luar untuk diasimilasi menjadi kebudayaan mereka sendiri.</p>
<p>Memang semenjak Jepang terbuka untuk dunia setelah masa Perang Dunia ke 2, Jepang telah menjadi negara yang sangat toleran menerima kebudayaan luar. Tidak percaya?! Coba liat fashion Harajuku (mengikuti fashion Amerika yang mereka tambah2kan sendiri), makanan (Indian Curry? Daging hamburger yang tanpa roti?, various coffee shop?) dan tidak lupa game yang mereka buat yang pada awal mulanya kebanyakan mengambil tema “medieval Europe fantasy” sebagai tema utama di kebanyakan game-game RPG pada umumnya.</p>
<div class="wp-caption aligncenter" style="width: 620px"><img src="http://www.rhythmcircus.co.uk/wordpress/wp-content/uploads/2010/07/dragon-quest-9.jpg" alt="" width="610" height="300" /><p class="wp-caption-text">Believe it or not, Dragon Quest series is the number 1 RPG in Japan.</p></div>
<p>Game RPG paling top di Jepang saat ini ada 2 yaitu “Dragon Quest” dan “Final Fantasy” dan kalau kalian ikutin kedua seri tersebut dari awal, maka kalian akan menemukan bahwa di seri-seri awal, Final Fantasy dan Dragon Quest betul-betul mengambil terang2an dunia fantasy medieval dari negara Barat untuk game buatan mereka. Barulah di seri-seri berikutnya, mereka menambah-nambahkan beberapa elemen Jepang didalamnya.</p>
<p>Mereka tidak memaksakan bahwa game RPG pertama mereka harus mengenai samurai di jaman Edo namun mereka sangat flexible disini dan tidak malu untuk memakai budaya luar untuk kreasi mereka. Namun apakah ini artinya orang Jepang tidak nasionalis? Absolutely not! The opposite in the matter of fact! Orang-orang Jepang adalah orang-orang yang bangga dengan nasionalitas mereka namun hal tersebut tidak selalu harus diperlihatkan dengan menunjukan bahwa product mereka harus 100% selalu bertema Jepang.</p>
<p>Sehingga sekali lagi mungkin yang patut dikagumi dari Mentalitas para pelaku Industri game Jepang adalah flexibilitas mereka dalam menyerap budaya luar untuk dijadikan budaya mereka sendiri. Hal ini membuat semua product buatan Jepang (baik itu game ataupun bukan) unik dan sometimes digemari di beberapa benua sekaligus.</p>
<p>Berhubung untuk part Jepang sendiri sudah cukup panjang jadi di Part 3 berikutnya, baru kita akan masuk ke negara2 game industry timur lainnya seperti South Korea, China dan Taiwan so ditunggu post berikutnya. <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Thanks and Godspeed, people!</p>
<p>&nbsp;</p>
<p>RonW.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=702</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Membuat Game Android Avoider Menggunakan Framework Libgdx – Part #2 Movement</title>
		<link>http://blog.gamedevid.org/?p=606&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=membuat-game-android-avoider-menggunakan-framework-libgdx-%25e2%2580%2593-part-2-movement</link>
		<comments>http://blog.gamedevid.org/?p=606#comments</comments>
		<pubDate>Mon, 12 Dec 2011 16:12:44 +0000</pubDate>
		<dc:creator>fugogugo</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[avoider]]></category>
		<category><![CDATA[libgdx]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=606</guid>
		<description><![CDATA[Part #1 &#8211; Introduction Part #2 &#8211; Movement Part #3 &#8211; Base Entity and Multiple Enemies Yow halo semua kembali lagi di seri tutorial game android dengan menggunakan libgdx. ini adalah bagian kedua dari seluruh tutorial, apabila anda belum membaca yang pertama lebih baik selesaikan dulu membaca yang pertama . Menggerakkan Musuh Bergerak menurut fisika [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Membuat%20Game%20Android%20Avoider%20Menggunakan%20Framework%20Libgdx%20%E2%80%93%20Part%20%232%20Movement' class='twitter-share-button' data-text='Membuat Game Android Avoider Menggunakan Framework Libgdx – Part #2 Movement' data-url='' data-counturl='http://blog.gamedevid.org/?p=606' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p><a href="http://blog.gamedevid.org/?p=494">Part #1 &#8211; Introduction</a><br />
<a title="Part#2 - Movement" href="http://blog.gamedevid.org/?p=606">Part #2 &#8211; Movement</a><br />
<a title="Part #3 - Base Entity and Multiple Enemies" href="http://blog.gamedevid.org/?p=740">Part #3 &#8211; Base Entity and Multiple Enemies</a></p>
<p>Yow halo semua <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
kembali lagi di seri tutorial game android dengan menggunakan libgdx. ini adalah bagian kedua dari seluruh tutorial, apabila anda belum membaca yang pertama lebih baik selesaikan dulu membaca yang <a href="http://blog.gamedevid.org/?p=494">pertama  </a> . <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>Menggerakkan Musuh</strong></p>
<p>Bergerak menurut fisika berarti sebuah benda melakukan perpindahan posisi. Di dalam game pun tidak berbeda, yang kita lihat dalam game sebagai <em>Bergerak </em>sebenarnya adalah posisi benda yang kita lihat telah berubah posisinya karena di update. jadi di dalam game <em>Pergerakan adalah perubahan posisi sebuah benda (x,y,z) tiap satuan waktu/per update cycle</em></p>
<p>Untuk menggerakkan sebuah benda dibutuhkan kecepatan. <em>Kecepatan adalah besarnya perpindahan posisi sebuah benda tiap satuan waktu/per update cycle . Kecepatan </em>adalah berupa vector karena memiliki besar dan arah.</p>
<p>karena itulah kita akan membuat sebuah object bertipe Vector2 bernama vel (singkatan dari velocity)</p>
<pre class="brush: java; title: ; notranslate">
public final Vector2 vel = new Vector2();
</pre>
<p>keyword final artinya menjadikan object tersebut sebagai sebuah constant object. apa artinya constant object akan saya jelaskan di kesempatan lain. just leave it be for now.</p>
<p>lalu di constructor mari kita set nilai vel tersebut menjadi (0,-50) yang artinya kecepatan x adalah 0 dan kecepatan y adalah -50 . sesuai dengan world koordinat libgdx dimana y positif adalah ke atas berarti kecepatan -50 di y adalah menuju ke bawah</p>
<pre class="brush: java; title: ; notranslate">
    public GameScreen(Avoider avoider) {
        super(avoider);
       //code here....
        vel.set(0, -50);
    }
</pre>
<p>selanjutnya untuk dapat menggerakkan sang musuh pada tiap update cycle sebelumnya kita buat dahulu satu method bernama update. di dalam method update ini perpindahan posisi musuh dilakukan</p>
<pre class="brush: java; title: ; notranslate">
    public void update(float delta) {
    }
</pre>
<p>kemudian panggil method update tersebut di bagian paling atas method render()</p>
<pre class="brush: java; title: ; notranslate">
@Override
    public void render(float delta) {
        super.render(delta);
        update(delta);
       .... //more code below
    }
</pre>
<p>taruh kode untuk menggerakkan musuh di dalam method update tadi.</p>
<pre class="brush: java; title: ; notranslate">
    public void update(float delta) {
        honeycomb.setPosition(honeycomb.getX() + vel.x * delta, honeycomb.getY() + vel.y * delta);
    }
</pre>
<p>terlihat sedikit rumit , namun bila dirumuskan akan terlihat lebih mudah :<br />
x = x + Vx * delta<br />
y = y + Vy * delta</p>
<p>note: Vx * delta dan Vy * delta merupakan rumus <strong><a href="http://en.wikipedia.org/wiki/Interpolation">interpolasi</a></strong> yang digunakan untuk menjaga agar pergerakan tetap terlihat smooth tidak terpengaruh oleh FPS game.</p>
<p>oiya perlu juga diatur posisi awal musuh agar dapat bergerak dari atas sampai ke bawah. tuliskan kode ini di dalam constructor</p>
<pre class="brush: java; title: ; notranslate">
honeycomb.setPosition(100, 480);
</pre>
<p>tekan Run dan amati hasilnya!</p>
<p>full code </p>
<pre class="brush: java; title: ; notranslate">
package com.gdi.avoider;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3;

public class GameScreen extends BaseScreen {

    private SpriteBatch batch;  //class that will handle 2D rendering task
    private Texture androidTexture; //texture as image container
    private Texture honeycombTexture;
    private Sprite android;             //sprite that will be used to draw texture
    private Sprite honeycomb;

    public final Vector2 vel = new Vector2();
    public GameScreen(Avoider avoider) {
        super(avoider);
        batch = new SpriteBatch();
        androidTexture = new Texture(Gdx.files.internal(&quot;android.png&quot;));
        honeycombTexture = new Texture(Gdx.files.internal(&quot;honeycomb.png&quot;));
        android = new Sprite(androidTexture, 0, 0, 100, 100);
        honeycomb = new Sprite(honeycombTexture, 0, 0, 50, 50);
        android.setPosition(100, 100);

       honeycomb.setPosition(100, 480);
 vel.set(0, -50);
    }

    //a texture defined must be disposed after unused or application closed
    @Override
    public void dispose() {
        super.dispose();
        androidTexture.dispose();
        honeycombTexture.dispose();
    }

    @Override
    public void render(float delta) {
        super.render(delta);
        update(delta);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);   //clear screen
        Gdx.gl.glClearColor(255, 255, 255, 255);    //fill screen with white color

        //batch drawing must began with batch.begin() and ended with batch.end()
        batch.begin();
        android.draw(batch);        //sprite has draw function inside
        honeycomb.draw(batch);
        batch.end();
    }

    public void update(float delta) {
 honeycomb.setPosition(honeycomb.getX() + vel.x * delta, honeycomb.getY() + vel.y * delta);
 }
</pre>
<p>Next ,, menggerakkan karakter <img src='http://blog.gamedevid.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Click on next page please</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=606</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Composing BGM menggunakan FL Studio</title>
		<link>http://blog.gamedevid.org/?p=641&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=composing-bgm-menggunakan-fl-studio</link>
		<comments>http://blog.gamedevid.org/?p=641#comments</comments>
		<pubDate>Thu, 08 Dec 2011 16:25:22 +0000</pubDate>
		<dc:creator>Ittou</dc:creator>
				<category><![CDATA[Music and sound]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[FL Studio]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://blog.gamedevid.org/?p=641</guid>
		<description><![CDATA[BGM (Background Music) dalam sebuah game memiliki banyak peran. Salah satunya, membantu menggambarkan emosi dan tension yang mungkin kurang jika digambarkan secara visual saja. Oleh karena itu, penyusunan  atau composing BGM adalah salah satu aspek yang harus diperhatikan dalam development sebuah game. Saat ini, kemajuan di bidang IT telah memungkinkan kita untuk menciptakan music tanpa [...]]]></description>
				<content:encoded><![CDATA[<a href='http://twitter.com/share?url=&count=horizontal&related=gamedev_id&text=Composing%20BGM%20menggunakan%20FL%20Studio' class='twitter-share-button' data-text='Composing BGM menggunakan FL Studio' data-url='' data-counturl='http://blog.gamedevid.org/?p=641' data-count='horizontal' data-via='gamedev_id' data-related='gamedev_id'></a><p>BGM (Background Music) dalam sebuah game memiliki banyak peran. Salah satunya, membantu menggambarkan emosi dan tension yang mungkin kurang jika digambarkan secara visual saja. Oleh karena itu, penyusunan  atau composing BGM adalah salah satu aspek yang harus diperhatikan dalam development sebuah game.</p>
<p>Saat ini, kemajuan di bidang IT telah memungkinkan kita untuk menciptakan music tanpa harus merekam permainan musisi asli. DAW (Digital Audio Workstation) dan VST (Virtual Studio Technology) adalah tool yang berperan untuk membantu musisi untuk mewujudkan hal itu. Dalam tulisan kali ini, penulis akan menjelaskan cara membuat BGM game dengan menggunakan DAW FL Studio.</p>
<h1>Pengenalan User Interface FL Studio</h1>
<p>User Interface FL Studio, bisa dibagi &#8211; bagi menjadi region atau wilayah &#8211; wilayah seperti ini :</p>
<p><img src="http://db.tt/UfA4Fguh" alt="" width="853" height="538" /></p>
<p>Interface FL Studio, secara garis besar dibagi dalam 6 kelompok :</p>
<p><strong>Toolbar : </strong></p>
<p>Panel tempat kita bisa mengakses banyak command dan option untuk mengkonfigurasi FL Studio.</p>
<p><strong>Channel Windows &amp; Step Sequencer :</strong></p>
<p>Di sini adalah tempat utama user melakukan proses composing. Panel ini berfungsi untuk menempatkan instrument dan memasukkan beat melalui step sequencer. Dari channel ini juga user bisa mengaktifkan Piano Roll. Hasil komposisi step sequencer dan piano roll tersebut akan disimpan dalam pattern – pattern.</p>
<p><strong>Piano Roll :</strong></p>
<p>Tempat memasukkan nada instrument</p>
<p><strong>Browser :</strong></p>
<p>Panel ini memberikan akses cepat ke koleksi preset instrument user.</p>
<p><strong>Playlist :</strong></p>
<p>Playlist adalah tempat user menyusun pattern – pattern menjadi sebuah komposisi musik.</p>
<p><strong>Mixer :</strong></p>
<p>Di panel ini, dilakukan tahap penyelesaian sebuah aransemen musik. Masing &#8211; masing instrument dirouting ke channel – channel mixer tersendiri, lalu dilakukan proses tweaking yang disebut Mixing dan Pre-Master / Mastering.</p>
<p><span id="more-641"></span></p>
<h1>Membuat musik pertama dengan FL Studio</h1>
<p>Menurut penulis, musik secara sederhana tersusun atas 4 elemen dasar. Beat, Bassline, Lead, dan Accompany (Isian). Komposisi musik yang baik adalah yang memiliki keempat unsur tersebut, dan tercipta harmoni yang baik dari unsur – unsur tersebut.</p>
<h2>Memasukkan instrument ke  channel windows</h2>
<p>Kita tak bisa membuat BGM tanpa alat musik. Oleh karena itu, tahapan pertama dalam pembuatan sebuah musik adalah memilih dan memasukkan instrument yang diperlukan. Caranya :</p>
<p><img src="http://db.tt/d1eSn5L5" alt="" width="648" height="399" /></p>
<p>Atau, bisa juga dengan</p>
<p><img src="http://db.tt/GFbXq6T4" alt="" width="714" height="442" /></p>
<h2>Pengenalan konsep Pattern dan Playlist</h2>
<p>Di FL Studio, terdapat konsep pattern yang fungsinya untuk menyimpan loop atau potongan komposisi musik yang dibuat oleh user. Dan playlist, yang fungsinya mengatur kapan loop – loop pattern tersebut dimainkan.<br />
Misalnya, kita ingin membuat pattern Beat dan Bassline. Caranya adalah sebagai berikut :</p>
<p><img src="http://db.tt/MYNouj9x" alt="" /></p>
<p><img src="http://db.tt/zyIiWGiy" alt="" /></p>
<p>Sekarang kita mempunyai pattern Beat1. Di pattern ini kita bisa mengisikan aransemen yang hendak kita buat. Untuk membuat aransemen, bisa dilakukan dengan dua cara. Untuk pattern ini, penulis akan menjelaskan cara menggunakan step sequencer.</p>
<p><img src="http://db.tt/IhAuv9Bc" alt="" /></p>
<p><img src="http://db.tt/Zk2D4tUh" alt="" /></p>
<p>Masukkan pattern yang anda buat ke Playlist</p>
<p><img src="http://db.tt/X41L1Iu3" alt="" /></p>
<p>Sekarang kita sudah memiliki pattern untuk beat. Selanjutnya kita akan membuat pattern untuk bassline. Untuk membuat bassline, penulis akan menggunakan piano Roll. Sebelumnya, penulis akan membuat pattern dengan nama “Bass1” terlebih dahulu. Untuk memunculkan piano roll :</p>
<p><img src="http://db.tt/DfGZ3u2i" alt="" /></p>
<p>Di Piano Roll, kita memasukkan nada – nada yang diperlukan untuk membuat pattern.</p>
<p><img src="http://db.tt/2SkEY1GE" alt="" /></p>
<p>Selanjutnya, penulis akan memasukkan instrument tambahan untuk membuat lead dan isian. Untuk menambah instrument :</p>
<p><img src="http://db.tt/8hO0oeOj" alt="" /></p>
<p>Beberapa instrument seperti sytrus, memiliki preset yang bisa diakses dengan cara :</p>
<p><img src="http://db.tt/ecazIDDq" alt="" /></p>
<p>Penulis akan menambahkan 2 channel sytrus, yang satu berfungsi sebagai lead, lainnya sebagai isian. Kemudian memasukkannya ke dalam playlist.<br />
Dan… Hasil akhirnya seperti ini :</p>
<p><img src="http://db.tt/SyO9qju9" alt="" /></p>
<p>Demikian pengetahuan dasar membuat BGM menggunakan FL Studio.<br />
FLP tutorial kali ini bisa didownload disini :</p>
<p>http://db.tt/GZX7wgIM</p>
<p>Keep rock all :3</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gamedevid.org/?feed=rss2&#038;p=641</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
