Anda di halaman 1dari 14

Algoritma & Pemrograman

“FLYING GIRL”
MANUAL BOOK
Find out more about our program, a result of a final
assignment from the Algorithms and Programming course

Kelompok 8 TRSE A 2023


Kelompok
8

Kharisma Noverio Ramadhany


230935608548

Bayu Adjie Natalegawa


230935604580
Sheika Amanda Putri
220532704771
Daftar isi

04 Pendahuluan

05 Dasar Teori

07 Kerangka Program

08 Hasil

12 Pembahasan

13 Penutup
Abstrak

Dalam dunia perkembangan game yang dinamis saat ini, menciptakan Permainan Peran atau Role-
Playing Games (RPG) telah menjadi usaha yang kompleks. Kemunculan teknologi canggih, mesin game
yang kuat, dan adegan pengembangan game yang berkembang pesat telah membawa masuk era baru
bagi para penggemar dan pembuat RPG. Saat ini, proses pembuatan RPG melibatkan keseimbangan
yang halus antara cerita mendalam, pengembangan karakter yang rumit, dan mekanika permainan
yang canggih. Dalam mengembangkan game RPG menggunakan Unity dan bahasa pemrograman C#,
kita memasuki dunia yang dinamis dan penuh potensi kreatif. Unity, sebagai platform pengembangan
game terkemuka, menyediakan lingkungan yang kuat dan terintegrasi, yang memungkinkan
pengembang untuk merancang pengalaman game yang menarik dan imersif. C# dipilih sebagai bahasa
pemrograman utama karena kesejajaran dan dukungannya terhadap ekosistem Unity.

Kata kunci : game RPG, unity, C#

kok l¼t¼R ikl¼h¼Æh


Pembuatan game RPG sebagai bentuk implementasi pembelajaran algoritma pemrograman
menciptakan kesempatan yang unik untuk menggabungkan aspek kreativitas dan teknikal dalam
konteks yang menarik. Game RPG tidak hanya berfungsi sebagai produk hiburan, tetapi juga
sebagai wahana pembelajaran yang efektif untuk mengasah keterampilan pemrograman dan
algoritma. Dalam pengembangan game RPG, tujuan utama adalah menerapkan berbagai
algoritma pemrograman dengan cara yang praktis dan relevan.

Pengembangan game RPG dengan menggunakan Unity dan bahasa pemrograman C# menandai
penyatuan harmonis antara teknologi canggih dan kreativitas seni. Unity, sebagai platform
pengembangan game terkemuka, memberikan fondasi yang kokoh untuk mewujudkan visi
pengembang dalam menciptakan dunia fantasi yang mendalam. Bahasa C#, dengan sintaksisnya
yang bersih dan daya eksekusinya yang efisien, menjadi alat yang sangat efektif untuk
menangani logika permainan, sistem karakter, dan interaksi antarmuka pengguna yang
kompleks. Latar belakang ini mencerminkan aspirasi untuk memberikan pengalaman bermain
game yang tak terlupakan, di mana pemain dapat terlibat dalam naratif yang mendalam,
mengendalikan karakter yang berkembang, dan menjelajahi lingkungan yang penuh misteri.

koho tU4U¼Æ
1.2.1Memenuhi tugas Mata Kuliah Algoritma dan Pemrograman pada semester ganjil.
1.2.2Membantu mahasiswa dalam proses pembelajaran mata kuliah dasar Algoritma dan
Pemrogaman.
1.2.3Mengimplementasi hasil pembelajaran Algoritma dan Pemrograman
hok h¼Ak
Sebuah game adalah sebuah alat yang dimaksudkan untuk menjadi objek hiburan, dengan
memberikan hiburan dari unsurunsur yang terkandung pada game itu sendiri. Untuk
memberikan berbagai hiburan dengan rasa yang berbeda-beda, terbuatlah berbagai
macam genre game. Jenis-jenis game sebagai berikut:

a. Action Games
Merupakan jenis game yang paling lama di dunia. Arcade Game yang pertama kali muncul
sebagian besar merupakan action
games. Ciri-ciri action games antara lain:
• Berorientasi kecepatan dan refleks.
• Gameplay yang sederhana.
• Cocok bagi casual gamers.
• Contoh game ini : Mario Bross, Spiderman, Avatar, dan lainlain.

