Senin, 22 April 2013

Pengenalan Game Engine

Pengertian Game Engine 
Game engine (bahasa Indonesia: mesin permainan) adalah sebuah sistem software yang dirancang untuk pembuatan dan pengembangan suatu video game. Ada banyak sekali game engine yang dirancang untuk bekerja pada beberapa konsol video game dan sistem operasi desktop seperti Microsoft Windows, Linux dan Mac OS X. Fungsi utama yang secara khusus disediakan oleh game engine meliputi mesin render (renderer) untuk grafik 2D atau 3D, mesin fisika, deteksi tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen momori, threading, dukungan lokalisasi dan layar grafik. Proses pembuatan game seringkali dihemat oleh sebagian besar developer dengan menggunakan kembali game engine yang sama untuk membuat game yang berbeda.

Tipe-Tipe Game Engine
Tipe dari game engine adalah :
  1. Roll-your-own game engine
  2. Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine-nya sendiri. Mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Di sisi lain, mereka kadang menggunakan library komersil atau yang open source. Terkadang mereka juga membuat semuanya mulai dari nol. Biasanya game engine tipe ini lebih disukai karena selain kemungkinan besar diberikan secara gratis, juga memperbolehkan mereka (para developer) lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Kelemahannya banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya. Tower Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine-nya, hanya untuk ditulis ulang semuanya dalam beberapa hari  sebelum penggunaannya karena adanya bug kecil yang sangat mengganggu.
  3. Mostly-ready game engines
  4. Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/programer. Semuanya termasuk contoh GUI, physiscs, libraries model, texture dan lain-lain. Banyak dari mereka yang sudah benar-benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama. Game engine semacam ini memiliki beberapa batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar-benar terbuka lebar. Hal ini ditujukan agar tidak terjadi banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis dan masih memungkinkan game engine-nya tersebut untuk mengoptimalkan kinerja game-nya. Contoh tipe game engine seperti ini adalah Unreal Engine, Source Engine, id Tech Engine dan sebagainya yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Dengan hal ini dapat menyingkat menghemat waktu dan biaya dari para developer game.
  5. Point-and-click engines
  6. Engine ini merupakan engine yang sangat dibatasi, tapi dibuat dengan sangat user friendly. Anda bahkan bisa mulai membuat game sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget.  Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan dan biasanya hal ini mencakup semuanya, mulai dari grafis hingga tata suara. Tapi bukan berarti game engine jenis ini tidak berguna, bagi developer cerdas dan memiliki kreativitas tinggi, game engine seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman dan merilis game-game mereka secepatnya.
Contoh Game Engine
Berbayar :
  • Alamo
  • A.L.I.V.E
  • BigWorld
  • DXStudio
  • Dunia Engine
  • Euphoria
  • GameStudio
  • Jade Engine
  • Jedi
  • Medusa
  • RPG Maker VX
  • RPG Maker XP
  • RPG Maker 2003
  • RPG Maker 95
  • Vision Engine
  • Visual3d
Freeware :
  • Blender
  • Golden T Game Engine (GTGE)
  • DXFramework
  • Ogre
  • Aleph One
  • Axiom Engine
  • Allegro Library
  • Box2D
  • Build Engine
  • Cube
  • Cube 2
  • DarkPlaces
  • jMonkeyEngine (jME)
  • Panda3D
  • Pipmak Game
  • Unity
referensi : en.wikipedia.org

Peran Game Designer dalam Pengembangan Game

