Apa yang akan Anda cari?

Rabu, 17 April 2019

Pengantar Komputasi Modern : Parallel Computing (Komputasi Paralel)

Parallel Computing (Komputasi Paralel)

Komputasi paralel merupakan teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer yang berdiri sendiri dalam satu waktu. Fungsi ini diperlukan jika kapasitas yang diperlukan sangat besar, untuk mengolah data dalam jumlah besar seperti pada industri keuangan, bioinformatika atau proses komputasi yang besar.

Di dalam komputasi paralel memiliki istilah pemrograman paralel yaitu teknik pemrograman komputer yang memungkinkan eksekusi perintah atau operasi secara bersama-sama dalam waktu yang sama (komputasi paralel). Hal tersebut dapat dilakukan baik menggunakan komputer dengan satu atau banyak processor. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi (distributed computing).

Beberapa orang yang dibidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel menggunakan beberapa processor atau komputer. Komputasi paralel tidak menggunakan arsitektur Von Neumann.

Tujuan Komputasi Paralel

Mempersingkat waktu eksekusi program yang menggunakan komputasi serial adalah tujuan utama komputasi paralel. Alasan lain yang membuat suatu program menggunakan komputasi paralel antara lain:
  1. Untuk permasalahan yang besar, terkadang sumber daya komputasi yang ada sekarang belum cukup mampu untuk mendukung penyelesaian terhadap permasalahan tersebut
  2. Adanya sumber daya non-lokal yang dapat digunakan melalui jaringan atau internet
  3. Penghematan biaya pengadaan perangkat keras, dengan menggunakan beberapa mesin yang murah sebagai alternatif penggunaan satu mesin yang bagus tapi mahal, walaupun menggunakan sebanyak n buah processor
  4. Adanya keterbatasan kapasitas memori pada mesin untuk komputasi serial.


Hambatan Komputasi Paralel

Penggunaan komputasi paralel sebagai solusi untuk mempersingkat waktu yang dibutuhkan untuk eksekusi program mempunyai beberapa hambatan. Hambatan-hambatan tersebut antara lain adalah:

Hukum Amdahl: percepatan waktu eksekusi program dengan menggunakan komputasi paralel tidak akan pernah mencapai kesempurnaan karena selalu ada bagian program yang harus dieksekusi secara serial.

Hambatan yang diakibatkan karena beban jaringan: dalam eksekusi program secara paralel, prosesor yang berada di mesin yang berbeda memerlukan pengiriman dan penerimaan data (atau instruksi) melalui jaringan. Untuk program yang dibagi menjadi task-task yang sering membutuhkan sinkronisasi, network latency menjadi masalah utama. Permasalahan ini muncul karena ketika suatu task membutuhkan data dari task yang lain, state ini dikirimkan melalui jaringan di mana kecepatan transfer data kurang dari kecepatan prosesor yang mengeksekusi instruksi task. Hal ini menyebabkan task tersebut harus menunggu sampai data sampai terlebih dahulu, sebelum mengeksekusi instruksi selanjutnya. Jumlah waktu yang dibutuhkan untuk berkomunikasi melalui jaringan antar dua titik adalah jumlah dari startup time, per-hop time, dan per-word transfer time.

Hambatan yang terkait dengan beban waktu untuk inisiasi task, terminasi task, dan sinkronisasi.

Arsitektur Komputasi Paralel

Taksonomi Flynn membagi arsitektur komputer paralel dengan menggunakan sudut pandang instruksi dan data, sehingga terdapat empat jenis arsitektur komputer paralel:

1. SISD (Single Instruction, Single Data): hanya ada satu prosesor dan satu aliran masukan data (memori) sehingga hanya ada satu task yang dapat dieksekusi pada suatu waktu. Arsitektur von Neumann termasuk dalam jenis ini

2. SIMD (Single Instruction, Multiple Data): eksekusi sebuah instruksi akan dilakukan secara bersamaan oleh beberapa prosesor, di mana suatu prosesor dapat menggunakan data yang berbeda dengan prosesor lain. Karakteristik lain dari arsitektur ini adalah alur eksekusi instruksi yang deterministik (state dari instruksi dan data pada suatu waktu dapat dengan mudah diketahui). Arsitektur ini untuk program yang dapat dibagi menjadi task-task yang mempunyai derajat keteraturan yang tinggi, misalnya sistem pengolah grafik

3. MISD (Multiple Instruction, Single Data): berbagai instruksi akan dieksekusi secara bersamaan oleh beberapa prosesor dengan data yang sama. Arsitektur ini kurang populer karena hanya sedikit permasalahan yang membutuhkan solusi dengan menggunakan karakteristik arsitektur ini.

4. MIMD (Multiple Instruction, Multiple Data): berbagai instruksi dapat dieksekusi oleh beberapa prosesor di mana masing-masing prosesor dapat menggunakan data yang berbeda. Eksekusi instruksi pada arsitektur ini dapat dilakukan secara sinkron (pada suatu rentang waktu, jumlah instruksi yang dieksekusi oleh semua prosesor adalah sama) maupun asinkron, deterministik maupun non-deterministik.

Arsitektur Memori pada Komputasi Paralel

Pada umumnya, ada dua buah arsitektur memori pada komputer paralel, yaitu shared memory dan distributed memory

Shared Memory: arsitektur ini menyediakan global addressing sehingga berbagai prosesor mempunyai cara pengaksesan memori yang seragam. Setiap perubahan pada suatu lokasi memori oleh suatu prosesor akan selalu terlihat oleh prosesor lain. Kelebihan dari arsitektur ini antara lain adalah pengaksesan memori yang user friendly dan performansi yang baik dalam penggunaan data bersama antar task. Sedangkan kekurangannya antara lain adalah kurangnya skalabilitas ketika terjadi penambahan prosesor, di mana akan terjadi peningkatan traffic antara prosesor ke shared memory dan antara cache coherent system dengan memori sebenarnya.

Berdasarkan frekuensi akses, ada dua jenis shared memory:
  • Uniform Memory Access (UMA): setiap prosesor memiliki hak pengaksesan yang seragam dengan prosesor lain
  • Non Uniform Memory Access (NUMA): tidak semua prosesor memiliki hak yang sama dalam mengakses memori

Distributed Memory: arsitektur ini mempunyai karakteristik di mana setiap prosesor memiliki memorinya masing-masing, sehingga eksekusi instruksi dapat berjalan secara independen antara satu prosesor dengan yang lain. Processor akan menggunakan jaringan ketika membutuhkan akses ke memori non lokal. Akses ini sepenuhnya menjadi tanggung jawab penulis program. Kelebihan dari arsitektur ini adalah terjaganya skalabilitas ketika terjadi penambahan prosesor. Sedangkan kekurangannya adalah penulis program harus berurusan dengan detail komunikasi data antara prosesor dan memori non lokal.

Referensi: 

Pengantar Komputasi Modern : Cloud Computing (Komputasi Awan)

Cloud Computing (Komputasi Awan)

Komputasi Awan atau yang dikenal dengan Cloud Computing merupakan teknologi komputer dalam memberikan layanan komputasi dengan konsep layanan yang diberikan melalui internet dan plikasi yang dijalankan dalam komputasi awan tidak berada di komputer, melainkan berada di komputer lain yang dihubungkan melalui sambungan internet. Contoh aplikasi yang menggunakan cloud computing diantaranya seperti Email Service, Google drive, OneDrive, Dropbox.

Infrastruktur pada komputasi awan menggunakan teknologi virtualisasi yang dibangun berdasarkan server cluster dan memiliki relasi dengan grid computing dan utility computing yang digunakan dalam rivalitas dengan dedicated server dan collocation.

Server Clustering adalah proses penggunaan lebih dari satu server yang menyediakan redundant interconnections dan user hanya mengetahui ada satu sistem server yang tersedia. Grid Computing merupakan suatu kumpulan sumber daya komputer dari berbagai tempat lokasi untuk mencapai suatu tujuan bersama. Utility Computing adalah konsep komputasi dimana pengguna cukup membayar apa yang dipakai.

5 Karakteristik Sehingga Sebuah Sistem dapat Disebut Cloud Computing, yaitu:

1. Resource Pooling
Sumber daya komputasi seperti storage, CPU, memory, network bandwidth, dan sebagainya yang dikumpulkan oleh penyedia layanan (service provider) untuk memenuhi kebutuhan banyak pelanggan (service consumers) dengan model multi-tenant.

2. Broad Network Access
Tingkat kemampuan layanan dari suatu cloud provider yang tersedia lewat jaringan dan bisa diakses oleh beragam jenis perangkat, seperti smartphone, tablet, laptop, workstation, dan sebagainya.

3. Measured Service
Tersedianya layanan yang mengoptimasi dan memantau layanan yang dipakai secara otomatis. Dengan sistem monitoring ini, pengguna bisa melihat berapa sumber daya komputasi yang telah dipakai, seperti: bandwidth, storage, processing, jumlah pengguna aktif, dan sebagainya sehingga tersedianya layanan monitoring yang dibuat sebagai suatu bentuk transparansi antara cloud provider dan cloud consumer.

4. Rapid Elasticity
Tingkat kemampuan dari layanan cloud provider bisa dipakai oleh cloud consumer secara dynamic berdasarkan kebutuhan pengguna. Cloud consumer dapat menaikkan atau menurunkan kapasitas layanan. Kapasitas layanan yang disediakan ini biasanya bersifat unlimited, dan service consumer bisa dengan leluasa dan mudah memilih kapasitas yang diinginkan setiap waktu.

5. Self Service
Cloud Consumer bisa menyetting secara layanan dengan sendirinya yang ingin dipakai melalui sebuah sistem, tanpa perlu interaksi user atau pengguna dengan pihak cloud provider secara otomatis.

Layanan Cloud Computing

NIST sendiri membagi jenis layanan Cloud Computing menjadi tiga sebagai berikut:

1. Software as a Service (SaaS)
SaaS merupakan suatu jenis layanan dari komputasi awan dimana pelanggan dapat menggunakan software (perangkat lunak) yang telah disediakan oleh cloud provider dan user cukup mengetahui bahwa perangkat lunak dapat berjalan dan digunakan dengan baik.

Contoh dari layanan SaaS ini antara lain adalah:
  • Layanan produktivitas: Office365, GoogleDocs, Adobe Creative Cloud, dan sebagainya.
  • Layanan email: Gmail, YahooMail, LiveMail, dan sebagainya.
  • Layanan social network: Facebook, Twitter, Tagged, dan sebagainya.
  • Layanan instant messaging: YahooMessenger, Skype, GTalk, dan sebagainya.

