Technical Design Document - Infamous0192/slayer-angel GitHub Wiki

1 Introduction

Ini adalah sebuah game Idle 2D Endless Runner. Goal dari permainan adalah membunuh musuh sebanyak mungkin untuk mendapatkan resource untuk menjadi lebih kuat dan menyelesaikan Stage. Stage dari game ini memiliki 3 mode yaitu mode base (idle), mode runner (semi-idle) dan mode boss (action). Player dapat melakukan Upgrade pada Equipment dan Skill yang dimiliki.

1.1 Purpose & Objective

Tujuan dari Project ini adalah sebagai tugas akhir program Studi Independen dari Agate, yaitu membuat prototype sebuah game. Konsep dan ide yang kami ambil disini berdasarkan tugas dari Agate sebelumnya pada fase Pembuatan Konsep Game.

1.2 Project Scope

2 Technical Overview

Game ini akan mengimplentasikan fitur berikut:

  • Character Upgrade dan Skill Upgrade.
  • 2D Endless Runner dengan infinite scrolling.
  • Save Progress dari Player.
  • System checkpoint berdasarkan jarak yang ditempuh oleh player dalam satu stage.
  • Battle System (Melee Combat & Skill Casting)
  • Skill Slot.

2.1 Target System Requirement

  • Platform/OS: Android 5
  • RAM: 512 MB

2.2 Tools Used

User Tool Version
Programmer Unity 2020.3.16f
Programmer Android SDK Platform API 26

2.3 Engines & Middlewares

2.4 File Format

Type Format Description
Assets .png Digunakan untuk sprites dari game
Audio .wav Digiunakan untuk seluruh sound dari game
Code Script .cs Game Script

2.5 Technical Code

  • Platform/OS: Android OS
  • Programming Language: C#

3 Technical Feature

3.1 Save Progress Data

Progress dari pemain akan tersimpan di localStorage dan di cloud menggunakan platform firebase. Berikut adalah data pemain yang akan disimpan oleh sistem.

3.1.1 Player Stats

Berisikan stats dari player.

{
  "Gold": "double, jumlah gold yang dimiliki",
  "AttackPower": "double",
  "MaxHealth": "double",
  "MaxMana": "double",
  "CurrentHealth": "double",
  "CurrentMana": "double"
}

3.1.2 Stage Completion

Berisikan informasi Completion pada suatu Stage.

[
  {
    "Name": "string",
    "SceneName": "string",
    "Checkpoint": "Range[0, 1f]",
    "IsUnlocked": "boolean",
    "Distance": "double"
  }
]

3.1.3 Equipment Upgrade

Berisikan apa saja upgrade yang dimiliki oleh pemain.

[
  {
    "Name": "string",
    "Level": "string",
    "IsUnlocked": "boolean"
  }
]

3.1.4 Skills

Berisikan skill apa saja yang dimiliki pemain dan level dari skill tersebut.

[
  {
    "Name": "string",
    "Level": "string",
    "IsUnlocked": "boolean"
  }
]

3.1.5 Skill Slot

Berisikan slot skill pada karakter. Berupa array dengan panjang 4 atau maksimum slot dari skill.

[
  {
    "IsUnlocked": "boolean",
    "Skill": "[SKILL_CODE]"
  }
]

3.1.6 Base Upgrade

In Progress

3.1.7 Summary

{
  "Stats": {
    "Gold": "double, jumlah gold yang dimiliki",
    "AttackPower": "double",
    "MaxHealth": "double",
    "MaxMana": "double",
    "CurrentHealth": "double",
    "CurrentMana": "double"
  },
  "Stage": [
    {
      "Name": "string",
      "SceneName": "string",
      "Checkpoint": "Range[0, 1f]",
      "IsUnlocked": "boolean",
      "Distance": "double"
    }
  ],
  "Equipment": [
    {
      "Name": "string",
      "Level": "string",
      "IsUnlocked": "boolean"
    }
  ],
  "Skill": [
    {
      "Name": "string",
      "Level": "string",
      "IsUnlocked": "boolean"
    }
  ],
  "Slot": [
    {
      "IsUnlocked": "boolean",
      "Skill": "[SKILL_NAME]"
    }
  ]
}