b. Strategy Games
Strategy games bermula dari sebuah board games. Strategy games menjadi salah satu
bentuk permainan yang paling menyerupai
bentuk permainan sebelum adanya game komputer. Ciri-ciri
dari strategy games antara lain:
• Berorientasi kepada logika dan sumber daya.
• Komputer memungkinkan manusia untuk bisa mengatur
sumberdaya yang ada dalam sebuah game yang tidak mungkin
bisa dilakukan di kehidupan nyata

c. Permainan peran
Role-Playing games seperti saudaranya yaitu strategi games merupakan jenis permainan
lainnya yang berasal dari sebuah permainan pena dan kertas (permainan yang
menggunakan kertas dan pena sebagai sarana bermain). Permainan bermain peran juga
bisa diklasifikasikan sebagai game petualangan dan juga mirip Arcade Games, namun yang
membedakannya antara lain:
• Lebih fokus pada pengembangan karakter, statistik, ineraksi antar karakter,
penyelesaian teka-teki, dan cerita
• Memiliki jalan cerita yang kuat.
• Cocok untuk gamer hardcore.
• Contoh game ini : Third Blade, Final Fantasy, Chaos Rings, dan lain-lain

d. Sports Games
Tidak seperti jenis game lain yang memberikan latar belakang tempat dan waktu di dunia
yang kurang dikenal oleh pemain, sports games berusaha meniru dunia yang dikenal oleh
pemain. Olahraga yang ada di dunia nyata berusaha dibuat ke dalam dunia virtual. Ciri-ciri
game jenis ini antara lain:
• Peraturan yang ada di olahraga nyata dipakai dalam game.
• Lebih menyenangkan bila dimainkan oleh banyak orang.
• Contoh game ini: FIFA, PES, Top Spin, dan lain-lain.

e. Vehicle Simulations
Game ini mencoba untuk menciptakan perasaan saat mengendarai sebuah kendaraan, baik
kendaraan bermotor, kapal layar, maupun pesawat terbang. Tujuan utama game ini adalah
memberikan pengalaman yang menyerupai asli saat bermain.
Contoh game ini : Cars, Asphalt, Need for Speed, dan lain-lain.

f. Constructions and Management Simulations


Merupakan jenis game yang mengutamakan proses. Tujuan utama dari pemain bukan
untuk mengalahkan musuh melainkan untuk membangun sesuatu untuk mencapai
sebuah tujuan contoh game: Sim City, Farmville, Tycoon Games, dan lain-lain.
g. Advanture Game
Game ini tidak memberikan sesuatu untuk diatur ataupun musuh untuk dikalahkan melalui
taktik dan strategi. Game ini lebih berorientasi sebagai cerita interaktif dari karakter utama
yang dikontrol oleh pemain. Sekarang ini pangsa pasar adventure games jauh lebih lambat
berkembang dibandingkan pangsa pasar genre game lainnya. Contoh game ini: So Blonde, Myst,
Indiana Jones, dan lain-lain.

h. Artificial Life
Aritificial Life merupakan sebuah cabang penelitian dari Teknik Informatika tepatnya dibidang
Artificial Intelligence. Game ini memberikan gambaran mengenai kehidupan nyata, karena di
dalam game diciptakan sebuah dunia virtual yang menyerupai asli dan di dalamnya terdapat
proses kehidupan. Contoh game ini antara lain: Sims, Sims Pets, dan lain-lain.

hoh Rbh
Role-Playing Game (RPG) adalah genre game yang menawarkan pengalaman unik di mana
pemain mengambil peran sebagai karakter fiksi dalam suatu dunia yang telah dirancang. Fokus
utama dari RPG adalah memberikan kebebasan kepada pemain untuk mengembangkan
karakter mereka, mengambil keputusan yang memengaruhi perkembangan cerita, dan
menjelajahi dunia yang seringkali kaya dengan detail. Pemain memiliki kendali atas evolusi
kemampuan dan statistik karakter mereka, meningkatkan tingkat keahlian, dan terlibat dalam
pertarungan yang dapat diatur baik secara real-time maupun turn-based. Dengan narasi yang
mendalam, pilihan moral yang berdampak, dan seringkali dunia terbuka untuk dijelajahi, RPG
menawarkan pengalaman bermain game yang mendalam dan memuaskan bagi mereka yang
mencari tantangan strategis dan keterlibatan emosional dalam cerita game. Dengan variasi
seperti Action RPG, Turn-Based RPG, MMORPG, dan lainnya, genre ini terus berkembang,
menghadirkan beragam pengalaman yang sesuai dengan preferensi pemain.