Kelebihan dari SaaS ini adalah pengguan atau user tidak perlu membeli lisensi software kembali, hanya perlu berlangganan ke cloud provider dan membayar berdasarkan pemakaian.

2. Platform as a Service (PaaS)
PaaS adalah layanan dari Cloud Computing pengguna dapat menyewa “rumah” beserta lingkungannya untuk menjalankan aplikasi yang telah dibuat dan user tidak perlu pusing untuk menyiapkan “rumah” dan memelihara “rumah” tersebut. User hanya perlu memastikan aplikasi yang dibuat dapat berjalan dengan baik, sehingga pemeliharaan “rumah” ini (sistem operasi, network, database engine, framework aplikasi, dll) menjadi tanggungjawab dari penyedia layanan.

Kelebihan dari PaaS bagi pengembang dapat fokus pada aplikasi yang sedang dikembangkan tanpa harus memikirkan “rumah” untuk aplikasi, dikarenakan ahl tersebut sudah menjadi tanggung jawab cloud provider.

3. Infrastructure as a Service (IaaS)
IaaS adalah layanan dari Cloud Computing sewaktu kita bisa “menyewa” infrastruktur IT (unit komputasi, storage, memory, network, dsb). Dapat didefinisikan berapa besar unit komputasi (CPU), penyimpanan data (storage), memory (RAM), bandwidth, dan konfigurasi lainnya yang akan disewa. Untuk lebih mudahnya, layanan IaaS ini adalah seperti menyewa komputer yang masih kosong. Kita sendiri yang mengkonfigurasi komputer ini untuk digunakan sesuai dengan kebutuhan kita dan bisa kita install sistem operasi dan aplikasi apapun diatasnya.


Contoh penyedia layanan IaaS: Amazon EC2, Rackspace Cloud, Windows Azure, dsb. Keuntungan dari IaaS ini adalah kita tidak perlu membeli komputer fisik, dan konfigurasi komputer virtual tersebut dapat diubah (scale up/scale down) dengan mudah. Sebagai contoh, saat komputer virtual tersebut sudah kelebihan beban, kita bisa tambahkan CPU, RAM, Storage, dan sebagainya dengan segera.

Referensi:

Selasa, 19 Maret 2019

Pengantar Komputasi Modern : Big Data

Algoritma Big Data

Salah satu algoritma yang digunakan pada Big Data yaitu algoritma K-Means. Algoritma K-Means memiliki cara bekerja dengan cara clustering. Clustering adalah mengelompokkan data menjadi beberapa kelompok dan membentuk cluster. Clustering atau unsupervised learning artinya pengelompokan data tanpa campur tangan user atau programmer. Setiap data yang masuk akan dikelompokkan sesuai dengan kecocokan dengan data-data yang telah masuk sebelumnya. Tanpa campur tangan berarti dilakukannya proses pendefinisian oleh programmer, lalu dijalankan tanpa pengawasan penuh programmer. Algoritma K-Means mendefinisikan fitur yang nantinya dijadikan pedoman untuk mengelompokan data. Algoritma ini mengelompokan data secara otomatis, tidak seperti classification yang masih manual. Algoritma K-Means akan mengelompokkan data berdasarkan kemiripan dari fitur-nya. Ciri khas dari algoritma K-Means yaitu mendefinisikan diawal berapa jumlah cluster yang akan didapatkan, berapa jumlah iterasi untuk algoritma ini dan pendefinisikan fitur-fiturnya.

Prinsip Umum Dari Algoritma K-Means Clustering
  1. Memilih data secara random dengan jumlah sama dengan jumlah cluster yang diinginkan.
  2. Mengelompokan sisa data (dataset dikurangi dari data yang sebelumnya diambil secara random) berdasarkan kedekatannya dengan data yang telah dipilih secara random sebelumnya. Tujuan langkah ini yaitu semua data terbagi menjadi kelompok atau cluster sesuai dengan jumlah cluster yang diinginkan.
  3. Mencari rata-rata dari seluruh data anggota cluster tersebut disetiap cluster. Hasil rata-rata ini selanjutnya akan menjadi pusat cluster berikutnya menggantikan sebelumnya. Hasilnya nanti, ada cluster yang pusatnya berubah dan ada pula yang tidak. Biasanya pada saat iterasi awal, cluster akan berubah pusatnya.
  4. Muncul pusat cluster yang baru, kemudian kelompokkan lagi semua data yang dimiliki berdasarkan pusat cluster yang baru. Sama seperti pada langkah kedua.
  5. Mengulangi langkah 3 dan langkah 4 sampai sejumlah iterasi yang sebelumnya telah didefinisikan.
  6. Setelah iterasi berakhir, nantinya akan didapatkan cluster yang mewakili kelompok dari semua data yang dimiliki.


Studi Kasus Big Data
  1. Perusahaan keuangan dapat menggunakan big data untuk menganalisa dan mengidentifikasi untuk mencegah terjadinya fraud pada untuk mengurangi resiko kerugian.
  2. Pemerintah dapat menggunakan big data untuk menangkal dan mencegah serangan cyber dunia maya.
  3. Industri kesehatan dapat memanfaatkan analisis big data untuk pengelolaan sumber daya rumah sakit untuk pelayanan kepada pasien yang lebih baik.
  4. Perusahaan telekomunikasi dapat memanfaatkan analisis big data untuk mendapatkan jaringan komunikasi yang lebih optimal dan mencegah terjadinya kecurangan pada pelanggan.
  5. Marketing dapat menggunakan big data untuk menganalisa tingkat kepuasan konsumen terhadap produk yang dijualnya.
  6. Perusahaan asuransi dapat memanfaatkan analisis big data untuk memilah kategori pengajuan asuransi dan memvalidasi klaim asuransi untuk menghindari penipuan.
  7. Perusahaan ritel dapat memanfaatkan media sosial yang telah terintegrasi dengan big data dan nantinya diproses lagi menjadi data untuk mengetahui persepsi pelanggan, perilaku pelanggan dan tingkat kepuasan pelanggan.


Referensi:
http://ilhammaulanasuryani.blogspot.com/2016/11/implementasi-big-data.html

Pengantar Komputasi Modern : Komputasi Modern

Perkembangan Komputasi Modern

Komputasi Modern diprakarsai oleh John Von Neumann, seorang ilmuwan yang menemukan konsep automata dan komputasi modern yang pada akhirnya menjadi sebuah komputer. Von Neumann mendapatkan gelar diploma di bidang teknik kimia pada tahun 1926 sekaligus mendapatkan gelar doktor di bidang matematika dari Universitas Budapest. Von Neumann sangat tertarik pada bidang matematika, sejak kecil ia mampu melakukan pembagian bilangan delapan digit angka dalam pikirannya. Kemudian Von Neumann bekerja di Universitas Princeton pada tahun 1930, serta menjadi salah satu pendiri Institute for Advanced Studies. Pada akhirnya ia tertarik pada hidrodinamika dan sulitnya menyelesaikan persamaan diferensial parsial nonlinier yang digunakan, pada akhirnya Von Neumann pindah ke dalam bidang komputasi. Berperan sebagai konsultan pengembangan ENIAC, merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann yaitu konsep sebuah komputer dengan program yang tersimpan, dengan kontrol pusat, I/O, dan adanya memori. Komputasi modern dapat dikatakan sebagai suatu pemecahan masalah berdasarkan nilai input yang diproses menggunakan algoritma dan pada penerapannya menggunakan berbagai teknologi yang telah berkembang seperti komputer.

Implementasi Komputasi Modern

Pada bidang Matematika
Adanya Numerical Analysis, algoritma yang digunakan untuk menyelesaikan permasalahan matematika. Implementasi teknik-teknik komputasi matematika seperti metode numerik, scientific computing.

Pada bidang Fisika
Adanya Computational Physics yang digunakan untuk mempelajari algoritma numerik dan memecahkan teori kuantitatif fisika. Seperti permasalahan medan magnet dengan menggunakan komputasi fisika.

Pada bidang Kimia
Computational Chemistry untuk mneyelesaikan permasalahan bidang kimia. Seperti yang digunakan untuk menghitung struktur dan sifat molekul menggunakan super komputer.

Pada bidang Geografi
Diterapkannya GIS (Geographic Information System) yang berfungsi untuk menyimpan, memanipulasi dan menganalisa informasi geografi.

Pada bidang Geologi
Pada pekerjaan pertambangan, komputasi modern digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah.

Pada bidang Ekonomi
Adanya Computational Economics yang menjadi jembatan antara bidang komputer dan bidang ekonomi untuk melakukan komputasi keuangan, statistika, pemrograman yang di desain khusus untuk komputasi keuangan.

Pada bidang Sosiologi
Adanya Computational Sociology untuk menganalisa permasalahan sosial di masyarakat.

Pada bidang Biologi
Adanya Bioinformatics untuk penelitian bidang biologi molekuler. Dan adanya peralatan medis yang menggunakan komputasi modern untuk membantu para dokter dalam menangani pasien.

Pada bidang Industri

Komputer digunakan mengontrol mesin-mesin produksi dengan ketepatan tinggi, seperti CNC (Computer Numerical Control) pengawasan numerik atau perhitungan, CAM (Computer Aided Manufacture), CAD (Computer Aided Design), yaitu untuk membuat desain produk manufaktur.

Referensi:

Selasa, 17 April 2018

Penjelasan Sub-Bab Softskill Mata Kuliah Pengantar Teknologi Game



BAB I

Pendahuluan:Teknologi Game, Bisnis dalam Game Komputer 3D Engine dan Scene Graph (Ogre3D, Processing, GameMaker, Unity3D, dll)

Teknologi game terdiri dari dua kata, yaitu Teknologi dan Game. Teknologi adalah keseluruhan fasilitas untuk menyediakan sesuatu yang dibutuhkan bagi kelangsungan dan kenyamanan hidup manusia. Secara umum teknologi dapat didefinisikan sebagai entitas, benda maupun bukan benda yang diciptakan secara terpadu melalui perbuatan dan pemikiran untuk mencapai suatu tujuan.

Sedangkan Game adalah permainan yang menggunakan interaksi antarmuka  pengguna melalui gambar yang dihasilkan oleh piranti video.
  • Teknologi Game Generasi Pertama (1952-1975)