Banyak orang mengira kalau proses pembuatan game hanya melibatkan programmer dan artist saja. Artist bertugas menggambar dan membuat musik yang nantinya akan menjadi bahan dasar programmer dalam membuat game.Penggambaran seperti itu pada dasarnya merupakan generalisasi peran dalam proses pengembangan game. Banyak sekali peran dalam pengembangan game dari proses perencanaan, sampai proses peluncuran game dan maintenance. Dan peran-peran itu tidak selalu berkaitan dengan bidang ilmu desain dan pemrograman saja.
Dalam artikel ini akan disebutkan beberapa peran dalam proses pengembangan game menurut artikel pada Gamecareerguide. Yang perlu diperhatikan, peran-peran yang disebutkan belum mencakup semua peran dalam pengembanan game karena jumlah peran itu banyak sekali.
1. Animator
Jika sesuatu bergerak dalam game, maka “sesuatu” itu harus dianimasikan. Animator bertugas “menggerakkan” benda-benda yang perlu bergerak dalam game. Mereka juga bertanggungjawab pada cut-scene, lip-sync, sprite karakter dan efek-efek visual dalam game.
2. Visual Artist
Jika animator berperan dalam membuat sesuatu yang bergerak, maka visual artist berperan dalam membuat benda-benda yang diam. Dari konsep karakter, tampilan “dunia” dalam game, sampai tampilan antar muka dalam game. Biasanya mereka juga membuat konsep gambar pada pre-produksi ketika membuat proposal untuk dikirim ke penerbit game (atau disebut dengan proses “Pitch”).
3. Audio Composer
Seperti namanya, composer bertugas memberi suara pada game. Suara ini dibagi menjadi dua, yaitu BGM (background music) dan SFX (sound efek). BGM merupakan musik latar pada game dan SFX merupakan suara-suara seperti suara menekan tombol, suara ketika melakukan aksi, dll.
4. Game Designer
Game designer terlibat dalam berbagai macam aspek dalam pengembangan game. Tugasnya antara lain mendesain cerita dalam game, bagaimana pemain mengkontrol karakter dalam game, nama level, judul game, aturan main dalam game, mendesain level, dan lain-lain.
5. Staf Produksi
Staf produksi merupakan pemimpin proyek dalam pengembangan game. Mereka memastikan bahwa game tidak overbudget dan selesai tepat waktu. Mereka aktif berkomunikasi dengan tiap peran yang lain untuk memastikan bahwa pekerjaan mereka tidak ada masalah.
6. Programming
Semua yang ada pada game membutuhkan program agar berfungsi sebagaimana mestinya. Inilah makanan programer sehari-hari. Selain membuat program untuk game, pada proyek game dengan skala menengah ke atas kadang programmer membuat tool untuk membantu artist membuat efek-efek pada game.
7. Quality Assurance
QA betanggung jawab terhadap kualitas produk. Selain menguji game, mereka juga membantu menyeimbangkan tingkat kesulitan pada game, memeriksa tutorial dan antarmuka, juga misalnya jika game tersedia dalam bahasa lain.

Selain peran-peran diatas, banyak peran lain yang belum disebut seperti manajer komunitas, PR, marketing, dan lain-lain. Pada rumah produksi game skala kecil, banyak yang merangkap peran-peran diatas, seperti programmer, desain, dan produksi dijadikan satu, atau artist dan animator dijadikan satu. Cara seperti ini memiliki keuntungan dan kerugian sendiri-sendiri. Keuntunganya adalah tidak ribet, dan membutuhkan lebih sedikit sdm. Kerugianya adalah jumlah pekerjaan yang banyak untuk setiap yang merangkap sering menjadikan hasil produksi game kurang maksimal.
Dalam sebuah proses produksi game, ada yang disebut “crunch”. Crunch ini dilakukan ketika misalnya game mendekati deadline tanggal perilisan dan sentuhan akhir dibutuhkan agar game rilis dengan kualitas terbaik. Saat crunch, staf pengembangan game bekerja lembur, bahkan sampai tidak pulang, untuk mempolish dan memperbaiki bug pada game. Dalam crunch, seringkali pegawai tidak atau diberi sedikit kompensasi atas hasil lemburnya itu. Hal ini banyak yang berpendapat sebagai alasan orang keluar dari industri game. Tapi banyak juga pengembang game yang menikmati proses crunch ini sebagai proses penyempurnaan game buatan mereka.


referensi : http://www.elventales.com

Rabu, 10 April 2013