ho4 0#
C# (C-Sharp) adalah bahasa pemrograman modern yang dikembangkan oleh Microsoft,
dirancang untuk memfasilitasi pengembangan aplikasi yang kuat dan efisien di berbagai
platform. Sebagai bagian dari ekosistem pengembangan perangkat lunak .NET, C# menawarkan
sintaksis yang bersih dan mudah dipahami, membuatnya ideal untuk pengembangan aplikasi
berorientasi objek dan aplikasi web. C# sering digunakan untuk membuat berbagai jenis
perangkat lunak, termasuk aplikasi desktop, game, dan solusi perangkat lunak terkemuka
seperti aplikasi Windows dan layanan web.
Bahasa ini menawarkan fitur-fitur seperti manajemen memori otomatis, pengumpulan
sampah, dan dukungan yang kuat untuk pemrograman berorientasi objek. Keterbukaan C#
terhadap berbagai paradigma pemrograman dan integrasinya yang erat dengan teknologi
seperti Unity untuk game development, serta ASP.NET untuk pengembangan web,
menjadikannya pilihan yang populer di kalangan pengembang perangkat lunak yang mencari
keseimbangan antara kekuatan, produktivitas, dan keterbacaan kode. C# memainkan peran
kunci dalam pengembangan game pada Unity, sebuah mesin game populer yang digunakan
untuk membuat game berbagai jenis dan skala. C# memegang peranan integral dalam
pembuatan game RPG, khususnya pada platform pengembangan game populer seperti Unity.
Dikenal dengan sintaksis yang bersih dan dukungan terhadap pemrograman berorientasi objek,
C# memberikan kekuatan dan fleksibilitas kepada pengembang untuk merancang dan
mengimplementasikan elemen-elemen kunci dalam game RPG. Dalam konteks pembuatan
game RPG di Unity, C# digunakan untuk mengatur logika permainan, pengembangan karakter,
interaksi dalam dunia game, dan implementasi berbagai sistem, seperti manajemen quest,
pertarungan, dan kemampuan karakter.

Penggunaan C# dalam Unity juga memungkinkan integrasi yang mulus dengan alat
pengembangan Unity yang kuat, termasuk editor visual, animator, dan simulator permainan.
Selain itu, C# mendukung pengembangan game berorientasi objek, memungkinkan pemisahan
yang jelas antara berbagai komponen permainan, seperti karakter, objek, dan
lingkungan.Melalui C#, pengembang dapat memprogram AI karakter, merancang dialog
dinamis, dan mengontrol perkembangan cerita, menciptakan pengalaman RPG yang mendalam
dan menarik. Fleksibilitas C# juga memudahkan pengembang dalam menangani aspek teknis
seperti input pemain, manajemen sumber daya, dan sistem inventaris. Secara keseluruhan, C#
menjadi pilihan yang sangat sesuai untuk pengembangan game RPG di Unity, menyatukan
kemudahan pemrograman, kekuatan, dan efisiensi dalam menciptakan dunia virtual yang
penuh petualangan dan keterlibatan untuk para pemainnya.
ho4 U4rtσ
Unity adalah platform pengembangan permainan dan aplikasi yang telah menjadi salah satu alat
paling populer di industri kreatif digital. Dirancang untuk memudahkan pengembangan dan
desain permainan yang berkualitas, Unity menawarkan lingkungan yang kuat dan terintegrasi
yang dapat diakses oleh pengembang pemula hingga profesional. Keunggulan utama Unity
terletak pada kemampuannya untuk mendukung pengembangan lintas platform, termasuk PC,
konsol, perangkat seluler, dan bahkan perangkat realitas virtual dan augmented reality. Dengan
dukungan bahasa pemrograman seperti C# dan JavaScript, Unity memfasilitasi pembuatan game
dengan menyediakan antarmuka pengguna visual dan alat pengembangan yang intuitif.