Teknologi Game pertama kali diciptakan oleh A.S. Douglas tahun 1952 di University of Cambridge yaitu OXO untuk mendemonstrasikan tesisnya mengenai interaksi antara komputer dan manusia. Kemudian Douglas berkreasi lagi dengan menciptakan game versi Tic-Tac-Toe yang diprogram pada komputer EDSAC vaccum-tube yang memiliki layar CRT (Cathode Ray Tube).

Kemudian William Higinbotham menciptakan game Tennis for Two pada tahun 1958 yang dimainkan di osiloskop. Game sederhana yang menampilkan lapangan tennis dari samping ini memperlihatkan seolah bola dipengaruhi oleh gravitasi dan harus melewati net.

Pada tahun 1961 dimana komputer merupakan barang yang bisa dikatakan sangat mewah, Steve Russel membuat game bernama Spacewar karena ketertarikannya dengan kisah fiksi ilmiah karangan Edward E Smith yang berjudul Skylark. Memanfaatkan pekerjaannya yang menggunakan komputer mainframe MIT PDP-1 yang biasa dipakai untuk perhitungan statistik, Steve membuat Spacewar.

Video game mengalami awal perkembangan pada tahun 1996 oleh mahasiswa-mahasiswa pada tahun itu memanfaatkan fasilitas teknologi yang ada di kampusnya untuk menyalurkan kreatifitas. Kemudian menjadi lebih berkembang lagi ketika untuk pertama kalinya dirilis perngkat video game pada tahun 1972 untuk pasar rumahan Magnavox Odyssey yang dihubungkan dengan televisi.

Tetapi pada tahun 1975 produsen magnavox berhenti memproduksi odyssey karena berhasil mengenalkan mikroprosesor berbasis konsol. Sebagai gantinya, Magnavox memproduksi Odyssey 100, yaitu mesin yang khusus menyajikan game Pong.
  • Teknologi Game Generasi Kedua (1976-1983)
Di Teknologi Game generasi kedua ini biasa disebut sebagai debut pertama 8 bit atau kurang lebih 4 bit dalam sejarah komputer dan video game. Pada tahun 1976, dunia game dihidupkan kembali oleh Fairchild dengan karyanya yaitu VES (Video Entertainment System).

Di generasi kedua ini menjadi primadona konsol game yang diantaranya adalah Fairchild Channel F, Magnavox Odyssey versi 2, Attari 2600, dan Attari 5200.

Pada tahun 1980, berbagai produsen konsol muncul dan menjadikan Atari 2600 sebagai konsep dasar. Sehingga perkembangan dunia game menjadi semakin pesat. Generasi kedua ini juga ditandai dengan game Arcade 3D pertama keluaran Atari yaitu Battlezone, Pac-Man keluaran Namco, Game & Watch seri video game-handheld keluaran Nintendo, dan juga APF yang mengeluarkan Imagination Machine yang merupakan add-on komputer untuk video game rumahan APF MP-100.

Tetapi pada tahun 1983 eksistensi dunia game mulai menurun karena kurang kreatifnya para pencipta game. Terlebih lagi perkembangan PC semakin canggih, sehingga orang-orang lebih tertarik membeli PC daripada membeli konsol video game.
  • Teknologi Game Generasi Ketiga (1983-1986)
Konsol bernama Famicon/Nintendo Entertainment System (NES) yang dirilis di akhir tahun 1983 menjadi gebrakan baru yang diciptakan oleh perusahaan bernama FAMICOM di Jepang. Konsol yang diciptakan FAMICOM ini merupakan konsol yang pertama kali menampilkan gambar dan animasi resolusi tinggi.

FAMICOM atau yang lebih dikenal dengan Nintendo ini memiliki chip pengaman pada cartridge game mereka, sehingga seluruh game yang akan dirilis harus dengan seizin Nintendo. Kemudian muncul game legendaris yang sampai saat ini masih memiliki banyak peminat, yaitu Super Mario. 

Karena munculnya super mario yang dengan cepat booming, banyak perusahaan sofware maupun hardware yang menghentikan produksinya. Bahkan Nintendo memperluas pemasarannya ke Amerika. Di era ini produksi Nintendo mendominasi di Amerika dan merajai pasar video game, sehingga terjadi perang konsol game antara perusahaan konsol game Nintendo dengan SEGA.
  • Teknologi Game Generasi Keempat (1988-1993)
Teknologi Game generasi empat ini disebut dengan generasi 16 bit yang membawa perubahan pada gameplay, tata suara, grafik. Pada tahun 1988, Nintendo mendapatkan sambutan hangat oleh dunia. SEGA yang menyaingi Nintendo, merilis generasi konsol selanjutnya yaitu Sega Mega Drive.

Hal tersebut membuat persaingan antara SEGA dan Nintendo semakin ketat. Meskipun konsol dari SEGA ini memiliki gambar yang lebih tajam dan animasinya lebih halus dibandingkan Nintendo, tetapi tetap saja Nintendo berada di titik penjualan tertinggi.

Nintendo kembali mengeluarkan konsol generasi baru mereka pada tahun 1990, yaitu SNES (Super Nintendo Entertainment System). Meskipun ada beberapa saingan produsen konsol seperti NEC dan SNK, tetapi kedua konsol Nintendo tetap menduduki konsol terpopuler.

Pada tahun 1990 pula SEGA mengeluarkan Sega Megadrive yang menyita perhatian para pencinta game, terutama Amerika. Kemudian SEGA melanjutkan produksi di tahun 1991 dengan game Sonic the Hedgehognya. Game tersebut juga membuat para pencinta game kareka kualitasnya yang jauh lebih baik daripada Super Mario ciptaan Nintendo.
  • Teknologi Game Generasi Kelima (1994-1999)
Pada tahun 1994, Atari kembali meluncurkan konsol untuk menyaingi konsol dari SEGA dan Nintendo. Atari Jaguar menyaingi kecanggihan SNES dan Mega Drive, tetapi penggunaannya yang sulit membuat tertarik pencinta game. Terlebih lagi pada saat itu Sony mengeluarkan konsol berbasis CD yang super legendaris.
D
i Teknologi Game generasi lima inilah muncul konsol game yang bernama playstation yang diluncurkan oleh Sony. Generasi ini juga bisa disebut dengan era konsol 32 bit. Konsol berbasis CD keluaran Sony menuai sukses untuk keluaran pertamanya yang kemudian menjadi konsol terlaris sepanjang masa. Karena merasa tersaingi, Nintendo meluncurkan Nintendo 64 dan SEGA merilis .
  • Teknologi Game Generasi Keenam (2000-Sekarang)
Teknologi Game generasi enam ini masih dikuasai oleh Sony. Pada tahun 2000, Sony semakin merajalela dengan merilis Playstation 2 yang berbasis DVD yang ukurannya lebih kecil. Xbox yang merupakan keluaran Microsoft adalah satu-satunya saingan Playstation.

Meskipun tampilan Xbox sangat tajam dan berkualitas, tapi ternyata game Xbox tidak bisa mengalahkan populernya Playstation 2. Sampai saat ini sony sudah meluncurkan Playstation versi 3, dan disusul versi ke 4.

Itulah sekilas tentang Sejarah dan Perkembangan Teknologi Game yang dapat penulis sajikan. Semoga bermanfaat bagi pembaca, terutama pencinta game.

3D Engine dan Scene Graph

Di dalam grafika komputer, 3D merupakan bentuk grafik yang menggunakan representasi data geometri tiga dimensi. Grafik 3D ini tersimpan didalam komputer untuk keperluan kalkulasi atau rendering gambar 3D. Pada 3D, engine bukanlah exutable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri.

3D engine adalah sistem perangkat lunak yang dibuat dan dirancang untuk menciptakan dan mengembangkan gambar 3D, fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render (renderer) untuk 2D/3D grafis.

Berbeda dengan dukungan grafik 2D yang sudah built in, dukungan Java terhadap grafik 3D diletakkan ke dalam API terpisah, yakni Java3D. Java3D merupakan API 3D berbasis scene graph di platform Java, dimana scene graph merupakan sebuah pohon yang berisi hierarki data scene. Di dalam api Java3D didefinisikan sejumlah kelas dan interface yang menyediakan beragam operasi grafik 3D.

Konsep scene graph merupakan inti dari Java3D. Sebuah scene graph merupakan g rafik yang mempresentasikan geometri, material, dan pencahayaan. Scene graph dimulai dari root dengan sebuah Virtual Universe dan mencakup transformasi serta geometri untuk mendefinisikan objek di dunia maya. Secara garis besar, ada tiga tahap fundamental yang diperlukan untuk menghasilkan objek 3D, yaitu:
  1. Menciptakan objek Canvas3D
  2. Menciptakan sebuah scene graph
  3. Menghubungkan objek Canvas3D ke objek BranchGroup yang menunjuk root dari scene graph
  • Ogre 3D
Objected-Oriented Graphics Rendering Engine atau bisa disingkat dengan OGRE merupakan engine yang object oriented & flexible 3D rendering pada game engine yang ditulis dengan menggunakan bahasa C++ serta didesain agar mampu men-developer dengan mudah kepada aplikasi produksi dengan menggunakan utility hardware-accelerated 3D graphic. Gambaran abstraknya OGRE menggunakan sistem library seperti Direct3D & OpenGL, serta menyediakan sebuah dasar interface di dunia objek dan class objek yang lebih tinggi.

OGRE hanya digunakan untuk me-render. Dengan kata lain, fitur OGRE hanya khusus menangani vector & matOix classes, memory handling, dan lain lain. Ini bukan lah salah satu dari semua solusi dalam istilah game development/simulasi. OGRE tidak menyediakan audio/physics support.

Walaupun penjelasan diatas bisa dikatakan sebagai kelemahan dari OGRE itu sendiri, akan tetapi semua itu sebanding dengan kemampuan grafis yang ada pada game engine tersebut. Kelebihan yang paling menonjol pada OGRE adalah graphics engine yang bisa memberikan para developer sebuah kebebasan untuk menggunakan physics apapun, input, audio, & library lainnya. OGRE memberikan para tim development untuk fokus pada graphics daripada beberapa sistem-sistem yang ada dalam game development. OGRE dapat mendupport OIS, SDL, CEGUI libraries. Sekarang ini OGRE adalah publish dibawah dua lisensi, yaitu LGPL & OUL. Maka sekarang ini para publish tersebut membuka OGRE sebagai free/open source software.

