Konsep Pembuatan Script Game Komputer

Pengantar Teknologi Game


Script dan Skenario

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 masing-masing. Maka game developer harus benar-benar teliti 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.

Konsep Pembuatan Scripting pada game

• Pemilihan Bahasa Pemrograman

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.
Walaupun terdapat banyak sekali pilihan bahasa pemrograman untuk membuat game, namun pada intinya bahasa tersebut harus memenuhi syarat sebagai berikut :

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). Ini semua dapat dimasukkan dalam satu script yang menghasilkan penyekat antara setiap bagian. Kemudian masing-masing akan berjalan dengan setiap lima frame, dan beban dari eksekusi AI akan didistribusikan.
Re-entrancy yang lebih canggih harus memungkinkan penulis script untuk menandai bagian yang tidak boleh terputus.

• 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. Dalam game, sistem scripting perlu dikontrol dari dalam program utama. Game yang menentukan jalannya script harus dijalankan dan harus dapat memberitahu mesin terkait bahasa scripting yang cocok untuk memproses script tersebut.

• 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.
Memulai sebagai teks dalam sebuah file teks, script biasanya melewati empat tahap:

1. Tokenization :

Tokenizing mengidentifikasi unsur-unsur dalam teks. Sebuah file teks hanya berisi serangkaian karakter (dalam pengertian karakter ASCII). Hasil tokenizer keluar sebagai kumpulan byte tertentu dan jenis dari kelompok tertentu yang membentuk mereka.

2. Parsing (penguraian) : 

Makna dari sebuah program adalah sangat hirarkis: nama variabel dapat ditemukan dalam sebuah statement pemberian nilai, ditemukan di dalam pernyataan IF-, yang ada di dalam tubuh fungsi, di dalam definisi kelas, maupun di dalam sebuah deklarasi namespace, misalnya. Parser mengambil urutan token, mengidentifikasi peran masing-masing kode dalam program, dan mengidentifikasi struktur hirarkis keseluruhan program.
Contoh1 :  if (a < b) return;

3. Compiler :

Mengubah parse tree ke dalam kode byte yang dapat dijalankan oleh interpreter. Kode byte biasanya berbentuk data biner berurutan. Compiler non-optimasi biasanya berisi output kode byte sebagai terjemahan literal dari parse tree.

4. Interpreting :

Tahap akhir dari serangkaian ini ialah menjalankan kode byte. Dalam sebuah compiler untuk bahasa seperti C atau C++, produk akhir akan menjadi mesin instruksi yang dapat langsung dijalankan oleh prosesor. Dalam bahasa scripting, anda sering perlu untuk menyediakan layanan (seperti re-entrancy dan eksekusi yang aman) yang tidak mudah dicapai dengan bahasa mesin.Kode byte akhir dijalankan pada sebuah “mesin virtual”. Ini secara efektif menjadi sebuah emulator untuk sebuah mesin yang belum pernah ada di hardware. Anda menentukan instruksi agar mesin dapat mengeksekusi, dengan instruksi kode byte.


CONTOH SCRIPT PEMBUTAN GAME TEBAK ANGKA DENGAN MENGGUNAKAN BAHASA C

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int random_number(void);
int view_stats(void);
int show_menu(void);
int totalwins = 0;
int totallosses = 0;
int guess;
int counter = 5;
int main() {
    printf("\t\t\tGAME TEBAK ANGKA\n");
    printf("\t\t\t================\n");
    printf("\t\t    ASTRONAUT11.BLOGSPOT.COM\n\n");
    show_menu();
    system("pause");
    return 0;
}

int show_menu() {

    int decision;
    system("color f0");
    printf("\      MENU\n");
    printf("=================\n\n");
    printf("  1. MULAI GAME\n");
    printf("  2. STATUS GAME\n");
    printf("  3. PANDUAN GAME\n");
    printf("  4. EXIT GAME\n\n");


    printf("MENU INPUT (1-4): ");

    scanf("%d", &decision);
        switch (decision) {
        case 1:
            random_number();
            break;
        case 2:
            view_stats();
            break;
        case 3:
            printf("\nIni adalah permainan tebak angka! Bagaimana cara mainnya?\n");
            printf("Komputer akan memberikan angka dari 1-10 secara acak.\n");
            printf("\nTugas anda adalah menebak angka acak tersebut! \n");
            printf("Anda diberikan 5 kali kesempatan untuk menebaknya.\n");
            printf("Disini kita bermain dengan LUCK atau Logika ?\n");
            printf("Hal itu terserah kepada anda. HAHAHA!!");
            printf("Selamat bermain!(^_^)\n\n");
            show_menu();
        case 4:
            printf("\nTerima kasih telah menggunakan permainan ini (^_^)\n");
            system("exit");
            break;
        default:
            printf("\nPilihan Anda tidak tersedia, masukkan pilihan yang benar\n\n");
            show_menu();
        }
    return 0;
}
int random_number() {
    int randnumber;
    srand(time(NULL));
    randnumber = 1 + rand() % 10;

    printf("Saya sedang memikirkan angka 1 s/d 10.\n");

    printf("Angka apa yang saya pikirkan? ");
    scanf("%d", &guess);

    if(guess == randnumber) {

            system("color fc");
            printf("\nSelamat Kamu Benar, Saya sedang memikirkkan Angka %d\n", randnumber);
            totalwins += 1;
            counter = 5;
            printf("\nTekan Sembarang tombol\n");
            system("pause");

            show_menu();


    }



    else {

            counter -= 1;
            printf("\nMaaf itu bukan angka yang saya pikirkan.\nYang saya pikirkan adalah angka %d\n", randnumber);

            printf("\nSilahkan ulangi lagi (Anda memiliki kesempatan %d kali lagi untuk mecoba)\n", counter);


            if(counter != 0) {

                random_number();
            }

else    {

        printf("\nKamu kalah dalam permainan ini.\n\n");
        counter = 5;
        totallosses += 1;
        show_menu();
        }

    }

    return 0;
}

int view_stats() {

    printf("\nMenang dalam game sebanyak  : %d", totalwins);
    printf("\nKalah dalam game sebanyak   : %d\n\n", totallosses);
    show_menu();
    return 0;
}

  
OUTPUT :






 
 
 

 
STORYBOARD

Storyboard adalah sketsa gambar yang disusun berurutan sesuai dengan naskah, dengan storyboard kita dapat menyampaikan ide cerita kita kepada orang lain dengan lebih mudah, karena kita dapat menggiring khayalan seseorang mengikuti gambar-gambar yang tersaji, sehingga menghasilkan persepsi yang sama pada ide cerita kita.

Salah satu  tahapan penting dalam produksi  film adalah membuat storyboard, setelah sutradara dan pengarah fotografi  membahas sebuah adegan mereka kemudian bertemu dengan artis storyboard untuk  menterjemahkan gagasan mereka dalam gambar. Disitu terbentuklah rancangan-rancangan shooting, dan ketika dirasa ada sesuatau yang kurang pas atau ada kendala-kendala dalam pengambilan gambar nantinya segera dapat dilakukan revisi.

Dengan mengacu pada rencana shooting  dalam storyboard para pemain dan krue dapat mengerjakan tugas mereka masing-masing dengan cepat dan tepat.  Storyboard secara gamblang memberikan tata letak visual dari adegan seperti yang terlihat melalui lensa kamera.

Storyboard juga berguna bagi editor untuk membantu menyusun scene yang berbeda- beda menjadi sesuai  dengan skenario  dengan lebih mudah dan cepat.

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.


 

Fungsi Storyboard
  • Menggambarkan sketsa cerita sebuah film/animasi berdasarkan garis besar seperti awal tengah akhir.
  • Memudahkan saat membuat film.
  • Merupakan perencanaan dalam membuat film (kalau dalam bangunan bisa disebut desain bangunan)


Referensi :

https://wikishare27.wordpress.com/pengantar-teknologi-game1/
https://www.academia.edu/3875722/Scripting_dalam_Pembuatan_Game



Komentar

Postingan populer dari blog ini

Sistem Keamanan Database Menggunakan MYSQL

User Interface pada Game Komputer