Unity juga dikenal karena kemampuannya untuk menghasilkan grafis yang menarik dan realistis,
serta menyediakan solusi untuk efek visual dan animasi. Antarmuka Unity yang ramah pengguna
dan keberadaan komunitas pengembang yang besar membuatnya menjadi pilihan yang ideal
untuk mereka yang ingin memasuki dunia pengembangan game atau membuat aplikasi
multimedia interaktif. Kesuksesan Unity dalam mendukung proyek-proyek besar dan kecil
membuatnya menjadi platform unggulan bagi pengembang di berbagai tingkatan keahlian,
menciptakan lingkungan yang mendukung kreativitas, inovasi, dan pembelajaran di industri
game dan pengembangan aplikasi interaktif.

4ok ¼lhOR 亞 tA¼


Algoritma dari program ini adalah:
Start
Input dari keyboard
Pergerakan karakter Rotasi sesuai arah pergerakan mouse
Menghilangkan karakter dengan menekan tombol “M”
Memunculkan Kembali karakter dengan menekan tombol “N”
Bergerak secara konstan horizontal dengan menekan tombol “K”
Bergerak vertical keatas ketika ditekan tombol “L”
Melompat saat tombol “space” ditekan
Selesai

4oh hlOh0D¼Rt
4ok 4OUR0k 0ODk
using UnityEngine;

public class PlayerController : MonoBehaviour


{
public float moveSpeed = 5f;
public float rotationSpeed = 500f;
public float jumpForce = 10f;

private bool isJumping = false;


private bool isMovingHorizontal = false;
private bool isHidden = false;
private Vector3 initialPosition;

void Start()
{
initialPosition = transform.position;
}

void Update()
{
// Input dari keyboard
float horizontalInput =
Input.GetAxis("Horizontal"); float verticalInput =
Input.GetAxis("Vertical");

// Input dari mouse


Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 directionToMouse = mousePos - transform.position;
float angle = Mathf.Atan2(directionToMouse.y, directionToMouse.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);

// Pergerakan karakter
Vector3 movement = new Vector3(horizontalInput, verticalInput, 0f);

// Gerak horizontal konstan saat tombol "K" ditekan


if (Input.GetKey(KeyCode.K))
{
isMovingHorizontal = true;
movement.x = 1f;
}
else
{
isMovingHorizontal = false;
}

// Menghilangkan karakter saat tombol "M" ditekan


if (Input.GetKeyDown(KeyCode.M))
{
isHidden = true;
gameObject.SetActive(false);
}

}
// Munculkan kembali karakter saat tombol "N" ditekan
if (Input.GetKeyDown(KeyCode.N))
{
isHidden = false;
gameObject.SetActive(true);
transform.position = initialPosition; // Set posisi awal
}

// Pergerakan karakter hanya jika tidak sedang menghilang


if (!isHidden)
{
transform.Translate(movement * moveSpeed * Time.deltaTime);

// Rotasi sesuai dengan arah pergerakan mouse


if (movement.magnitude > 0.1f && !isMovingHorizontal)
{
float step = rotationSpeed * Time.deltaTime;
Quaternion newRotation = Quaternion.LookRotation(Vector3.forward, directionToMouse);
transform.rotation = Quaternion.RotateTowards(transform.rotation, newRotation, step);
}
}

// Gerak vertikal ke atas saat tombol "L" ditekan


if (Input.GetKey(KeyCode.L))
{
transform.Translate(Vector3.up * moveSpeed * Time.deltaTime);
}

// Melompat saat tombol "Space" ditekan


if (Input.GetKeyDown(KeyCode.Space) && !isJumping)
{
isJumping = true;
GetComponent<Rigidbody2D>().AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);

// Invoke kembali ke posisi awal setelah 0.5 detik


Invoke("ResetJump", 0.5f);
}
}

void ResetJump()
{
isJumping = false;
}
4,h bR 亞 Nt40RkkN
Berikut disajikan hasil tampilan layar dari kode program
Dalam pengembangan game RPG kami di Unity menggunakan C#, kami telah
menemukan bahwa pemilihan C# sebagai bahasa pemrograman memberikan keuntungan
yang signifikan dalam hal kejelasan sintaksis dan dukungan terhadap paradigma Object-
Oriented Programming (OOP). Kelebihan ini memudahkan untuk mengorganisir dan
mengelola entitas-entitas dalam permainan, seperti karakter gadis perempuan kami yang
berlari dan terbang menangkap kertas berserakan.

Algoritma dalam menciptakan gameplay yang menarik sangatlah penting. C# menjadi