Fitur-fitur pada OGRE:
  1. Desain yang object-oriented dengan menggunakan plugin untuk mempermudah memasukkan fitur lainnya
  2. Engine berbasis scane graph dengan bantuan untuk sebuah varietas yang luas, octree, BSP, & paging landscape scene manager
  3. Multi-platform dengan dukungan OpenGL & Direct 3D. Bisa me-render konten yang sama di beda platform tanpa harus mempunyai content creator. dapat diakses pada platform Linux, Mac OS, dan semua versi Windows
  4. OGRE mendukung program vertex dan fragment selama ditulis dengan GLSH, HLSL, Cg, dan assembler
  5. The landscape scene manager untuk progressive LOD, yang mana bisa dibuat secara otomatis dan manual
  6. Engine annimasi yang men-support penuh untuk multiple hardware
  • Processing
Processing adalah bahasa pemrograman dan lingkungan pemrograman yang bersifat open source yang digunakan untuk memprogram gambar, animasi, dan interaksi. Processing digunakan untuk mengajarkan dasar-dasar pemrograman komputer dalam konteks rupa dan berfungsi sebagai buku sketsa perangkat lunak dan alat produksi profesional. Processing mengintegrasikan suatu bahasa pemrograman, lingkungan pemrograman, dan metodologi pengajaran ke dalam sistem terpadu.

Processing merupakan suatu projek yang dinisiasi oleh Ben fry dan casey reas. Berkembang dari ide-ide yang dieksplorasi di Aesthetics and Computation Group (ACG) di Mit Media Lab. Projek ini kini terus diperbaiki dan dikelola oleh sejumlah Tim Voluntir.
  • Game Maker
Game Maker adalah software yang bisa membantu anda menjadi pengembang game komputer tanpa menggunakan coding sedikitpun. Dapat digunakan untuk membuat 3 dimensi dan Multiplayer. Game Maker dapat menjadikan hak penuh dari software (game) yang anda buat termasuk dapat menjual game tersebut, bahkan bisa mendownload musik, efek suara, gambar, script, serta background.
  • Unity 3D
Unity 3D adalah sebuah game developing software. Dengan software ini, kita bisa membuat game 3D yang seru. Game developer ini sangat mudah digunakan, dengan GUI yang memudahkan kita untuk membuat derta mengedit script untuk menciptakan sebuah game 3D. Selain bisa untuk build game PC, Unity juga dapat digunakan untuk membangun game console seperti Nintendo Wii, PS3, Xbox 360, juga Ipad, Iphone, dan Android. Namun masing-masing membutuhkan biaya lisensinya sendiri. Unity kurang lebih sama dengan Blender game engine, namun unity lebih ringan dan diintegrasi lebih dalam suasana grafik.

Kelebihan Unity terdapat pada multiple platform, artinya banyak platform yang disupport oleh unity, seperti Windows, Mac, iPhone, iPad, Android, Nintendo Wii, dan juga browser. Untuk browser, kita memerlukan sebuah plug-in, yaitu Unity Web player, sama halnya dengan Flash Player pada browser. Pada unity, kita tidak bisa melakukan desain/modelling dikarenakan unity bukan tool untuk mendesain. Jadi jika kita ingin mendesain, dibutuhkan 3D editor lain seperti 3Dsmax atau Blender, kemudian kita export menjadi format .fbx.

BAB II

Disain Skenario, Script , dan Storyboard Game Komputer

Desain Skenario

Skenario adalah urutan cerita yang disusun oleh seseorang agar suatu peristiwa terjadi sesuai dengan yang diinginkan. Kalau dasar untuk pembuatan film adalah skenario, maka dasar untuk membuat game adalah design document atau lebih mudahnya disebut skenario game. Skenario game adalah langkah awal dalam membuat sebuah game, dengan skenario game dapat mempermudah kita menyelesaikan game yang akan dibuat. Skenario game adalah sebuah cerita khusus yang melatarbelakangi kejadian-kejadian dalam game. Kalau skenario menentukan interior dan eksterior, dekor, pemain, dan studio, serta pembuatan trik, dalam desain dokumen ada ketentuan program game, grafik, tokoh, animasi, suara, dan musik. Sampai di sini keduanya masih paralel. Berbeda dengan skenario yang merupakan sekuens linier dari adegan, turn around point, dialog, dan seterusnya; design documents adalah gabungan dokumen yang mendiskripsikan secara kompleks semua segi game yang direncanakan.

Ditambah lagi, berbeda dengan skenario, tidak bisa secara pasti ditentukan, dokumen apa saja yang akan ditemukan dalam design documents, karena itu tergantung pada gaya game yang akan dibuat. Hampir sama seperti pembuatan film dimana penulis skenario pertama-tama menulis tema, kalau ada produser yang berminat, penulis skenario membuat sinopsis, dan setelah mendapat persetujuan produser, baru skenario dibuat, begitu juga prosesnya dalam merencanakan suatu judul game komputer. Temanya dibuat dulu, kemudian konsep dan akhirnya design documents disusun. Gambaran seperti ini adalah kondisi yang ideal, tidak semua pengembang melalui proses ini, walaupun hal itu patut disayangkan.

Konsep seharusnya berguna untuk memberikan gambaran garis besar tentang cerita, prinsip-prinsip mekanisme game, dan titik berat untuk gameplay. Karena itu konsep mencakup prinsip-prinsip dasar, gaya game, kerangka peraturan, sinopsis cerita (jika ada cerita), karakteristik game, contoh misi, atau situasi-situasi dalam game dan bisa juga diferensiasi perangkat pengguna atau ada efek-efek khusus serta akhirnya unsur-unsur spesifik yang menjadi andalan pencipta. Dalam penutup sinopsis seharusnya dicantumkan daftar unsur yang unik dan orisinil serta faktor-faktor yang bisa dijadikan daya jual tinggi bagi judul tersebut. Konsepnya biasanya ditulis setebal 5-10 halaman. Kalau konsep sudah diterima, artinya sudah disetujui produser, dinilai positif oleh tim dan sebagainya, desainer game mulai menulis dengan documents.

Dokumen ini tidak baku, selama pengembangan bisa dimodifikasi atau diperbarui. Itu tidak berarti bahwa design document tidak perlu dibuat lengkap dan serius. Seperti dalam kalimat pembuka, semuanya perlu dipertimbangkan dan direncanakan dengan teliti, kalau tidak, pekerjaan tim bisa mengalami banyak masalah. Apasaja yang tidak direncanakan dengan baik akan menyebabkan kerugian waktu dan biaya dalam pelaksanaan proyek. Tentu saja tidak segalanya bisa direncanakan sebelumnya, tetapi menurut teori 80/20, sekitar 80% pekerjaan bisa berjalan sesuai rencana.

Tidak ada patokan umum apa saja yang harus menjadi bagian design documents, karena ada banyak perbedaan tergantung proyeknya. Tetapi dalam satu hal semua dokumen sama, harus mendeskripsikan game secara kompleks maupun mendetail. Setelah membaca design document, anda seharusnya memiliki gambaran lengkap tentang produk akhir. Salah satu dokumen biasanya menjelaskan mekanisme game. Sebagai bagiannya, misalkan untuk RPG dan strategi, adalah peraturan yang menentukan dan mendeskripsi tipe objek dalam game berikut karakteristik serta hubungan interaktifnya.

Bagian lain membahas penerapan hukum fisika dalam dunia game dalam arti luas, misalkan kekuatan alam yang dapat diterapkan dan bagaimana reaksi objek-objek dalam game. Ada deskripsi lokasi secara lisan maupun dalam sketsa, skenario cerita, bisa disebutkan diferensiasi perangkat pengguna. Dan sebaiknya ada daftar monster (untuk RPG fantasi) atau daftar pasukan (untuk strategi). Singkatnya, dalam struktur dokumen-dokumen ini seharusnya terdapat seluruh materi yang mencakup seluruh aspek game. Baru berdasarkan design documents yang lengkap bisa ditulis spesifikasi untuk rancangan engine atau modifikasi engine yang sudah ada, dan rencana produksi. Bagian akhir dari design documents adalah catatan-catatan desainer game, di mana dicantumkan misalnya ide-ide susulan atau perubahan yang dilakukan berdasarkan hasil tes, dan seterusnya.

Script

Dalam pemrograman komputer, naskah adalah sebuah program atau urutan instruksi yang ditafsirkan atau dilakukan dengan program lain daripada oleh komputer prossesor. Skrip (script) adalah semacam bahasa pemrograman dalam tingkat kesulitan yang lebih rendah, tanpa aplikasi hasil kompilasi interpreter; skrip biasanya disisipkan ke dalam bahasa pemrograman yang lebih kompleks dan hasil skrip digunakan oleh bahasa pemrograman yang lebih kompleks itu.

Contohnya ialah penyisipan skrip assembly ke dalam program Pascal untuk mengakses hardware pada level bahasa tingkat rendah. Skrip merupakan kumpulan sintaks bahasa pemrograman yang siap untuk di-compile. Untuk mengetahui tentang script, disini ada sedikit rangkuman tentang script :
  • Script adalah bahasa yang digunakan untuk menerjemahkan setiap perintah dalam situs yang pada saat di akses.
  • Jenis script sangat menentukan statis, dinamis, atau interaktifnya sebuah situs
  • Semakin banyak script yang digunakan maka akan terlihat semakin dinamis, dan interaktif serta terlihat lebih bagus.
  • Bahasa dasar yang di pakai setiap situs adalah HTM
  • Macam-macam script, PHP, ASP, JSP, Java Script, Java Applets, VBScript.
Storyboard

Storyboard adalah visualisasi ide dari aplikasi yang akan dibangun, sehingga dapat memberikan gambaran dari aplikasi yang akan dihasilkan. Storyboard dapat dikatakan juga visual script yang akan dijadikan outline dari sebuah proyek, ditampilkan shot by shot yang biasa disebut dengan istilah scene.

Storyboard sekarang lebih banyak digunakan untuk membuat kerangka pembuatan websites dan proyek media interaktif lainnya seperti iklan, film pendek, games, media pembelajaran interaktif ketika dalam tahap perancangan /desain.

Baru-baru ini istilah “Storyboard” telah digunakan dibidang pengembangan web, pengembangan perangkat lunak dan perancangan instruksi untuk mempresentasikan dan menjelaskan kejadian interaktif seperti suara dan gerakan biasanya pada antarmuka pengguna, halaman elektronik dan layar presentasi. Sebuah Storyboard media interaktif dapat digunakan dalam antarmuka grafik pengguna untuk rancangan rencana desain sebuah website atau proyek interaktif sebagaimana alat visual untuk perencanaan isi.