BIOINFORMATIKA


            Istilah Bioinformatika ini berasal dari bahasa Inggris yaitu bioinformatics, yang artinya ilmu yang mempelajari tentang penerapan teknik komputasional untuk mengelola dan menganalisis informasi biologis. Akan tetapi kalau saya boleh sederhanakan menggunakan kata-kata sendiri, bioinformatika adalah segala bentuk penggunaan komputer dalam menangani masalah-masalah biologi. Dalam prakteknya, definisi yang digunakan oleh kebanyakan orang adalah satu sinonim dari komputasi biologi molekul (penggunaan komputer dalam menandai karakterisasi dari komponen-komponen molekul dari makhluk hidup). Sedangkan menurut Fredj Tekaia dari Institut Pasteur [TEKAIA 2004], Bioinformatika (Klasik) adalah “metode matematika, statistik dan komputasi yang bertujuan untuk menyelesaikan masalah-masalah biologi dengan menggunakan sekuen DNA dan asam amino dan informasi-informasi yang terkait dengannya”.
            Jadi, Bioinformatika ini merupakan ilmu terapan yang lahir dari perkembangan teknologi informasi dibidang molekular. Pembahasan dibidang bioinformatika ini tidak terlepas dari perkembangan biologi molekular modern, salah satunya peningkatan pemahaman manusia dalam bidang genomic yang terdapat dalam molekul DNA.
Kemampuan untuk memahami dan memanipulasi kode genetik DNA ini sangat didukung oleh teknologi informasi melalui perkembangan hardware dan soffware. Baik pihak pabrikan sofware dan harware maupun pihak ketiga dalam produksi perangkat lunak. Salah satu contohnya dapat dilihat pada upaya Celera Genomics, perusahaan bioteknologi Amerika Serikat yang melakukan pembacaan sekuen genom manusia yang secara maksimal memanfaatkan teknologi informasi sehingga bisa melakukan pekerjaannya dalam waktu yang singkat (hanya beberapa tahun).

Sejarah Bioinformatika
Bioinformatika pertamakali dikemukakan pada pertengahan 1980an untuk mengacu kepada penerapan ilmu komputer dalam bidang biologi. Meskipun demikian, penerapan bidang-bidang dalam bioinformatika seperti pembuatan pangkalan data dan pengembangan algoritma untuk analisis sekuens biologi telah dilakukan sejak tahun 1960an.
Kemajuan teknik biologi molekuler dalam mengungkap sekuens biologi protein (sejak awal 1950an) dan asam nukleat (sejak 1960an) mengawali perkembangan pangkalan data dan teknik analisis sekuens biologi. Pangkalan data sekuens protein mulai dikembangkan pada tahun 1960an di Amerika Serikat, sementara pangkalan data sekuens DNA dikembangkan pada akhir 1970an di Amerika Serikat dan Jerman pada Laboratorium Biologi Molekuler Eropa (European Molecular Biology Laboratory).
Penemuan teknik sekuensing DNA yang lebih cepat pada pertengahan 1970an menjadi landasan terjadinya ledakan jumlah sekuens DNA yang dapat diungkapkan pada 1980an dan 1990an. Hal ini menjadi salah satu pembuka jalan bagi proyek-proyek pengungkapan genom, yang meningkatkan kebutuhan akan pengelolaan dan analisis sekuens, dan pada akhirnya menyebabkan lahirnya bioinformatika.
Perkembangan jaringan internet juga mendukung berkembangnya bioinformatika. Pangkalan data bioinformatika yang terhubungkan melalui internet memudahkan ilmuwan dalam mengumpulkan hasil sekuensing ke dalam pangkalan data tersebut serta memperoleh sekuens biologi sebagai bahan analisis. Selain itu, penyebaran program-program aplikasi bioinformatika melalui internet memudahkan ilmuwan dalam mengakses program-program tersebut dan kemudian memudahkan pengembangannya.
 