alat yang kuat untuk mengimplementasikan algoritma-algoritma tersebut, mulai dari
deteksi kertas berserakan, pengaturan pergerakan karakter, hingga sistem skor. Dengan
memanfaatkan fitur-fitur OOP, sehingga dapat dirancang game dengan terstruktur.

Kaitan antara C# dan Unity Engine juga merupakan faktor kunci program ini. Integrasi
yang lancar memungkinkan untuk mengakses berbagai fitur dan alat yang disediakan oleh
Unity secara langsung. Ini termasuk manipulasi objek dalam dunia permainan,
implementasi animasi, dan koordinasi antar skrip, yang semuanya dapat diakses dan
diatur dengan menggunakan C#.

Penggunaan C# juga memungkinkan untuk menyusun gameplay yang responsif dan


dinamis. Kemampuan bahasa ini untuk mengelola struktur data dan logika kontrol alur
program memberikan keleluasaan dalam mengatur logika permainan, menciptakan
pengalaman yang menyenangkan bagi para pemain.
6ok hk4 亞 AbUl¼Æ
Algoritma yang diterapkan dengan cermat membentuk dasar dari logika gameplay, memastikan
responsivitas dalam interaksi pemain dengan karakter dan objek. Kemampuan pemrograman dengan
C# memberikan kami keleluasaan untuk menggali kreativitas dalam desain gameplay. Dengan
pendekatan berorientasi objek, kami dapat dengan mudah menyusun dan mengelola elemen-elemen
game seperti karakter, mekanika permainan, dan alur cerita, menciptakan pengalaman bermain yang
unik dan memikat.

Selain itu, optimalisasi kinerja game menjadi mungkin berkat algoritma yang efisien. Pemrograman
dengan C# secara bijak membantu mengelola sumber daya perangkat keras dan meminimalkan waktu
pemrosesan, sehingga menjaga kinerja game tetap lancar, terutama saat melibatkan grafis dan fisika
yang kompleks. Pentingnya C# juga tercermin dalam integrasinya dengan Unity Engine. Bahasa
pemrograman ini memberikan kemudahan dalam mengakses dan memanfaatkan fitur-fitur yang
disediakan oleh mesin game, seperti visualisasi grafis, manajemen suara, dan berbagai alat
pengembangan lainnya. Dengan struktur yang terstruktur dan berorientasi objek, pemeliharaan dan
pengembangan lanjutan proyek game menjadi lebih mudah. C# memfasilitasi proses penambahan
fitur baru, perbaikan bug, dan penyesuaian gameplay dengan efisiensi yang tinggi.

6oh 4¼R¼Æ
Sebagai siswa yang sedang terus belajar, kami menyadari bahwa hasil dari tugas besar kami
sangatlah jauh dari kata sempurna. Diperlukan banyak perbaikan dan pengembangan guna
mendapatkan hasil maksimal yang sesuai dengan keinginan kami. Oleh karena itu, kritik dan
saran yang membangun dari pembaca sangat kami perlukan demi meningkatkan kualitas
karya kami. Setiap masukan akan menjadi landasan yang berharga bagi kami untuk tumbuh
dan berkembang dalam kemampuan akademik kami. Kami dengan rendah hati menerima
setiap kritik konstruktif sebagai kesempatan untuk belajar dan memperbaiki diri. Dengan
semangat belajar yang tinggi, kami yakin bahwa melalui proses perbaikan ini, kami dapat
menghasilkan karya yang lebih baik dan memuaskan. Terima kasih atas dukungan dan
bimbingan yang diberikan oleh pembaca demi kemajuan kami dalam dunia akademis.
D¼FT¼R bU4T¼h¼

1. Rollings, Andrew dan Adams, Ernest. 2003. Andrew Rollings and


Ernest Adams on Game Design. New Riders.

2. Hosea, R., Budhi,, G., & Santoso, L. 2017. Pembuatan Game RPG
Multiplayer Online Berbasis Android. Jurnal, Vol 5, No 1 (2017)

3. Hadisopyan, Suhendra. A., Rantelinggi. C.R., Parma Hadi. Membuat


Game 3d Survival Horror “Suanggi Survival Papua” Berbasis Desktop
Menggunakan Unity. Informal: Informatics Journal, Vol 5, no 3, 96 -
105
(2020)

Anda mungkin juga menyukai