Sebaliknya, sebuah site map (peta) atau flow chart (diagram alur) dapat lebih bagus digunakan untuk merencanakan arsitektur informasi, navigasi, links, organisasi dan pengalaman pengguna, terutama urutan kejadian yang susah diramalkan atau pertukaran audiovisual kejadian menjadi kepentingan desain yang belum menyeluruh.

Salah satu keuntungan menggunakan Storyboard adalah dapat membuat pengguna untuk mengalami perubahan dalam alur cerita untuk memicu reaksi atau ketertarikan yang lebih dalam. Kilas balik, secara cepat menjadi hasil dari pengaturan Storyboard secara kronologis untuk membangun rasa penasaran dan ketertarikan.

Seorang pembuat Storyboard harus mampu menceritakan sebuah cerita yang bagus. Untuk mencapainya, mereka harus mengetahui berbagai film, dengan pengertian tampilan yang bagus, komposisi, gambaran berurut dan editing. Mereka harus mampu untuk bekerja secara sendiri atau dalam sebuah bagian tiam. Mereka harus mampu menerima arahan dan juga bersiap membuat perubahan terhadap hasil kerja mereka.

Untuk proyek tertentu, pembuat Storyboard memerlukan ketrampilan menggambar yang bagus dan kemampuan beradaptasi terhadap gaya yang bermacam. Mereka harus mampu untuk mengikuti desain yang telah dikeluarkan dan menghasilkan kerja konsisten, yang digambar pada model.

Storyboard Pada Game

Storyboard pada Game sedikit berbeda dari storyboard animasi, dimana pada storyboard game terdapat goal / mission yang akan dibuat pada game itu sendiri. Kemudian storyboard pada game menjelakaskan tentang alur permaianan itu sendiri seperti apa tergantung dari jenis game.  misalkan game ber-genre arcade tidak memiliki alur cerita namun game terebut menitik beratkan pada perolehan point. Jadi storyboard yang dibuat yaitu bagaimana pemain mendapat nilai / point setinggi mungkin.

BAB III

Artificial Intelligent pada Game:Decision Making: Decision Tree, State Machine dan Rule Systems
Path Finding: Waypoints dan Path Finding

Pengertian Artificial Intilligence

Kecerdasan Buatan atau kecerdasan yang ditambahkan kepada suatu sistem yang bisa diatur dalam konteks ilmiah atau Intelegensi Artifisial (bahasa Inggris: Artificial Intelligence atau hanya disingkat AI) didefinisikan sebagai kecerdasan entitas ilmiah. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.

Banyak hal yang kelihatannya sulit untuk kecerdasan manusia, tetapi untuk Informatika relatif tidak bermasalah. Seperti contoh: mentransformasikan persamaan, menyelesaikan persamaan integral, membuat permainan catur atau Backgammon. Di sisi lain, hal yang bagi manusia kelihatannya menuntut sedikit kecerdasan, sampai sekarang masih sulit untuk direalisasikan dalam Informatika. Seperti contoh: Pengenalan Obyek/Muka, bermain sepak bola.

Walaupun AI memiliki konotasi fiksi ilmiah yang kuat, AI membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game. ‘Kecerdasan buatan’ ini bukan hanya ingin mengerti apa itu sistem kecerdasan, tapi juga mengkonstruksinya.

Artificial Intelligence Pada Game

Di dunia akademis, bidang kecerdasan buatan dipelajari secara serius untuk meningkatkan kualitas hidup manusia. Para peneliti dan mahasiswa (ilmu komputer atau teknik informatika) terus menerus mengembangkan teknik-teknik pada bidang ini untuk menghasilkan mesin yang semakin mengerti, dan memahami kebutuhan manusia. Dalam game berbasis kecerdasan buatan, ada banyak teknik yang diadaptasi dari bidang kecerdasan buatan untuk diterapkan pada game. beberapa diantaranya, yaitu:
  • Decision Making
Decision Making adalah serangkaian algoritma yang dirancang dengan memasukan beberapa kemungkinan langkah yang bisa diambil oleh suatu aplikasi, Pada game ini decision making memberikan kemampuan suatu karakter untuk menentukan langkah apa yang akan diambil. Decision making dilakukan dengan cara menentukan satu pilihan dari list yang sudah dibuat pada algoritma yang dirancang. Algoritma decision making kerap digunakan dalam aplikasi game, akan tetapi algoritma decision making dapat diimplementasikan pada banyak aplikasi lain.

Decision Making terbagi menjadi 3 yaitu : Decision Tree, State Machine dan Rule System
  1. Decision Tree
Pohon Keputusan (Decision Tree) merupakan metode klasifikasi dan prediksi yang sangat kuat dan terkenal. Metode pohon keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang merepresentasikan aturan. Aturan dapat dengan mudah dipahami dengan bahasa alami. Aturan ini juga dapat diekspresikan dalam bentuk bahasa basis data seperti SQL untuk mencari record pada kategori tertentu. Pohon keputusan juga berguna untuk mengeksplorasi data, menemukan hubungan tersembunyi antara sejumlah calon variabel input dengan sebuah variabel target. Karena pohon keputusan memadukan antara eksplorasi data dan pemodelan, pohon keputusan ini sangat bagus sebagai langkah awal dalam proses pemodelan bahkan ketika dijadikan sebagai model akhir dari beberapa teknik lain(J R Quinlan, 1993).

Dalam situasi lain kemampuan untuk menjelaskan alasan pengambilan keputusan adalah sesuatu yang sangat penting. Misalnya pada perusahaan asuransi ada larangan resmi untuk mendeskriminasi berdasarkan variabel-variabel tertentu. Perusahaan asuransi dapat mencari sendiri keadaan yang mencerminkan bahwa mereka tidak menggunakan deskriminasi yang ilegal dalam memutuskan seseorang diterima atau ditolak. Sebuah pohon keputusan adalah sebuah struktur yang dapat digunakan untuk membagi kumpulan data yang besar menjadi himpunan-himpunan record yang lebih kecil dengan menerapkan serangkaian aturan keputusan. Anggota himpunan hasil menjadi mirip satu dengan yang lain dengan masing-masing rangkaian pembagian. Sebuah model pohon keputusan terdiri dari sekumpulan aturan untuk membagi sejumlah populasi yang heterogen menjadi lebih kecil, lebih homogen dengan memperhatikan pada variabel tujuannya. Sebuah pohon keputusan mungkin dibangun dengan seksama secara manual, atau dapat tumbuh secara otomatis dengan menerapkan salah satu atau beberapa algoritma pohon keputusan untuk memodelkan himpunan data yang belum terklasifikasi (Tan dkk, 2004).

Variabel tujuan biasanya dikelompokkan dengan pasti dan model pohon keputusan lebih mengarah pada perhitungan probabilitas dari masing-masing record terhadap kategori-kategori tersebut, atau untuk mengklasifikasi record dengan mengelompokkannya dalam satu kelas. Pohon keputusan juga dapat digunakan untuk mengestimasi nilai dari variabel kontinyu, meskipun ada beberapa teknik yang lebih sesuai untuk kasus ini.

Kelebihan dari metode pohon keputusan adalah:
  1. Daerah pengambilan keputusan yang sebelumnya kompleks dan sangat global, dapat diubah menjadi lebih simpel dan spesifik
  2. Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena ketika menggunakan metode pohon keputusan maka sampel diuji hanya berdasarkan kriteria atau kelas tertentu
  3. Fleksibel untuk memilih fitur dari node internal yang berbeda, fitur yang terpilih akan membedakan suatu kriteria dibandingkan kriteria yang lain dalam node yang sama. Kefleksibelan metode pohon keputusan ini meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika menggunakan metode penghitungan satu tahap yang lebih konvensional
  4. Dalam analisis multivarian, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode pohon keputusan dapat menghindari munculnya permasalahan ini dengan menggunakan kriteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.
Kekurangan pada pohon keputusan adalah:
  1. Terjadi overlapping terutama ketika kelas-kelas dan kriteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memori yang diperlukan
  2. Pengakumulasian jumlah kesalahan dari setiap tingkat dalam sebuah pohon keputusan yang besar
  3. Kesulitan dalam mendesain pohon keputusan yang optimal
  4. Hasil kualitas keputusan yang didapatkan dari metode pohon keputusan sangat tergantung pada bagaimana pohon tersebut didesain.
Pohon keputusan adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Setiap percabangan menyatakan kondisi yang harus dipenuhi dan tiap ujung pohon menyatakan kelas data. Contoh pada Gambar diatas adalah identifikasi pembeli komputer. Dari pohon keputusan tersebut diketahui bahwa salah satu kelompok yang potensial membeli komputer adalah orang yang berusia di bawah 30 tahun dan juga pelajar. Setelah sebuah pohon keputusan dibangun maka dapat digunakan untuk mengklasifikasikan record yang belum ada kelasnya. Dimulai dari node root, menggunakan tes terhadap atribut dari record yang belum ada kelasnya ini lalu mengikuti cabang yang sesuai dengan hasil dari tes tersebut, yang akan membawa kepada internal node (node yang memiliki satu cabang masuk dan dua atau lebih cabang yang keluar), dengan cara harus melakukan tes lagi terhadap atribut atau node leaf. Record yang kelasnya tidak diketahui kemudian diberikan kelas yang sesuai dengan kelas yang ada pada node leaf. Pada pohon keputusan setiap simpul leaf menandai label kelas. Proses dalam pohon keputusan yaitu mengubah bentuk data (tabel) menjadi model pohon (tree) kemudian mengubah model pohon tersebut menjadi aturan (rule) (J R Quinlan, 1993).

Salah satu algoritma induksi pohon keputusan yaitu ID3 (Iterative Dichotomiser 3). ID3 dikembangkan oleh J. Ross Quinlan. Dalam prosedur algoritma ID3, input berupa sampel training, label training dan atribut. Algoritma Decision Tree C4.5 merupakan pengembangan dari ID3. Sedangkan pada perangkat lunak open source WEKA mempunyai versi sendiri dari C4.5 yang dikenal sebagai J48.
  1. State Machine
