Tag Archives: Tutorial

Browser game dengan Libgdx Applet

hello there, lama tak menulis. :D
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. :D

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 :)

lalu bagaimana caranya? mari kita coba!

(sebelumnya silakan download semua jar dan requirement lainnya disini)

Read more …

fugogugo

undergraduate student at UGM, co-founder and Game Programmer at Amagine Interactive.

More Posts

Pembentukan Rasa Dan Citra Untuk Musik

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. Nah, sekarang kita akan mengupas tentang bagaimana membentuk rasa dan citra pada musik.

Terdapat 4 unsur dasar yang vital dalam pembentukan rasa dan citra pada musik.

Harmoni musik

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 (chord). Sedangkan harmoni yang dibunyikan berurutan, kita kenal dengan sebutan arpeggio.

Pola nada dalam harmoni diatur dalam scale. 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.

Gambar 1. scale C major dan C minor

Penggunaan scale musik tersebut sangat mempengaruhi emosi musik yang nantinya akan kita buat. Beberapa diantaranya :

  • Suasana ceria dan semangat biasanya dibentuk dengan scale mayor.
  • Musik dengan scale minor untuk menggambarkan kesedihan, galau, suram, dll.
  • Scale minor dengan chord diminish dan nada-nada atonal (sengaja melenceng dari scale) untuk membuat suasana tegang.
  • Untuk menggambarkan suasana bingung, gunakan scale mayor dengan nada-nada atonal.

Tempo dan Dinamika

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 :

  • “Larghissimo — very, very slow (20 bpm and below)
  • Grave — slow and solemn (20–40 bpm)
  • Lento — slowly (40–60 bpm)
  • Largo — broadly (40–60 bpm)
  • Larghetto — rather broadly (60–66 bpm)
  • Adagio — slow and stately (literally, “at ease”) (66–76 bpm)
  • Adagietto — rather slow (70–80 bpm)
  • Andante moderato — a bit slower than andante
  • Andante — at a walking pace (76–108 bpm)
  • Andantino – slightly faster than andante
  • Moderato — moderately (108–120 bpm)
  • Allegretto — moderately fast (but less so than allegro)
  • Allegro moderato — moderately quick (112–124 bpm)
  • Allegro — fast, quickly and bright (120–168 bpm)
  • Vivace — lively and fast (?140 bpm) (quicker than allegro)
  • Vivacissimo — very fast and lively
  • Allegrissimo — very fast
  • Presto — very fast (168–200 bpm)
  • Prestissimo — extremely fast (more than 200bpm)”

(sumber : Wikipedia)

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.

Gambar 2. ukuran dinamika dalam velocity not

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.

Pemilihan Instrumen

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.

Misalnya :

  • Pada musik orchestra, instrument yang digunakan : String (biola, cello, contrabass), Brass (terompet, trombone), Woodwinds (Seruling, Oboe), Perkusi (timpani, simbal)
  • Untuk genre musik celtic, digunakan instrument : Biola, Bag and Pipe, Bodhran (semacam tamborin), Seruling
  • Untuk genre musik trance, disko, dubstep digunakan instrument-instrumen Elektrik dan Synthetizer
  • Untuk genre musik ethnic digunakan instrument : gitar akustik, ketipung, gamelan, rebab, seruling, tamborin
  • Untuk musik rock, punk dan metal digunakan instrument : gitar elektrik, drum, bass, keyboard

Gambar 3. (dari atas) gamelan, instrumen celtic, instrumen orchestra, synthetizer elektronik

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.

Spotting Musik

Yang dimaksud spotting musik, adalah peletakan musik itu dalam suatu adegan atau kesempatan.
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.
Peletakan musik yang emosinya pas pada adegan yang benar akan meciptakan harmoni antara adegan dengan musik.

Demikian tulisan dari saya untuk minggu ini. Semoga bisa menjadi wacana untuk membuat musik yang berguna bagi pembaca.

Keep rock all :3

Ittou

Self-taught bedroom musician and music composer from Elventales Studio. Using FL Studio as main DAW and Anvil Studio as secondary workstation. Ittou learns many genre of music, but, his main influence is J-Pop, nuJazz and Ethnic music such as Celtic and Gamelan.

Membuat Game Android Avoider Menggunakan Framework Libgdx – Part #3 Base Entity and Multiple enemies

Part #1 – Introduction
Part #2 – Movement
Part #3 – Base Entity and Multiple Enemies

hehe buat part 3 ini kayanya judulnya panjang banget yah :D
saya bikin jadi satu saja karena sebenarnya masing – masing bagian ga terlalu panjang dan bisa dibahas sekaligus.
so let’s get it done!
Read more …

fugogugo

undergraduate student at UGM, co-founder and Game Programmer at Amagine Interactive.

More Posts

Membuat Game Android Avoider Menggunakan Framework Libgdx – Part #2 Movement

Part #1 – Introduction
Part #2 – Movement
Part #3 – Base Entity and Multiple Enemies

Yow halo semua :D
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 . :D

Menggerakkan Musuh

Bergerak menurut fisika berarti sebuah benda melakukan perpindahan posisi. Di dalam game pun tidak berbeda, yang kita lihat dalam game sebagai Bergerak sebenarnya adalah posisi benda yang kita lihat telah berubah posisinya karena di update. jadi di dalam game Pergerakan adalah perubahan posisi sebuah benda (x,y,z) tiap satuan waktu/per update cycle

