Minggu, 24 April 2016

Arsitektur Game Engine

Diposting oleh Unknown di 06.59 0 komentar
Game engine adalah sebuah sistem perangkat lunak (software) yang dirancang untuk pembuatan dan pengembangan suatu 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. Game engine dapat dikatakan sebagai jiwa dari seluruh aspek sebuah game. Tujuan digunakannya game engine adalah untuk mempermudah pembuatan bagian bagian tertentu dalam game, membagibagi pengembangan game menjadi modulmodul tertentu, dan memudahkan kolaborasi antar pihak.
Saat ini game engine tidak hanya digunakan untuk pembuatan game saja, tetapi dapat digunakan untuk mengembangkan sebuah augmented reality untuk berbagai macam aplikasi baik peta atau pembelajaran. Permainanpermainan yang dibuat dengan geme engine umumnya perpaduan antara 3 dimensi, sound, animasi, dan penempatan kamera untuk menambah suasana yang kelihatan seperti nyata.

Elemen Pada Game Engine
Seperti halnya perangkat lunak lainnya, pada game engine juga terdapat beberapa elemen diantaranya:
1. 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.
2. 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.
3. 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.
4. Support
Support adalah bagian yang paling sering digunakan oleh system di dalam game engine. Support sendiri berisi rumusrumus matematika yang biasa digunakan seperti : vector, matrix, memory manager, file loader merupakan dasar dari game engine dan hampir digunakan semua projek game engine.
5. 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.
6. 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.
7. The Game
Merupakan inti dari penggunaan game engine sendiri, sehingga user dapat mengembangkan game tersebut sesuai dengan yang diinginkan.

Tipetipe Game Engine
1. Roll YourGame Engine
Game engine tipe lebih disukai karena selain kemungkinan besar gratis, tipe 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.

2. MostlyReadyGame Engine
Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/programmer. Semuanya   termasuk conth GUI, phisycs, libraries models, texture dan lainlain. Banyak dari mereka yang sudah benarbenar 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 benarbenar terbuka lebar.

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

Beberapa contoh Game Engine :
  •        Unity
Merupakan suatu aplikasi yang digunakan untuk mengembangkan game multi platform yang didesain untuk mudah digunakan. Unity itu bagus dan penuh perpaduan dengan aplikasi yang profesional. Editor pada Unity dibuat degan user interface yang sederhana. Editor ini dibuat setelah ribuan jam yang mana telah dihabiskan untuk membuatnya menjadi nomor satu dalam urutan rankking teratas untuk editor game. Grafis pada unity dibuat dengan grafis tingkat tinggi untuk OpenGL dan directX. Unity mendukung semua format file, terutamanya format umum seperti semua format dari art applications. Unity cocok dengan versi 64-bit dan dapat beroperasi pada Mac OS x dan windows dan dapat menghasilkan game untuk Mac, Windows, Wii, iPhone, iPad dan Android.
Unity secara rinci dapat digunakan untuk membuat video game 3D, real time animasi 3D dan visualisasi arsitektur dan isi serupa yang interaktif lainnya. Editor Unity dapat menggunakan plugin untuk web player dan menghasilkan game browser yang didukung oleh Windows dan Mac. Plugin web player dapat juga dipakai untuk widgets Mac. Unity juga akan mendukung  console terbaru seperti PlayStation 3 dan Xbox 360. Pada tahun 2010, telah memperoleh Technology Innovation Award yang diberikan oleh Wall Street Journal dan tahun 2009, Unity Technology menjadi 5 perusahaan game terbesar. Tahun 2006, menjadi juara dua pada Apple Design Awards.
  •  Blender
Adalah perangkat lunak sumber terbuka grafika komputer 3D. Perangkat lunak ini digunakan untuk membuat film animasi, efek visual, model cetak 3D, aplikasi 3D interaktif dan permainan video. Blender memiliki beberapa fitur termasuk pemodelan 3D, penteksturan, penyunting gambar bitmap, penulangan, simulasi cairan dan asap, simulasi partikel, animasi, penyunting video, pemahat digital, dan rendering.



Referensi:




Sabtu, 23 April 2016

Konsep Pembuatan Script Game Komputer

Diposting oleh Unknown di 22.25 0 komentar


Perkembangan teknologi komputer sangat mempengaruhi perkembangan yang ada dalam dunia game. Pembentukan karakter pada game semakin mendekati dengan keadaan sebenarnya pada dunia nyata. Ketika proses pembuatan game membutuhkan susunan yang lebih kompleks, timbullah kebutuhan untuk memisahkan konten (desain perilaku) dari mesin. Kehandalan seorang desainer game benar-benar dibutuhkan untuk merancang perilaku yang luas dari karakter. Banyak tersedia berbagai macam bentuk bahasa pemrograman yang ada. Tentunya dari kesemuanya itu memiliki kelebihan dan kekurangan sendiri-sendiri. Maka game developer harus benar-benar jeli dalam memilih bahasa dan menyusun script untuk membuat suatu game, agar nantinya game dapat berjalan lancar, tanpa bug, dan mampu menjalankan script dengan kebutuhan hardware seminimum mungkin.

Pemrograman suatu game bisa menggunakan berbagai macam jenis bahasa pemrograman. Diantaranya yang terkenal adalah C++, C dan Java. Proses pembuatan game modern bisa memakan waktu 1-3 tahun untuk menyelesaikannya. Lamanya suatu pengembangan bergantung pada sejumlah faktor, seperti genre, skala, platform pengembangan dan jumlah aset. Sebagai contoh, sebuah game puzzle yang sederhana dengan menggunakan grafik 2D akan jauh lebih sedikit memakan waktu untuk dikembangkan daripada game role-playing komputer 3D.
      1.      Pilihan bahasa pemrograman
a)         Speed
Bahasa scripting untuk game harus mampu berjalan secepat mungkin. Jika kita berniat untuk menggunakan banyak script untuk perilaku karakter dan kejadian di level game, maka script akan perlu untuk mengeksekusi sebagai bagian dari loop game utama. Ini berarti bahwa script yang lambat akan memakan waktu yang kita butuhkan untuk membuat suatu adegan, menjalankan mesin fisika, atau menyiapkan audio.

b)         Kompilasi dan Interpretasi (penyusunan dan penafsiran)
Bahasa scripting secara luas diinterpretasikan,melalui susunan serangkaian byte. Penafsiran bahasa diambil melalui format teks. Interpreter melihat setiap baris, penyusunan bekerja sesuai yang maksud dari script, dan melakukan tindakan yang spesifik. Bahasa byte-terkompilasi dikonversi dari teks ke format internal, yang disebut byte code. Kode byte biasanya jauh lebih padat daripada format teks. Karena kode byte dalam suatu format dioptimalkan ketika dieksekusi, agar dapat berjalan lebih cepat.

c)         Ekstensibilitas dan Integrasi
Bahasa scripting perlu memiliki akses ke fungsi yang signifikan ke dalam game. Sebuah script yang mengendalikan karakter, misalnya, harus mampu untuk menanyai game untuk mencari tahu apa yang bisa dilihat dan kemudian membiarkan game tahu apa yang akan dilakukan sebagai aksinya.
Serangkaian fungsi yang dibutuhkan untuk mengakses ini jarang diketahui ketika bahasa scripting telah diimplementasikan atau dipilih. Hal ini penting untuk memiliki sebuah bahasa yang dapat dengan mudah memanggil fungsi-fungsi atau menggunakan kelas main code dalam game. Biasanya, itu adalah penting bagi programmer untuk dapat mengekspos fungsi baru atau kelas yang dengan mudah ketika pembuat script memintanya.

d)         Re-Entrancy (ikut serta ulang)
Fungsi ini sering berguna untuk memanggil script menjadi diikutsertakan ulang. Mereka dapat berjalan untuk sementara waktu, dan ketika anggaran waktu telah habis script akan dapat ditunda. Ketika script selanjutnya mendapatkan beberapa waktu kembali, maka akan dapat menjalankan kembali script yang ditunda sebelumnya.
Hal ini sering membantu untuk membiarkan kontrol hasil script saat mencapai jeda normal. Kemudian sebuah algoritma penjadwalan dapat memberikan lebih banyak waktu untuk meminimalisasi penggunaan sumber daya.
Sebuah script untuk mengendalikan sebuah karakter, misalnya, mungkin memiliki lima tahapan yang berbeda (memeriksa situasi, memeriksa kesehatan, menentukan gerakan, rencana rute, dan melaksanakan gerakan).

      2.      Embedding (penanaman)