Finite State Machines (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian proses yang relative kompleks.

Berdasarkan sifatnya, metode FSM ini sangat cocok digunakan sebagai basis perancangan perangkat lunak pengendalian yang bersifat reaktif dan real time. Salah satu keutungan nyata penggunaan FSM adalah kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan hanya menggunakan sejumlah kecil item state. Selain untuk bidang kontrol, Penggunaan metode ini pada kenyataannya juga umum digunakan sebagai basis untuk perancangan protokol-protokol komunikasi, perancangan perangkat lunak game, aplikasi WEB dan sebagainya.

Dalam bahasa pemrograman prosedural seperti bahasa C, FSM ini umumnya direalisasikan dengan menggunakan statemen kontrol switch case atau/dan if..then. Dengan menggunakan statemen-statemen kontrol ini, aliran program secara praktis akan mudah dipahami dan dilacak jika terjadi kesalahan logika.
  1. Rule Systems
Rule Based System merupakan metode pengambilan keputusan berdasarkan pada aturan-aturan tertentu yang telah ditetapkan. RBS dapat diterapkan pada agen virtual dalam bentuk kecerdasan buatan sehingga dapat melakukan tindakan tertentu. Tindakan tersebut direpresentasikan oleh set aturan yaitu penyebab tindakan itu terjadi, proses tindakan dan hasil dari tindakan tersebut.

Rule Base Systems (RBS) sistem yang baik untuk mendapat jawaban dari pertanyaan mengenai What (apa), How (bagaimana) dan Why (mengapa) dari Rule Base (RB) selama proses inferensia. Jawaban dan penjelasannya dapat disediakan dengan baik. Masalah yang ada dengan SBP adalah ia tak dapat secara mudah menjalankan proses akuisisi knowledge (pengetahuan) dan ia tak dapat mengupdate rule (aturan) secara otomatis. Hanya pakar yang dapat mengupdate Knowledge Base (KB) secara manual dengan dukungan dari knowledge engineer (insinyur pengetahuan). Lebih jauh kebanyakan peneliti dalam SBA lebih memperhatikan masalah optimasi pada rule yang sudah ada daripada pembangkitan rule baru dari rule yang sudah ada. Namun demikian, optimasi rule tak dapat mengubah hasil dari inferensia secara signifikan, yaitu dalam hal cakupan pengetahuan.

Ripple Down Rule (RDR) datang untuk mengatasi permasalahan utama dari sistem pakar: pakar tak perlu lagi selalu mengkomunikasikan pengetahuan dalam konteks yang spesifik. RDR membolehkan akuisisi yang cepat dan sederhana secara ekstrim tanpa bantuan dari knowledge engineer. Pengguna tak perlu menguji RB dalam rangka mendefinisikan rule baru: pengguna hanya perlu untuk mampu mendefinisikan rule baru yang secara benar mengklasifikasikan contoh yang diberikan, dan sistem dapat menentukan dimana suatu rule harus ditempatkan dalam hirarki rulenya. Keterbatasan dari RDR adalah kekurangan dalam hal inferensia yang berdayaguna. Tak seperti SBA yang dilengkapi dengan inferensia melalui forward dan backward chaining, RDR kelihatannya menggunakan Depth First Search (DFS) yang memiliki kekurangan dalam hal fleksibelitas dalam hal penjawaban pertanyaan dan penjelasan yang tumbuh dari inferensia yang berdayaguna.

Variable-Centered Intelligent Rule System (VCIRS) merupakan perkawinan dari SBA dan RDR. Arsitektur sistem diadaptasi dari SBA dan ia mengambil keuntungan-keuntungan yang ada dari RDR. Sistem ini mengorganisasi RB dalam struktur spesial sehingga pembangunan pengetahuan, inferensia pengetahuan yang berdayaguna dan peningkatan evolusional dari kinerja sistem dapat didapatkan pada waktu yang sama. Istilah “Intelligent” dalam VCIRS menekankan pada keadaan sistem ini yang dapat “belajar” untuk meningkatkan kinerja sistem dari pengguna sistem selama pembangunan pengetahuan (melalui analisis nilai) dan penghalusan pengetahuan (dengan pembangkitan rule).
  • Path Finding
Metode Path Finding seringkali dijumpai pada game yang bergenre strategi, dimana kita sebagai user menunjuk satu karakter untuk digerakkan ke lokasi tertentu dengan cara mengklik lokasi yang akan dituju. Maka, si karakter tersebut akan bergerak ke arah yang telah ditentukan, dan secara “cerdas” dapat menemukan jaur terpendek ataupun menghindari rintangan yang ada.

Metode pada Path Finding terbagi menjadi 4 bagian yaitu:
  1. Waypoints
Merupakan titik acuan/kumpulan koordinat yang digunakan untuk keperluan navigasi. Maksud dari keperluan navigasi disini adalah mengidentifikasi sebuah titik dipeta. Disetiap koordinat biasanya menyertakan longitude, latitude, dan terkadang altitude untuk keperluan navigasi di udara.
  1. A* Searching
Algoritma A* merupakan yang sering digunakan pada game yang menggunakan metode pathfinding. Algoritma ini dipilih karena A* sangat mudah untuk diimplementasikan dan sangat efisien. Dengan menggunakan algoritma A* kita dapat menentukan jalur terpendek. Pada algotitma ini akan menyeleksi dengan cara membuang langkah yang tidak perlu dengan mempertimbangkan bahwa langkah yang dibuang dipastikan tidak mencapai solusi yang diinginkan.

Prinsip dari algoritma ini yaitu dengan cara mencari jalur terpendek dari sebuah simpul awal (Starting Point) menuju ke simpul tujuan dengan memperhatikan harga (F) terkecil. Algoritma A* akan memperhitungkan cost dari current state ke tujuan dengan fungsi heuristic, selain itu algoritma ini juga mempertimbangkan cost yang telah ditempuh selama ini dari initial state ke current state. Jadi maksudnya jika jalan yang telah ditempuh terlalu panjang dan ada jalan lain yang cost nya lebih kecil tetapi memberikan posisi yang sama jika dilihat dari goal, maka jalan yang lebih pendeklah yang akan dipilih.
  1. Dijkstra
Algoritma Dijkstra yang dinamai penemunya yakni seorang ilmuwan komputer, Edsger Dijkstra merupakan sebuah algoritma yang rakus atau biasa dikenal dengan algoritma greedy. Algoritma ini biasa dipakai dalam memecahkan permasalahan jarak terpendek (shortest path problem) untuk sebuah graf berarah (directed graph) dengan bobot-bobot sisi (edge weights) yang bernlai positif.
  1. Tactical Pathfinding
Tactical Pathfinding merupakan algoritma pencarian jalur yang bisa melakukan pencarian jalur terpendek dengan menghitung bobot ancaman. Implementasi algoritma ini dapat memberikan gerakan taktis pada non-player character. Algoritma ini dilakukan berdasarkan algoritma pencarian jalur A* yang ditambah dengan perhitungan bobot.
  • Mengejar dan Menghindar
Mengejar dan menghindar merupakan teknik dasar yang diterapkan pada banyak game berbasis kecerdasan buatan dari yang sederhana sampai yang kompleks. apakah itu space shooters, RPG, atau game strategi. metode paling umum pada teknik mengejar dan menghindar ini adalah melakukan pemutakhiran (update) koordinat terhadap objek yang menjadi sasaran. Posisi relatif dan kecepatan dapat dijadikan sebagai parameter pada algoritma mengejar dan menghindar. Metode Line-of-sight yang membutuhkan dasar rumus persamaan garis juga serngkali dijadikan basis metode mengejear dan menghindar.
  • Pola Pergerakan
Pola pergerakan merupakan cara yang sederhana untuk memberikan ilusi kecerdasan pada sebuah game. Game Galaga adalah contoh klasik penerapan pola pergerakan ini, dimana pesawat musuh dapat bergerak secara melingkat atau mengikuti pola garis lurus yang ditentukan. Contoh lain penerapan pola pergerakan adalah pada game first-person shooter yang menampilkan monster yang sedang berpatroli pada jalur tertentu, pada game simulasi pertempuran pesawat dimana pesawat musuh dapat melakukan manuver-manuver di udara yang menyulitkan kita mengejar, atau karakter-karakter non-player (figuran) seperti kambing yang sedang berjalan membutuhkan teknik pola pergerakan ini. Metode standar untuk menerapkan pola pergerakan adalah dengan cara menyimpan pola tersebut dalam suatu array. Array tersebut terdiri dari serangkaian koordinat atau perintah pergerakan dengan pola tertentu untuk mengontrol koordinat dari objek. Dengan metode ini, bisa didapatkan pola-pola pergerakan seperti melingkar, garis lurus, zig-zag atau bahkan kurva tak beraturan.
  • Jaringan saraf tiruan (neural network)
Neural network cukup baik ketika diterapkan pada kasus-kasus yang sifatnya non-linier atau mengambil keputusan yang tidak dapat dilakukan dengan metode tradisional. Penerapannya seringkali pada game-game yang memerlukan kemampuan adaptif atau belajar dari pengalaman. Sebagai contoh, jika suatau ketika terjadi pertempuran antar player dengan unit komputer, dan unit komputer mengalami kekalahan, maka pada kesempatan lain yang serupa, komputer akan memilih untuk tidak bertempur. Semakin banyak pengalaman yang dialami komputer, maka komputer menjadi semakin cerdas. Prinsip dasar dari jaringan saraf tiruan ini adalah perbaikan bobot secara terus menerus agar output yang dihasilkan menjadi semakin akurat (semakin cerdas).
  • Algoritma Genetis (genetic algorithm)
Algoritma genetis sedikit banyak dipengaruhi oleh teori evolusi yang dicetuskan Darwin, yaitu bahwa spesies akan terus menerus beradaptasi dengan lingkungannya dan ciri khasnya yang terletak pada kromosom, akan diturunkan pada generasi berikutnya. Generasi turunan ini menerima gabungan kromosom dari kedua induknya, yang disebut dengan crossover. Pada algoritma genetis, akan diterapkan langkah ranking fitness untuk melakukan seleksi terhadap langkah ranking fitness untuk melakukan seleksi terhadap generasi turunan yang terbaik. Pada game berbasis algorima genetis, turunan terbaik inilah yang dilibatkan ke dalam game, dimana akan digunakan oleh komputer untuk merespons perubahan-perubahan tingkah laku user.

Contoh Game Yang Menggunakan Ai
- Freeciv
- Pacman
- Bomberman
- Tic tac toe
- Defense of the Ancients
- Counter-strike
- Fallout 3

BAB IV

Arsitektur Game Engine

Game Engine

Game engine adalah sebuah sistem perangkat lunak (software) yang dirancang untuk pembuatan dan pengembangan video game. Game engine memberikan kemudahan dalam menciptakan konsep sebuah game yang akan di buat. Mulai dari sistem rendering, physics, arsitektur, suara, scripting, A.I, dan bahkan sistem networking.

Tujuan digunakannya game engine adalah untuk mempermudah pembuatan bagian‐bagian tertentu dalam game, membagi‐bagi pengembangan game menjadi modul‐modul tertentu, dan memudahkan kolaborasi antar pihak.

Tipe‐tipe Game Engine

Game memiliki berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrograman. Berikut ini adalah beberapa tipe dari game engine.
  • Roll Your‐Game Engine
Game engine tipe ini lebih disukai karena selain gratis, game engine ini juga memperbolehkan para developer lebih fleksibel dalam mengitegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Namun kelemahan dari tipe game engine ini banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya.
  • Mostly‐Ready‐Game Engine
Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/programmer. Semuanya termasuk conth GUI, phisycs, libraries models, 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 banyak terjadi error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis dan masih memungkinkan game engine‐nya tersebut untuk mengoptimalkan kinerja game‐nya. Dengan hal ini dapat menghemat waktu dan biaya dari para developer game.
  • Point‐and‐Click Engine
Engine ini merupakan engine yang sangat dibatasi, tetapi 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. 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.

Elemen pada Game Engine

Seperti halnya perangkat lunak lainnya, pada geme engine juga terdapat beberapa elemen diantaranya:
  • Tools / Data
Dalam pengembangan game, dibutuhkan data yang tidak semudah menuliskan text files. Dalam pengembangan game, paling tidak dibutuhkan beberapa tools seperti 3d model editor, level editor dan graphics programs. Bahkan jika diperlukan, seringkali kita mengembangkan game engine tersebut dengan menambahkan beberapa code dan fitur yang diperlukan.
  • System
System adalah bagian dari game engine yang berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam mesin. Jika game engine sudah dibuat dengan baik maka system ini adalah satu‐satunya bagian yang membutuhkan perubahan yang cukup banyak apabila dilakukan implementasi pada platform yang berbeda. Di dalam system sendiri terdapat beberapa sub system yaitu graphics, input, sound, timer, configuration. System sendiri bertanggung jawab untuk melakukan inisialisasi, update dan mematikan sub system yang terdapat di dalamnya.
  • Console
Dengan menambahkan console, kita dapat merubah setting game dan setting game engine di dalam game tanpa perlu melakukan restart pada game tersebut. Console sendiri lebih sering digunakan dalam proses debugging. Apabila game engine tersebut mengalami error kita tinggal mengoutputkan error message tersebut ke dalam console tanpa harus melakukan restart. Console sendiri dapat dihidupkan dan dimatikan sesuai keinginan.
  • Support
Support adalah bagian yang paling sering digunakan oleh system di dalam game engine. Support sendiri berisi rumus‐rumus matematika yang biasa digunakan seperti : vector, matrix, memory manager, file loader merupakan dasar dari game engine dan hampir digunakan semua projek game engine.
  • Renderer / Engine Core
Pada game engine, engine core / renderer terdiri dari beberapa sub yaitu visibility, Collision Detection dan Response, Camera, Static Geometry, Dynamic Geometry, Particle Systems, Billboarding, Meshes, Skybox, Lighting, Fogging, Vertex Shading, dan Output.
  • Game Interface
Game interface sendiri merupakan layer diantara game engine dan game itu sendiri. Berfungsi sebagai control yang bertujuan untuk memberikan interface apabila di dalam game engine tersebut terdapat fungsi fungsi yang bersifat dinamis sehingga memudahkan untuk mengembangkan game tersebut.
  • The Game
Merupakan inti dari penggunaan game engine sendiri, sehingga user dapat mengembangkan game tersebut sesuai dengan yang diinginkan.
Beberapa Contoh Game Engine Open Source :
  • 3D Game Studio
  • Delta 3D
  • Unreal Engine
  • Panda 3D
  • Torque
  • Quake Engine

BAB V

Interaksi Fisik dalam teknologi Game:
Efek fisik dalama Game
Collision Detection

Efek fisik dalam game engine

Game konsol modern saat ini sudah dilengkapi dengan perangkat gerak yang melibatkan aktivitas fisik sehingga permainan video game dapat sekaligus melatih otot dan gerak selayaknya berolahraga, seperti halnya yang disediakan oleh konsol Nintendo Wii, PS3 Move, atau yang lebih canggih lagi, Xbox 360 Kinect.

Game-game yang melibatkan aktivitas fisik seperti game tinju, tennis, sepakbola dan sebagainya, yang mengharuskan anda untuk menggerakkan tangan dan anggota tubuh anda sesuai tema video game yang dimainkan.  Untuk mendapatkan seperangkat konsol tersebut tidaklah perlu mengeluarkan kocek yang dalam. Ketiganya memiliki harga yang berlainan yang dapat disesuaikan dengan kocek anda.

Efek fisik dalam game ada 2, yaitu positif dan negatif :

Efek positif dalam game :
  • Setiap game memiliki tingkat kesulitan/Level yang berbeda. Umumnya permainan ini dilengkapi pernak-pernik senjata, amunisi, karakter dan peta permainan yang berbeda. Untuk menyelesaikan level atau mengalahkan musuh secara efisien diperlukan strategi. Permainan game online akan melatih pemainnya untuk dapat memenangkan permainan dengan cepat, efisien dan menghasilkan lebih banyak poin.
  • Meningkatkan konsentrasi. Kemampuan konsentrasi pemain game online akan meningkat karena mereka harus menyelesaikan beberapa tugas, mecari celah yang mungkin bisa dilewati dan memonitor jalannya permainan. Semakin sulit sebuah game maka semakin diperlukan tingkat konsentrasi yang tinggi.
  • Meningkatkan koordinasi tangan dan mata. Penelitian yang dilakukan di Manchester University dan Central Lanchashire University menyatakan bahwa orang yang bermain game 18 jam seminggu atau sekita dua setengah jam perhari dapat meningkatkan koordinasi antara mata dan tangan
  • Meningkatkan kemampuan membaca. Psikolog dari Finland Univesity menyatakan bahwa game meningkatkan kemampuan membaca pada anak-anak. Jadi pendapat yang menyatakan bahwa jenis permainan ini menurunkan tingkat minat baca anak sangat tidak beralasan.
  • Meningkatkan kemampuan berbahasa inggris. Sebuah studi menemukan bahwa gamers mempunyai skil berbahasa inggris yang lebih baik meskipun tidak mengambil kursus pada masa sekolah maupun kuliah. Ini karena banyak alur cerita yang diceritakan dalam bahasa inggris dan kadang kala mereka chat dengan pemain lain dari berbagai negara.
  • Meningkatkan pengetahuan tentang komputer dan untuk dapat menikmati permainan dengan nyaman dan kualitas gambar yang prima seorang peman game online akan berusaha mencari informasi tentang spesifikasi komputer dan koneksi internet yang dapat digunakan untuk memainkan game tersebut. Karena pengguna komputer aktif biasanya mereka juga akan belajar troubleshooting komputer dan overclocking.
  • Meningkatkan kemampuan mengetik. Kemampuan mengetik sudah pasti meningkat karena mereka menggunakan keyboard dan mouse untuk mengendalikan permainan.
Efek negatif dalam game :
  • Kecanduan
Seperti yang disebutkan pada awal tulisan ini, kebahagiaan dan kesenangan yang dirasakan para gamer pada saat memainkan game, akan membuat orang tersebut ‘merindukan’ suasana hati yang mereka rasakan selama bermain game, sehingga mereka akan cenderung kembali bermain dan bermain lagi untuk mencari sensasi yang mereka rasakan tersebut. Untuk mencegah hal ini, adalah dengan membatasi waktu bermain game. Misalnya, 2 atau 3x dalam satu minggu dengan jangka waktu 1-2 jam.
  • Membatasi Hubungan Sosial
Pada dampak positif  bermain game telah dijelaskan bahwa bermain game dapat meningkatkan hubungan sosial secara online dengan para gamer diseluruh dunia. Sebaliknya dalam hal ini justru akan membatasi hubungan sosial di kehidupan nyata mereka. Banyak sekali para pecandu game memiliki sedikit waktu untuk membina hubungan sosial di kehidupan nyata mereka sehingga kemampuan berkomunikasi dan interaksi secara fisik dan oral menjadi tidak terasah.
  • Mengganggu Kesehatan
Dalam poin sebelumnya disebutkan bahwa bermain game dapat menyehatkan karena banyak game yang harus melibatkan aktivitas fisik? Hal itu memang benar, aktivitas dan gerakan fisik dapat menyehatkan tubuh. Akan tetapi dengan bermain game yang terlalu intensif dapat mengganggu kesehatan mata, karena bagaimana pun juga permainan video game memerlukan kontak langsung antara mata dan layar monitor / TV yang dapat menyebabkan kerusakan pada mata atau menurunnya daya lihat untuk efek kedepannya.

Collision Detection

Algoritma untuk mendeteksi collision (tabrakan) sangat dibutuhkan untuk program game. Flash mulai versi 5 ke atas menyediakan method yang bernama hitTest untuk memeriksa apakah sebuah movie clip bertabrakan dengan movie yang lain. Sebelum method hitTest ini tersedia, seorang programmer Flash harus mendeteksi secara manual koordinat sebuah movie clip, apakah movie clip ini bertabrakan dengan movie clip lain. Cara ini sangat merepotkan karena harus mempertimbangkan pula ukuran movie clipnya.

BAB VI

User Interface pada Game Komputer

Desain user interface dalam game berbeda dari desain user interface lainnya karena melibatkan unsur tambahan fiksi. Fiksi melibatkan avatardari pengguna yang sebenarnya atau player. Sebuah desain interface pada suatu game mempengaruhi kenyamanan dan sejauh mana user atau pemain meminati game tersebut.  Dalam user interface game, terdapat sebuah teori yang dikemukakkan oleh Erik Fagerholt dan Magnus Loretzon dari Chalmers University of Technology. Dalam tesisnya mereka menulis tesis tentang desain user interface berjudul Beyond the HUD – User Interfaces for Increased Player Immersion in FPS Games. Mereka memperkenalkan istilah berbagai jenis interface yang berkaitan dengan desain video game.

HUD itu sendiri kepanjangan dari Heads-up display, merupakan metode dimana informasi secara visual disampaikan kepada pemain sebagai bagian dari antarmukan pengguna permainan. Biasanya menunjukkan bar/kotak HP (Health Point) ataupun MP (Mana Point) dan biasanya muncul  di atas kepala karakter. Fungsi HUD ini untuk memudahkan pemain mengetahui kondisi karakter dalam permainan.

Dalam desain antarmuka game terdapat beberapa elemen yang diantaranya adalah :
  1. Diegetic
Elemen user interface yang diegetik ada dalam dunia permainan (fiksi dan geometris) sehingga pemain dan avatar dapat berinteraksi dengan mereka melalui visual, audible atau haptic. Elemen UI diegetik yang dieksekusi dengan baik dapat meningkatkan pengalaman narasi untuk pemain, memberikan pengalaman yang lebih mendalam dan terintegrasi. Salah satu game yang mengimplementasikan elemen diegetic adalah Assassin’s Creed. Assassin’s Creed berhasil menggunakan banyak pola diegetic meskipun itu diatur dalam dunia sejarah karena pemain pemain menggunakan sistem virtual reality di masa depan. Jadi cerita sebenarnya futuristik daripada sejarah.
  1. Meta
Gambaran yang bisa muncul dalam dunia game, namun tidak selalu divisualisasikan spasial untuk pemain.Contoh yang paling jelas adalah efek ditampilkan di layar, seperti percikan darah pada kamera untuk menunjukkan kerusakan. Contoh: Grand Theft Auto 4 Berinteraksi dengan telepon di Grand Theft Auto 4 adalah contoh menarik. Ini meniru interaksi dunia nyata – Anda mendengar dering telepon dan ada penundaan sebelum karakter dan pemain menjawabnya. Elemen UI sebenarnya itu sendiri muncul pada pesawat hub 2D, jadi itu benar-benar elemen Meta, meskipun awal interaksi yang diegetik.
  1. Spatial
Elemen User Interface yang disajikan dalam ruang permainan 3D dengan atau tanpa suatu entitas dari dunia permainan yang sebenarnya (diegetik atau non-diegetik).
Fable 3 adalah contoh di mana unsur-unsur spatial yang digunakan untuk memberikan informasi lebih kepada pemain dan mencegah mereka dari melompat ke layar peta. Jejak bersinar hampir cocok dalam fiksi mengingat kualitas estetika ajaib itu tapi karakter tidak dimaksudkan untuk menyadari hal itu. Ini memandu pemain ke tujuan berikutnya.
  1. Non-Diagetic
Antarmuka yang diberikan di luar dunia game, hanya terlihat dan terdengar ke pemain di dunia nyata desain interface ini semuanya mengunakan visual heads-up display (HUD). semua menjadi sangat nyaman dengan penggunaan heads-up display (HUD) dalam permainan. Sistem ini memberikan informasi penting dengan cara yang cukup sederhana. Jika dilakukan dengan benar pemain bahkan tidak tahu itu ada. Mass Effect 3 menggunakan banyak Non-diegetik elemen UI untuk menginformasikan pemain senjata karakter dipilih dan kekuasaan-antara lain. Mengingat pengaturan futuristik itu saya tidak bisa membantu untuk berpikir jika beberapa informasi ini bisa telah terintegrasi ke dalam dunia game, narasi, atau bahkan keduanya.

BAB VII

Penampilan Grafik Scene game komputer:
Visibility
Level of Detail

Visibility

Visibility adalah tampilan grafik dari scene game pada komputer. Yaitu,bagaimana sebuah game terlihat oleh user agar menarik dan berkualitas sehingga user dapat menikmati game tersebut.Biasanya pada video game terdapat istilah scene 2.5D. Sebenernya istilah tersebut tidak beda jauh dari scene 2D. Hanya saja 2.5D memiliki beberapa  fitur tambahan berupa efek cahya dan sebagainya yang dibuat agar seakan – akan menterupai scene 3D. Teori grafik 2.5D ini biasa juga disebut dengan pseudo-3D sedangkan pada istilahh game lebih dikenal dengan isometric/diametric/trimetric projection.

Game bertipe ini menggunakan 2 macam tipe pemodelan, yaitu :
  • 3 Dimensi object/model
Ini merupakan model/object 3D yang nantinya akan dijadikan sebagai karakter utama,bangunan,object – object. Object 3D seperti ini biasanya menggunakan program seperti 3Ds Max,Maya,Hash dan Blender.
  • 2 Dimensi Graphic
Gambar 2D juga berperan dalam membuat game ini yaitu sebagai texture untuk object,sebagai latar belakang seperti langit dan pemandangan, sebagai meteran untuk nyawa dan gambar untuk speedometer pada game racing.

Level of  Detail

Dalam komputer grafis, untuk tingkat detail melibatkan menurunkan kompleksitas representasi obje 3D seperti bergerak menjauh sesuai matriksnya,kecepatan sudut pandang – relative atau posisi. Tingkat teknik detail pipa grafis, transformasi biasanya simpul. Kualitas visual berkurang dari model sering diperhatikan karena efek kecil pada objek muncul ketika jauh atau bergerak cepat.

Untuk konsep menggambar LOD sebagian besar waktu LOD diterapkan untuk geometri rinci, konse dasar bisa disamaratakan. Teknik LOD termasuk manajemen juga shader untuk tetap mengontrol kompleksitas pixel.

Terrain LOD

Terrain merupakan model yang sangat besar, membuat setiap pointnya secara eksplisit sangatlah tidak mungkin,maka metoda untuk mengotomasikan pembangkitan terrain merupakan hal biasa. Terrain LOD itu menggunakan teknik Level of Detail untuk mengontrol objek yang akan di render. Teknik Level of Detail mempunyai banyak jenis, salah satunya adalah Terrain LOD.

Hubungan Terrain LOD dengan Triangle Bintree (Binary Triangle Trees)

Hubungan Terrain LOD dengan Triangle Bintree (Binary Triangle Trees) yaitu pada bagaimana data itu dibagi pada terrain, terdapat pohon yang dikenal sebagai Triangle Bintrees (Binary Triangle Trees) dan Quadtrees. Triangle Bintrees (Binary Triangle Trees) merupakan sebuah representasi populer permukaan medan yang elevasi telah sampel pada interval jarak teratur yaitu triangulalsi subset dari titik sampel yyang terdiri dari sumbu blok,segitiga siku-siku isosceles. Triangulasi terdiri dari segitiga yang hanya memiliki tiga simpul pada batas mereka.

BAB VIII

Game Berjaringan

Game Berjaringan (Game Online)

Game Online adalah game komputer yang dapat dimainkan oleh multipemain yang memanfaatkan jaringan komputer (LAN atau internet), sebagai medianya. Umumnya permainan yang dapat diakses langsung melalui sistem yang disediakan oleh penyedia jasa online dan disediakan sebagai tambahan layanan dari perusahaan penyedia jasa online.

Terdapat banyak jenis Permainan online, dari mulai permainan sederhana berbasis teks sampai permainan yang menggunakan grafik kompleks dan membentuk dunia virtual yang dapat dimainkan oleh banyak pemain sekaligus.

Tipe - Tipe Game Online
  • First Person Shooter(FPS)
First Person Shooter(FPS), sesuai judulnya game ini mengambil pandangan orang pertama pada gamenya sehingga seolah-olah kita sendiri yang berada dalam game tersebut, kebanyakan game ini mengambil setting peperangan dengan senjata-senjata militer (di indonesia game jenis ini sering disebut game tembak-tembakan).
  • Real-Time Strategy
Real-Time Strategy, merupakan game yang permainannya menekankan kepada kehebatan strategi pemainnya, biasanya pemain memainkan tidak hanya 1 karakter saja akan tetapi banyak karakter.
  • Cross-Platform Online
Cross-Platform Online, merupakan game yang dapat dimainkan secara online dengan hardware yang berbeda misalnya saja need for speed undercover dapat dimainkan secara online dari PC maupun Xbox 360(Xbox 360 merupakan hardware/console game yang memiliki konektivitas ke internet sehingga dapat bermain secara online).
  • Browser Games
Browser Games, merupakan game yang dimainkan pada browser seperti Firefox, Opera, IE. Syarat dimana sebuah browser dapat memainkan game ini adalah browser sudah mendukung javascript, php, maupun flash.
  • Massive Multiplayer Online Games
Massive Multiplayer Online Games, adalah  game dimana pemain bermain dalam dunia yang skalanya besar (>100 pemain), setiap pemain dapat berinteraksi langsung seperti halnya dunia nyata
Bedasarkan Teknologi Grafis
  • 2D
2 Dimensi, game yang mengadopsi teknologi ini rata-rata game yang termasuk ringan, tidak membebani system. Tetapi game dengan kualitas gambar 2D tidak enak dilihat apabila dibandingkan dengan game 3D sehingga rata-rata game online sekarang mengadopsi teknologi 2,5D yaitu dimana karakter yang dimainkan masih berupa 2D akan tetapi lingkungannya sudah mengadopsi 3D.
  • 3D
3 Dimensi, game bertipe 3 DImensi merupakan game dengan grapis yang baik dalam penggambaran secara realita, kebanyakan game-game ini memiliki perpindahan kamera (angle) hingga 360 derajat sehingga kita bisa melihat secara keseluruhan dunia games tersebut. Akan tetapi game 3D meminta spesifikasi komputer yang lumayan tinggi agar tampilan 3 Dimensi game tersebut ditampilkan secara sempurna.

Bedasarkan Cara Pembayaran

Maksud dari cara pembayaran ini adalah bagaimana perusahaan game online mendapatkan uang dari gamesnya. Bedasarkan kategori ini games online dapat dibedakan menjadi 2 yaitu:
  • Pay Per Item
Pay Per Item, game yang berada pada category ini merupakan game yang bisa diinstall atau dimainkan secara gratis, dan game ini biasanya mengenakan biaya pada pemainnya apabila pemainnya ingin cepat menaikkan level atau membeli barang (item)  langka yang tidak pernah dijumpai pada permainan. Jenis game seperti ini yang paling dijumpai di Indonesia. Contoh: Gunbound, Ragnarok, Ghost Online,dll.
  • Pay Per Play
Pay per Play, game ini harus dibeli dan diinstal secara legal karena pada saat diinstal game terebut akan mendaftarkan pemain ke internet langsung dan apabila yang diinstal adalah program bajakan maka secara otomatis system akan memblokirnya. Contoh: War of Warcraft,dll.

Referensi: