GAME DEVELOPMENT
Oleh
NIM 1515051061/6A
SINGARAJA
2018
PEMBUATAN GAME
“BATTLE TANK ARENA”
A. Software Pendukung
a. Unity
Unity merupakan engine utama yang digunakan dalam
pembuatan game “Battle Tank Arena”. Alasan memilih Unity
karena adanya banyak tutorial yang dapat membantu dalam
penyelesaian sintak-sintak yang tidak dipahami. Berikut tampilan
dari engine Unity tersebut.
b. Tiled
Tiled digunakan untuk membangun sebuah envirotment atau
map agar lebih mudah dan cepat. Keunggulan dari software ini bias
langsung menambah collision dan boundary sehingga tidak perlu
menambahkan lagi pada unity. Berikut tampilan software Tiled.
c. Tiled2Unity
Tiled2Unity merupakan plugin untuk melakukan import
map yang sudah kita buat menggunakan software Tiled. Berikut
tampilan Tiled 2Unity.
B. Game Asset
a. Sprite
i. Player
ii. Bullet
b. Tile
Tile digunakan dalam pembuatan peta atau map. Untuk
kedua asset tersebut bias didownload pada situs kenny.nl
C. Pembuatan Game
a. Map
Pembuatan map menggunakan Tiled kemudian di import
menggunakan Tiled2Unity sehingga lebih mudah dan cepat dalam
pembuatan map.
b. Sprite
Untuk pembuatan sprite saya mendownload asset yang
sudah ada pada situs kanny.nl. untuk editingnya saya menggunakan
sprite editor.
c. Setup Player
Untuk setup pada player ada beberapa hal yang perlu
ditambahkan pada sprite player. Tambahkan komponen yang
ditunjukkan pada gambar dibawah ini.
if (isLocalPlayer){
myCamera.depth = 1;
}
bool isLocal () {
return isLocalPlayer;
}
void FixedUpdate () {
// Rotate Tank
if (!isLocalPlayer)
{
return;
}
Quaternion rot = transform.rotation;
float z = rot.eulerAngles.z;
z -
= Input.GetAxis ("Horizontal") * rotSpeed * Time.del
taTime;
transform.rotation = rot;
z -
= Input.GetAxis ("Horizontal") * rotSpeed * Time.del
taTime;
transform.rotation = rot;
transform.position = pos;
void Start () {
if (isLocalPlayer) {
cooldownTimer -= Time.deltaTime;
if (Input.GetButtonDown ("Fire1") && coo
ldownTimer <= 0) {
CmdFire ();
AudioSource audio = GetComponent<Aud
ioSource> ();
audio.PlayOneShot (fire);
}
// Update is called once per frame
void Update () {
if (isLocalPlayer) {
cooldownTimer -= Time.deltaTime;
if (Input.GetButtonDown ("Fire1") && coo
ldownTimer <= 0) {
CmdFire ();
AudioSource audio = GetComponent<Aud
ioSource> ();
audio.PlayOneShot (fire);
}
}
}
[Command]
void CmdFire(){
Debug.Log ("Pew");
cooldownTimer = fireDelay;
bullet.GetComponent<Rigidbody2D> ().velocity
= bullet.transform.up * maxSpeed;
NetworkServer.Spawn (bullet);
Destroy (bullet, 2.0f);
}
}
[SyncVar(hook = "OnChangeHealth")]
public int currentHealth = maxHealth;
void Start () {
if (isLocalPlayer) {
myHealth.gameObject.SetActive (true);
} else {
myHealth.gameObject.SetActive (false);
}
void Start () {
if (isLocalPlayer) {
myHealth.gameObject.SetActive (true);
} else {
myHealth.gameObject.SetActive (false);
}
currentHealth -= amount;
if (currentHealth <= 0)
{
currentHealth = maxHealth;
[ClientRpc]
void RpcRespawn()
{
if (isLocalPlayer)
{
// move back to zero location
Destroy(gameObject);
result.gameObject.SetActive (true);
if (!isLocalPlayer)
{
Destroy(gameObject);
Score.score += 10;
}
}
}
d. Bullet Setup
Untuk setup pada bullet ada beberapa hal yang perlu
ditambahkan pada sprite bullet. Tambahkan komponen yang
ditunjukkan pada gambar dibawah ini.
Network Identity berfungsi untuk memberikan identitas pada
bullet.
using UnityEngine;
using System.Collections;
Destroy(gameObject);
}
}
f. Splash Screen
Splash screen adalah bagian yang paling mudah dalam
pembuatan game karena sudah bisa kita edit padagame setting.
g. Main Menu
Main menu atau lobby manager ini bisa didownload pada
unity asset dan kemudian diimport kedalam asset game. Untuk
penggunaannya sangat mudah, hanya tinggal mengakses scane yang
akan kita jalankan dan jangan lupa prefabs player yang akan
dimaikan juga diinputkan.