Untuk menggerakkan sebuah benda dibutuhkan kecepatan. Kecepatan adalah besarnya perpindahan posisi sebuah benda tiap satuan waktu/per update cycle . Kecepatan adalah berupa vector karena memiliki besar dan arah.

karena itulah kita akan membuat sebuah object bertipe Vector2 bernama vel (singkatan dari velocity)

public final Vector2 vel = new Vector2();

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.

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

    public GameScreen(Avoider avoider) {
        super(avoider);
       //code here....
        vel.set(0, -50);
    }

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

    public void update(float delta) {
    }

kemudian panggil method update tersebut di bagian paling atas method render()

@Override
    public void render(float delta) {
        super.render(delta);
        update(delta);
       .... //more code below
    }

taruh kode untuk menggerakkan musuh di dalam method update tadi.

    public void update(float delta) {
        honeycomb.setPosition(honeycomb.getX() + vel.x * delta, honeycomb.getY() + vel.y * delta);
    }

terlihat sedikit rumit , namun bila dirumuskan akan terlihat lebih mudah :
x = x + Vx * delta
y = y + Vy * delta

note: Vx * delta dan Vy * delta merupakan rumus interpolasi yang digunakan untuk menjaga agar pergerakan tetap terlihat smooth tidak terpengaruh oleh FPS game.

oiya perlu juga diatur posisi awal musuh agar dapat bergerak dari atas sampai ke bawah. tuliskan kode ini di dalam constructor

honeycomb.setPosition(100, 480);

tekan Run dan amati hasilnya!

full code

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("android.png"));
        honeycombTexture = new Texture(Gdx.files.internal("honeycomb.png"));
        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);
 }

Next ,, menggerakkan karakter :)
Click on next page please

fugogugo

undergraduate student at UGM, co-founder and Game Programmer at Amagine Interactive.

More Posts

Composing BGM menggunakan FL Studio

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 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.

Pengenalan User Interface FL Studio

User Interface FL Studio, bisa dibagi – bagi menjadi region atau wilayah – wilayah seperti ini :

Interface FL Studio, secara garis besar dibagi dalam 6 kelompok :

Toolbar :

Panel tempat kita bisa mengakses banyak command dan option untuk mengkonfigurasi FL Studio.

Channel Windows & Step Sequencer :

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.

Piano Roll :

Tempat memasukkan nada instrument

Browser :

Panel ini memberikan akses cepat ke koleksi preset instrument user.

Playlist :

Playlist adalah tempat user menyusun pattern – pattern menjadi sebuah komposisi musik.

Mixer :

Di panel ini, dilakukan tahap penyelesaian sebuah aransemen musik. Masing – masing instrument dirouting ke channel – channel mixer tersendiri, lalu dilakukan proses tweaking yang disebut Mixing dan Pre-Master / Mastering.

Read more …

Ittou

Self-taught bedroom musician and music composer from Elventales Studio. Using FL Studio as main DAW and Anvil Studio as secondary workstation. Ittou learns many genre of music, but, his main influence is J-Pop, nuJazz and Ethnic music such as Celtic and Gamelan.

Vector art easy way by newbie on Adobe Flash Ch. 1

Halo lagi

 

Mohon maaf sebelumnya jika artikel kali ini agak berantakan dikarenakan keterlambatan saya mengerjakan materi :P .

Ok, mari kita ke pokok bahasan kali ini, jika sebelumnya saya membahas mengenai Workflow, timeline yang ada di Teelos, sekarang mungkin saya akan loncat sedikit ke wilayah yang sudah dan masih sampai sekarang saya geluti yaitu vector art by newbie. Kenapa saya sebut begitu?

Hal ini dikarenakan vector art yang saya pergunakan selama ini menggunakan dasar dari penggunaan program adobe flash. Kemudahan dalam penggunan tool line, pencil, serta brushnya menurut saya adalah hal yang mempermudah artis pemula dalam dunia flash game untuk menghasilkan art yang cukup memadai untuk sebuah game menembus pasar diawal sebuah startup. Jika boleh untuk berbagi kali ini saya kan lebih banyak share dengan gambaran dari progress pengerjaan sebuah image jika menggunakan flash.

Read more …

Aditya

Co founder of Teelos, a sick twisted bastard that worked as 2d Artis and also PR.

Website - More Posts

Membuat pesawat menembakkan peluru

Baiklah, pada artikel saya sebelumnya saya sudah menulis tentang bagaimana kita memulai membuat game dengan flashpunk, dan hasil akhirnya adalah sebuah pesawat yang bisa digerakkan dengan keyboard. Sekarang kita akan mengembangkan game itu dengan membuat pesawat mampu menembakkan peluru. Sebelum itu ada sesuatu yang harus saya ajarkan, trigonometri. Tidak, tunggu, tolong jangan tutup artikel ini. Mungkin ada yang bertanya “Buat apa sih belajar trigonometri? Kan kita mau buat game” alasannya sederhana: kalau anda membuat game anda akan sering sekali menjumpai trigonometri. Diantaranya adalah untuk:

  • Memutar sebuah pesawat angkasa, atau kendaraan lain
  • Menentukan jalur lintasan peluru dari pistol / senapan
  • Membuat AI musuh mampu membidik player
  • Menentukan jalur lintasan bola biliar setelah menabrak bola lain

dan masih banyak contoh lainnya. Kalau sewaktu SMA anda pernah bertanya-tanya untuk apa susah payah belajar matematika, sekarang saatnya menggunakan pengetahuan anda tentang subyek satu ini.

Read more …

Aryadi Perwira

Self-proclaimed AS3 blackbelt.

More Posts

Stop SOPA