Contoh-contoh Penggunaan Bioinformatika :
1.         Bioinformatika dalam bidang klinis
Bioinformatika dalam bidang klinis sring juga disebut sebagai informatika klinis (clinical informatics). Aplikasi dari informatika klinis ini berbentuk manajemen data-data klinis dari pasien melalui Electrical Medical Record(EMR) yang dikembangkan oleh Clement J. McDonald dari Indiana University School of Medicine pada tahun 1972. McDonald pertama kali mengaplikasikan EMR pada 33 orang pasien penyakit gula (diabetes). Sekarang EMR telah diaplikasikan pada berbagai macam penyakit seperti data analisa diagnosa laboratorium, hasil konsultasi dan saran, foto rontgen, ukuran detak jantung, dll.
2.      Bioinformatika untuk identifikasi Agent penyakit baru
Bioinformatika juga menyediakan tool yang sangat penting untuk identifikasi agent penyakit yang belum dikenal penyebabnya. Misalnya saja seperti SARS (Severe Acute Respiratory Syndrome) yang dulu pernah berkembang.
3.      Bioinformatika untuk diagnose penyakit baru
Untuk menangani penyakit baru diperlukan diagnosa yang akurat sehingga dapat dibedakan dengan penyakit lain. Diagnosa yang akurat ini sangat diperlukan untuk pemberian obat dan perawatan yang tepat bagi pasien.
Ada beberapa cara untuk mendiagnosa suatu penyakit, antara lain: isolasi agent penyebab penyakit tersebut dan analisa morfologinya, deteksi antibodi yang dihasilkan dari infeksi dengan teknik enzyme-linked immunosorbent assay (ELISA), dan deteksi gen dari agent pembawa penyakit tersebut dengan Polymerase Chain Reaction (PCR).
4.      Bioinformatika untuk penemuan obat
Cara untuk menemukan obat biasanya dilakukan dengan menemukan zat/senyawa yang dapat menekan perkembangbiakan suatu agent penyebab penyakit. Karena perkembangbiakan agent tersebut dipengaruhi oleh banyak faktor, maka faktor-faktor inilah yang dijadikan target. Diantaranya adalah enzim-enzim yang diperlukan untuk perkembangbiakan suatu agent.

Trend Bioinformatika Dunia
Ledakan data/informasi biologi itu yang mendorong lahirnya Bioinformatika. Karena Bioinformatika adalah bidang yang relatif baru, masih banyak kesalahpahaman mengenai definisinya. Komputer sudah lama digunakan untuk menganalisa data biologi, misalnya terhadap data-data kristalografi sinar X dan NMR (Nuclear Magnetic Resonance) dalam melakukan penghitungan transformasi Fourier, dsb. Bidang ini disebut sebagai Biologi Komputasi. Bioinformatika muncul atas desakan kebutuhan untuk mengumpulkan, menyimpan dan menganalisa data-data biologis dari database DNA, RNAmaupun protein tadi. Untuk mewadahinya beberapa jurnal baru bermunculan (misalnya Applied Bioinformatics), atau berubah nama seperti Computer Applications in the Biosciences (CABIOS) menjadi BIOInformatic yang menjadi official journal dari International Society for Computational Biology (ICSB) (nama himpunan tidak ikut berubah). Beberapa topik utama dalam Bioinformatika dijelaskan di bawah ini.
Keberadaan database adalah syarat utama dalam analisa Bioinformatika. Database informasi dasar telah tersedia saat ini. Untuk database DNA yang utama adalah GenBank di AS. Sementara itu bagi protein, databasenya dapat ditemukan di Swiss-Prot (Swiss) untuk sekuen asam aminonya dan di Protein Data Bank (PDB) (AS) untuk struktur 3D-nya. Data yang berada dalam database itu hanya kumpulan/arsip data yang biasanya dikoleksi secara sukarela oleh para peneliti, namun saat ini banyak jurnal atau lembaga pemberi dana penelitian mewajibkan penyimpanan dalam database. Trend yang ada dalam pembuatan database saat ini adalah isinya yang makin spesialis.
Setelah informasi terkumpul dalam database, langkah berikutnya adalah menganalisa data. Pencarian database umumnya berdasar hasil alignment/pensejajaran sekuen, baik sekuen DNA maupun protein. Metode ini digunakan berdasar kenyataan bahwa sekuen DNA/protein bisa berbeda sedikit tetapi memiliki fungsi yang sama. Misalnya protein hemoglobin dari manusia hanya sedikit berbeda dengan yang berasal dari ikan paus. Kegunaan dari pencarian ini adalah ketika mendapatkan suatu sekuen DNA/protein yang belum diketahui fungsinya maka dengan membandingkannya dengan yang ada dalam database bisa diperkirakan fungsi daripadanya. Algoritma untuk pattern recognition seperti Neural Network, Genetic Algorithm dll telah dipakai dengan sukses untuk pencarian database ini. Salah satu perangkat lunak pencari database yang paling berhasil dan bisa dikatakan menjadi standar sekarang adalah BLAST (Basic Local Alignment Search Tool). 

