-
Notifications
You must be signed in to change notification settings - Fork 2
Technical Design Document
Time | Version | Author | Changes |
---|---|---|---|
04 - 10 - 2021 | 0.0 | Evander Christian Dumalang | Initial Document |
04 - 10 - 2021 | 1.0 | Evander Christian Dumalang | Adding Chapter 1 and Chapter 2 |
05 - 10 - 2021 | 2.0 | Evander Christian Dumalang | Adding Chapter 3 and Chapter 4 |
06 - 10 - 2021 | 3.0 | Evander Christian Dumalang | Adding Chapter 5, Chapter 6, and Chapter 7 |
06 - 10 - 2021 | 4.0 | Evander Christian Dumalang | Finishing Document |
- Template Version history
- Content Version History
- Table of Content
- Introduction
- 1.1 Purpose & Objective
- 1.2 Project Scope
- Technical Overview
- 2.1 Target System Requirements
- 2.2 Tools Used
- 2.3 Engines & Middleware
- 2.4 File Format
- 2.5 Technical Code
- Technical Feature
- 3.1 Auto Collect
- 3.1.1 Solution 1
- 3.1.2 Solution 2
- 3.1.3 Selected Implementation
- 3.2 Saving Data
- 3.2.1 Solution 1
- 3.2.2 Solution 2
- 3.2.3 Selected Implementation
- Technical Design
- 4.1 System Architecture
- 4.2 Class Diagram
- Administrative Data
- 5.1 Server
- Reusable Codes
- 6.1 public enum AchievementType
- 6.1.1 Description
- 6.1.2 How to Use
- 6.2 UserDataManager.Save(bool uploadToCloud = false)
- 6.2.1 Description
- 6.2.2 How to Use
- 6.3 UserDataManager.Progress.Gold
- 6.3.1 Description
- 6.3.2 How to Use
- 6.4 GameManager.AddGold(double value)
- 6.4.1 Description
- 6.4.2 How to Use
- Other Notes
Incremental game merupakan game casual idle clicker di mana pemain diharuskan untuk menekan koin berkali-kali untuk menambahkan jumlah koin yang dimiliki juga dengan meningkatkan level pada game, pemain akan mendapatkan lebih banyak koin pada game. Game ini akan mengsimulasikan ilmu fisika (physics) di dalamnya, serta mengimplementasikan konsep inheritance dalam Object-Oriented Programming (OOP).
Incremental game ditargetkan untuk pemain casual, terutama untuk pemain yang sibuk dan hanya bisa bermain disela-sela kesibukan aktifitas para pemain. Target utama game ini adalah untuk mendapatkan koin yang banyak serta untuk menaikkan level skill di game agar mendapatkan koin yang lebih banyak lagi.
Pada game ini akan diimplementasikan fitur-fitur berikut:
- Membuat bagian di mana pemain dapat tapping secara terus menerus
- Membuat auto collect koin pada game
- Membuat UI untuk koin dan auto collect
- Membuat unlock level dan level pada game
- Membuat achievement
- Save local dan cloud
Users | Tool | Use |
---|---|---|
Prog | Unity | Ver 2018.3.3f1 |
Prog | Firebase | Ver 8.3.0 |
Prog | Visual Studio Community 2019 | Ver 16.11.2 |
Game ini akan dibuat dengan menggunakan Unity2D game engine. Physics dalam game pun akan menggunakan fitur Physics2D dari Unity untuk mempermudah pengerjaan, serta menggunakan Firebase untuk storage save files dan analytics untuk analisis penggunaan aplikasi.
File Type | Extension | Use |
---|---|---|
Asset | .png | Image used in game |
Code Script | .cs | Game Script |
Unity Package | .unitypackage | Unity Package |
Json | .json | File Setting Firebase |
Type | Description |
---|---|
Platform | Android Mobile |
Programming Language | C# |
Auto Collect dibuat untuk mengumpulkan koin secara otomatis tanpa menekan koin utama
Auto collect akan secara otomatis menambah jumlah koin yang dimiliki pemain tiap detiknya secara terus menerus ketika pemain aktif
Auto collect bisa ditingkatkan dengan mengikuti level dari pemain makin tinggi maka akan makin besar jumlah koin yang bisa dikumpulkan secara otomatis
Solusi kedua lebih meningkatkan semangat pemain untuk menaikkan level dibandingkan solusi pertama dimana solusi pertama memiliki jumlah pasti dalam mengumpulkan koin
Menyimpan data agar ketika game dimainkan pemain tidak mengulang dari awal
Menyimpan data secara luring langsung dalam perangkat sehingga cepat digunakkan
Menyimpan data secara daring agar data aman sehingga tidak terjadi masalah pada data
Solusi pertama dan kedua sangat bagus karena ketika luring file tetap bisa disimpan, dan akan diupload ketika daring
Item | Value | Note |
---|---|---|
Host IP | Dynamic IP | Tidak mempunyai IP pasti karena selalu berganti |
Domain Name | gs://dilo---incremental-game-8d168.appspot.com/ | Domain storage firebase |
Google Account | Evansimba666@gmail.com | Akun google yang digunakan |
Modul ini digunakan untuk menambah tipe achievement pada game
Tipe achievement bisa ditambah misalkan jumlah koin yang dimiliki maka dengan menambahkan GoldAmount dan dibuat logikanya ketika pemain mencapai jumlah koin tertentu maka pemain mendapat achievement yang menandakan player mencapai jumlah koin tertentu (500 koin, 5000 koin, dll)
Modul digunakan untuk menyimpan progress pemain dalam game secara luring dan secara daring
Penyimpanan dilakukan dengan memanggil modul ini, apabila ingin menyimpan secara daring maka kita beri value true
pada modul ini
Modul digunakan untuk menyimpan jumlah koin pada game, jumlahnya akan bertambah secara terus menerus dan akan berkurang jika digunakan untuk membeli level di game
Penambahan koin pada game jika kita menekan koin utama secara berulang-ulang dan akan berkurang jika pemain membeli level pada game dan jika koin belum tercapai jumlahnya untuk membeli level maka pemain tidak akan bisa membeli level itu
Modul digunakan untuk menambah koin pada game, modul UserDataManager.Progress.Gold
dipanggil untuk menyimpan jumlah koin yang sudah dimiliki dan akan disimpan secara luring pada UserDataManager.Save(bool uploadToCloud = false)
dan daring pada UserDataManager.Save(bool uploadToCloud = true)
Modul digunakan ketika pemain ingin menambah jumlah koin pada game dan akan berkurang jika player membeli level pada game dengan memanggil modul GameManager.Instance.AddGold(-upgradeCost)
Pembuatan game ini menggunakan package Firebase Storage dan Firebase Analytics dengan versi Firebase 8.3.0