Embedding berhubungan dengan ekstensibilitas. Sebuah bahasa yang tertanam dirancang untuk dimasukkan ke dalam program lain. Ketika kita menjalankan bahasa scripting dari workstation, biasanya akan menjalankan program khusus untuk menafsirkan file source code.

      3.      Memilih sebuah bahasa
Beberapa mesin game komersial dilengkapi dengan dukungan bahasa scripting ini (Unreal dan Quake oleh id Software, misalnya). Hal ini memberikan solusi lengkap dalam efisiensi waktu pembuatan game, karena sebagian besar bahasa yang ada yang digunakan dalam game pada awalnya tidak dirancang untuk tujuan ini. Namun penggunaan bahasa off-the-shelf ini memiliki hubungan dengan kelebihan dan kekurangan yang perlu dievaluasi sebelum kita membuat pilihan.

      4.      Bahasa Open-Source
Banyak bahasa scripting game populer yang dirilis di bawah lisensi open source. Software open-source dirilis di bawah lisensi yang memberikan hak user untuk memasukkannya ke dalam perangkat lunak mereka sendiri tanpa membayar biaya tambahan. Beberapa lisensi open source mengharuskan user membebaskan produk open source yang baru dibuat. Ini jelas tidak cocok bagi game komersial.

A.  Contoh bahasa yang sering digunakan
1)         Lua
Lua adalah bahasa prosedural sederhana yang dibangun dari dasar ke atas sebagai bahasa embedding. Desain bahasa didorong oleh ekstensibilitas. Tidak seperti kebanyakan bahasa embedded, hal ini tidak terbatas untuk menambahkan fungsi baru atau tipe data di C atau C + +. Cara kerja bahasa Lua juga dapat men-tweak.
Lua memiliki sejumlah kecil core library yang menyediakan fungsionalitas dasar. Core yang relatif tanpa sifat khusus merupakan bagian objek tersebut, bagaimanapun. Dalam game anda tidak mungkin membutuhkan library untuk memproses apa pun kecuali matematika dan logika. Core kecil ini mudah dipelajari dan sangat fleksibel.
2)         Python
Python adalah mudah dipelajari, bahasa scripting berorientasi objek dengan ekstensibilitas baik dan dukungan embedding. Python menyediakan dukungan yang sangat baik untuk pemrograman bahasa campuran, termasuk kemampuan untuk secara transparan memanggil C dan C + + dari Python. Python memiliki dukungan untuk fungsi re-entrant sebagai bagian dari bahasa inti dari versi 2.2 dan seterusnya (disebut Generator).

      A.    Contoh Script Game Komputer
            Ini adalah contoh script game Tebak Angka
              //variable awal
              var angkaMisteri:uint;
              var angkaPrediksi:uint;

             //kondisi awal permainan
             display.text="Tebak angka yang aku pikirkan, dari 1-100!";

            //menghasilkan angka acak dari 1 sampai 100
           angkaMisteri=Math.ceil(Math.random()*100);
 
          //event pada tombol cek
          cekBtn.addEventListener(MouseEvent.CLICK, cekAngka);
          function cekAngka(event:MouseEvent):void
{
                angkaPrediksi=uint(inputTeks.text);
              
                //jika angka yang ditebak kurang dari target
                if(angkaPrediksi < angkaMisteri)
                {
                                display.text="Angka terlalu kecil! coba lagi";
                }
                //jika angka yang ditebak lebih dari target
                else if(angkaPrediksi > angkaMisteri)
                {
                                display.text="Angka terlalu besar! coba lagi";
                }
              
                //jika angka yang ditebak sama dengan target
                else
                {
                                display.text="Anda benar!!!";
                }
     
          Dan ini adalah hasilnya :
}


      Sumber :
      https://www.academia.edu/3875722/Scripting_dalam_Pembuatan_Game?auto=download


 
 
























 

winda febri Copyright © 2012 Design by Antonia Sundrani Vinte e poucos