Bioinformatika di Indonesia
Di Indonesia Bioinformatika masih belum dikenal oleh masyarakat luas. Di kalangan peneliti sendiri, mungkin hanya para peneliti biologi molekuler yang sedikit banyak mengikuti perkembangannya karena keharusan menggunakan perangkat-perangkat Bioinformatika untuk analisa data. Sementara itu di kalangan TI masih kurang mendapat perhatian.
            Saat ini mata ajaran bioinformatika maupun mata ajaran dengan muatan bioinformatika sudah diajarkan di beberapa perguruan tinggi di Indonesia. Sekolah Ilmu dan Teknologi Hayati (http://www.sith.itb.ac.id) ITB menawarkan mata kuliah "Pengantar Bioinformatika" untuk program Sarjana dan mata kuliah "Bioinformatika" untuk program Pascasarjana. Fakultas Teknobiologi Universitas Atma Jaya, Jakarta menawarkan mata kuliah "Pengantar Bioinformatika". Mata kuliah "Bioinformatika" diajarkan pada Program Pascasarjana Kimia Fakultas MIPA Universitas Indonesia (UI), Jakarta. Mata kuliah "Proteomik dan Bioinformatika" termasuk dalam kurikulum program S3 bioteknologi Universitas Gadjah Mada (UGM), Yogyakarta. Materi bioinformatika termasuk di dalam silabus beberapa mata kuliah untuk program sarjana maupun pascasarjana biokimia,biologi, dan bioteknologi pada Institut Pertanian Bogor (IPB). Selain itu, riset-riset yang mengarah pada bioinformatika juga telah dilaksanakan oleh mahasiswa program S1 Ilmu Komputer maupun program pascasarjana biologi serta bioteknologi IPB.Dari pengertian Bioinformatika yang telah dijelaskan, kita dapat menemukan banyak terdapat banyak cabang-cabang disiplin ilmu yang terkait dengan Bioinformatika, terutama karena bioinformatika itu sendiri merupakan suatu bidang interdisipliner. Hal tersebut menimbulkan banyak pilihan bagi orang yang ingin mendalami Bioinformatika.

EVOLUSI KOMPUTER

Komponen utama dalam komputer generasi pertama merupakan tiub vakum. Tiub
vakum adalah tiub-tiub elektronik sebesar lampu (light bulbs). Oleh kerana beribu-
ribu tiub vakum diperluakn, ia menjana haba yang banyak, menyebabkan pelbagai
masalah terutamanya dalam pengawalan suhu komputer. Tambahan pula, tiub-tiub
vakum mudah rosak, dan mereka yang menggunakan komputer tersebut tidak tahu
sama ada terdapat kesilapan dalam pengaturcaraan komputer atau kerosakan pada
komputer tersebut apabila komputer yang mereka gunakan "meragam".

Satu masalah dalam penggunaan komputer generasi pertama ini ialah bahasa yang
digunakan merupakan bahasa mesin (machine language), yang menggunakan
rangkaian nombor-nombor. Rangkaian nombor-nombor ini adalah merupakan
arahan-arahan yang diikuti oleh komputer untuk melaksanakan sesuatu tugas.
Disebabkan proses penggunaan nombor untuk menulis aturcara komputer, ini
menyukarkan proses pengaturcaraan komputer tersebut.

Komputer generasi pertama lazimnya digunakan khususnya untuk tujuan saintifik.
Oleh kerana saiznya yang amat besar, ketidaktepatan pemprosesan data dan
harganya yang tinggi, ramai yang menganggap bahawa komputer akan kekal
sebagai suatu alat yang digunakan untuk tujuan yang saintifik sahaja, bukan untuk
kegunaan umum.

Generasi Kedua, 1959 - 1964: Transistor

Transistor telah dicipta oleh tiga saintis di Bell Laboratories, iaitu J. Bardeen, H. W.
Brittain dan W. Shockley. Transistor adalah sebuah alat elektronik yang kecil di
mana fungsinya adalah untuk memindahkan isyarat-isyarat elektrik melalui
perintang. Transistor mempunyai beberapa kelebihan jika dibanding dengan tiub
vakum. Antaranya ialah saiznya yang kecil, penggunaan tenaga yang rendah
berbanding tiub vakum, dan kecekapan transistor yang lebih baik berbanding tiub
vakum.

Bahasa pengaturcaraan yang digunakan oleh komputer generasi keuda ini adalah
bahasa perhimpunan (assembly language). Bahasa perhimpunan menggunakan
singkatan huruf yang dipanggil mnemonik (mnemonics) untuk arahan-arahan
komputer, misalnya MV untuk MOVE, CMP untuk COMPARE, dan sebagainya. Ini
membuatkkan proses pengaturcaraan komputer lebih mudah berbanding dengan
menggunakan bahasa mesin.

Setelah itu, bahasa paras-tinggi (high-level languages) pula diimplimentasikan
dalam proses pengaturcaraan komputer. Contoh-contoh bahasa pengaturcaraan
paras tinggi pada masa itu termasuk FORTRAN (FORmula TRANslator) dan COBOL
(COmmon Business-Oriented Language). Bahasa pengaturcaraan paras tinggi lebih
mudah difahami jika dibandingkan dengan bahasa perhimpunan, kerana ia

menggunakan frasa-frasa Inggeris ntuk melaksanakan arahan-arahan komputer.

Dalam pada itu juga, pak cakera yang pertama dipasarkan, di mana ia
membolehkan pengguna menyimpan data serta memperolehi maklumat yang
terkandung dalam pak cakera tersebut dengan lebih pantas berbanding penggunaan
pita magnetik.

Generasi Ketiga, 1965 - 1970: Integrated Circuit

Intergrated Circuit (lebih dikenali sebagai IC) merupakan satu rangkaian litar
elektronik lengkap dalam satu cip silikon yang kecil. Ia mula digunakan pada tahun
1965. Satu IC mampu menggantikan satu papan litar yang penuh dipasang dengan
transistor-transistor, di mana IC tersebut lebih kecil saiznya daripada transistor
tersebut.

Cip IC mempunyai kelebihan berbanding dengan transistor, antaranya termasuk kos
yang rendah dalam pembuatan cip IC tersebut, penggunaan teraga yang rendah,
kepadatan cip IC tersebut (mengurangkan masa pengaliran elektrik dalam cip
tersebut), dan kecekapan cip IC berbanding transistor.

Generasi Keempat, 1970 - kini: Microprosessor

Microprosessor, atau pemproses mikro, adalah merupakan evolusi daripada cip IC, di
mana ia merupakan rangkaian-rangkaian C di dalam satu cip silikon yang kecil. Oleh
itu, komputer masa kini adalah 100 kali ganda lebih kecil daripada komputer
generasi pertama, dan satu cip pemproses mikro adalah lebih berpotensi dan lebih
hebat daripada sebuah computer ENIAC (komputer komersil pertama). Pemproses
mikro adalah asas bagi pembinaan dan rekabentuk komputer masa kini.