Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Game Development
  2. Platform Agnostic
Gamedevelopment

Menyelesaikan Kekecewaan Pemain: Teknik untuk Generasi Nombor Rawak

by
Length:MediumLanguages:

Malay (Melayu) translation by Adjatay Bashroh Aldad (you can also view the original English article)

Sekiranya anda membuat perbualan dengan peminat RPG, tidak lama lagi anda akan mendengar bunyi bising tentang keputusan rawak dan rompakan—dan bagaimana mereka boleh mengecewakan. Ramai pemain telah membuat kerengsaan ini diketahui, dan sesetengah pemaju telah mencipta penyelesaian yang inovatif, ramai yang masih memaksa kami melalui ujian ketakutan yang berleluasa.

Ada cara yang lebih baik. Dengan mengubah cara kami sebagai pemaju menggunakan nombor rawak dan penjana mereka, kami dapat mencipta pengalaman menarik yang mendorong kesukaran yang ''sempurna'' itu tanpa mendorong pemain ke tepi. Tetapi sebelum kita masuk ke dalamnya, mari kita lihat beberapa asas Rawak Nombor Rawak (atau RNGs untuk pendek).

Generator Nombor Rawak dan Penggunaannya

Nombor rawak ada di sekeliling kita, digunakan untuk menambah variasi pada perisian kami. Secara umum, penggunaan utama RNG adalah untuk mewakili peristiwa kacau-bilau, menunjukkan kemeruapan, atau berkelakuan sebagai pengatur tiruan.

Anda mungkin berinteraksi dengan nombor rawak, atau keputusan tindakan mereka, setiap hari. Mereka digunakan dalam percubaan saintifik, permainan video, animasi, seni, dan hampir setiap aplikasi di komputer anda. Sebagai contoh, RNG mungkin dilaksanakan dalam animasi asas pada telefon anda.

Sekarang bahawa kita telah membincangkan tentang apa yang RNG, mari kita perhatikan pelaksanaannya dan bagaimana ia boleh memperbaiki permainan kita.

Penjana Nombor Rawak Standard

Hampir setiap bahasa pengaturcaraan menggunakan Standard RNG dalam fungsi asas. Ia berfungsi dengan mengembalikan nilai rawak antara dua nombor. RNG standard boleh dilaksanakan dalam berpuluh-puluh cara yang berbeza di seluruh sistem yang berbeza, tetapi semuanya mempunyai kesan yang sama pada umumnya: mengembalikan nombor rawak di mana setiap nilai dalam julat mempunyai peluang yang sama untuk dikembalikan.

Untuk permainan, ini biasanya digunakan untuk mensimulasikan rolling dice. Idealnya, ia hanya boleh digunakan dalam situasi di mana setiap keputusan diinginkan untuk berlaku bilangan kali yang sama.

Jika anda ingin mencuba dengan kadar rawak yang jarang atau berbeza, kaedah seterusnya ini lebih sesuai untuk anda.

Nombor Rawak Berjumlah dan Slot Ringan

Jenis RNG ini adalah asas bagi RPG dengan perkara yang jarang berlaku. Khususnya, apabila anda memerlukan keputusan yang rawak tetapi mahu beberapa berlaku dengan kekerapan yang kurang daripada yang lain. Dalam kebanyakan kelas kebarangkalian, ini biasanya diwakili dengan beg guli. Dengan RNG berwajaran, beg anda mungkin mempunyai tiga kelereng biru dan satu merah. Oleh kerana kita hanya mahu satu marmar, kita akan mendapat satu merah atau satu biru, tetapi ia lebih cenderung untuk menjadi biru.

Mengapa penselisan berwajaran penting? Mari menggunakan acara dalam permainan SimCity sebagai contoh. Sekiranya setiap peristiwa dipilih dengan menggunakan kaedah bukan berwajaran, maka potensi untuk setiap kejadian berlaku secara statistik. Itu menjadikannya seperti mungkin untuk mendapatkan cadangan untuk kasino baru untuk mengalami gempa dalam permainan. Dengan menambah berat badan, kita dapat memastikan bahawa peristiwa-peristiwa ini berlaku dalam jumlah yang berkadar yang mengekalkan permainan.

Borang dan Kegunaannya

Pengkelasan Item Sama

Dalam banyak kursus atau buku sains komputer, kaedah ini sering disebut sebagai 'beg'. Nama itu cantik di hidung, menggunakan kelas atau objek untuk membuat representasi maya dari tas literal.

Ia berfungsi pada dasarnya seperti ini: terdapat sebuah bekas yang objek boleh diletakkan ke dalam tempat ia disimpan, suatu fungsi untuk meletakkan objek ke dalam 'tas', dan fungsi untuk secara rawak memilih item dari 'tas'. Untuk merujuk kepada contoh marmar kami, ini bermakna anda akan merawat beg anda seperti yang mengandungi satu marmar biru, satu marmar biru, satu marmar biru, dan satu marmar merah.

Dengan menggunakan kaedah pensampelan ini, kita boleh menentukan kadar di mana hasilnya dapat membantu mengasingkan pengalaman setiap pemain. Jika kita memudahkan keputusan pada skala dari 'Sangat Buruk' kepada 'Sangat Baik', sekarang kami membuatnya lebih berdaya maju bahawa seorang pemain akan mengalami rentetan hasil yang tidak diingini (seperti menerima keputusan 'Sangat Buruk' 20 kali berturut-turut).

Walau bagaimanapun, ia masih mungkin secara statistik untuk menerima satu siri hasil yang tidak baik, hanya semakin kurang. Kami akan melihat satu kaedah yang berjalan sedikit demi sedikit untuk mengurangkan hasil yang tidak diingini tidak lama lagi.

Berikut adalah contoh pseudocode yang cepat tentang apa yang kelihatan seperti kelas beg:

Pelaksanaan Slot Rarity

Sama seperti pelaksanaan pengelompokan dari sebelumnya, slotting jarang adalah kaedah penyeragaman untuk menentukan kadar (biasanya untuk membuat proses reka bentuk permainan dan ganjaran pemain lebih mudah untuk dipelihara).

Daripada individu menentukan kadar setiap item dalam permainan, anda akan mencipta perwakilan yang jarang — di mana kadar 'Biasa' mungkin mewakili 20 pada peluang X hasil tertentu, sedangkan 'Rare' mungkin mewakili 1 dalam Peluang X.

Kaedah ini tidak banyak mengubah fungsi sebenar beg itu sendiri, tetapi sebaliknya boleh digunakan untuk meningkatkan kecekapan pada penghujung pemaju, yang membolehkan sejumlah besar item dengan cepat diberikan peluang statistik.

Di samping itu, slotting jarang berguna dalam membentuk persepsi pemain, dengan mudah membenarkan mereka memahami betapa kerapnya suatu peristiwa mungkin berlaku tanpa menghapuskan rendaman mereka menerusi angka yang mengejutkan.

Berikut adalah contoh mudah tentang bagaimana kita boleh menambah lekapan jarang ke beg kami:

Nombor Rawak Kadar Variabel

Kami telah membincangkan beberapa cara yang paling biasa untuk menangani rawak dalam permainan, jadi mari kita menyelidiki sesuatu yang lebih maju. Konsep menggunakan kadar pembolehubah bermula sama dengan beg dari sebelumnya: kita mempunyai bilangan hasil yang ditetapkan, dan kita tahu berapa kerap kita mahu mereka berlaku. Perbezaan dengan pelaksanaan ini adalah kita mahu menyesuaikan potensi hasil apabila ia berlaku.

Mengapa kita mahu melakukan ini? Ambil, contohnya, permainan dengan aspek yang boleh ditagih. Jika anda mempunyai sepuluh hasil yang mungkin untuk item yang anda terima, dengan sembilan yang ''umum'' dan satu yang ''jarang'', maka peluang anda cukup mudah: 90% dari masa, seorang pemain akan mendapatkan yang biasa, dan 10% masa mereka akan mendapat yang jarang berlaku. Isu ini berlaku apabila kita mengambil kira beberapa cabutan.

Mari lihat peluang anda untuk melukis satu siri hasil yang biasa:

  • Pada cabutan pertama anda, terdapat peluang 90% untuk melukis bersama.
  • Pada dua seri, terdapat peluang 81% untuk menarik semua maklumat.
  • Pada 10 undian, masih terdapat kemungkinan 35% semua komon.
  • Pada 20 undian, terdapat peluang 12% untuk semua komuniti.

Nisbah awal 9: 1 seolah-olah menjadi kadar ideal pada mulanya, ia hanya berakhir mewakili hasil purata, dan meninggalkan 1 dalam 10 pemain yang menghabiskan dua kali lebih lama untuk tujuan yang jarang berlaku. Selain itu, 4% pemain akan menghabiskan masa tiga kali untuk mendapatkan yang jarang, dan 1.5% yang malang akan menghabiskan masa empat kali lebih lama.

Bagaimana Kadar Variabel Menyelesaikan Isu Ini

Penyelesaian ini melaksanakan pelbagai jarang pada objek kami. Anda melakukannya dengan mendefinisikan kedua-dua lekukan maksimum dan minimum untuk setiap objek (atau slot jarang, jika anda ingin menggabungkannya dengan contoh terdahulu). Sebagai contoh, mari kita berikan item biasa kami dengan nilai jarang yang jarang 1, dengan maksimum 9. Orang jarang akan mempunyai nilai minimum dan maksimum 1.

Sekarang, dengan senario dari sebelumnya, kita akan mempunyai sepuluh item, dan sembilan daripadanya adalah satu contoh umum, sementara salah seorang daripadanya adalah jarang. Pada cabutan pertama, terdapat peluang 90% mendapat kesamaan. Dengan kadar yang berubah-ubah sekarang, selepas yang biasa ditarik, kita akan menurunkan nilai jarangnya dengan 1.

Ini menjadikan seri seterusnya kami mempunyai sembilan item, lapan daripadanya adalah perkara biasa, memberikan peluang 89% untuk melukis bersama. Selepas setiap keputusan yang biasa, jarang item itu jatuh, menjadikannya lebih cenderung untuk menarik yang jarang berlaku sehingga kita tutup dengan dua item dalam beg itu, satu yang biasa dan satu yang jarang berlaku.

Sedangkan sebelum ada kemungkinan 35% lukisan 10 komun berturut-turut, kini hanya terdapat peluang 5%. Untuk keputusan luar, seperti lukisan 20 wang secara berturut-turut, kemungkinan kini dikurangkan kepada 0.5%, dan lebih jauh lagi. Ini menghasilkan hasil yang lebih konsisten untuk pemain kami, dan menghalang kes-kes kelebihan di mana pemain berulang kali mempunyai hasil yang buruk.

Membina Kelas Kadar Variabel

Pelaksanaan kadar pembolehubah yang paling asas adalah untuk mengeluarkan item dari beg, bukannya sekadar mengembalikannya, seperti ini:

Walaupun versi mudah itu membawa beberapa isu (seperti beg akhirnya mencapai keadaan rawak standard), ia mewakili perubahan kecil yang dapat membantu menstabilkan keputusan rawak.

Pengembangan pada Idea

Walaupun ini merangkumi idea asas kadar ubahsuaian, masih terdapat beberapa perkara yang perlu dipertimbangkan untuk pelaksanaan anda sendiri:

  • Mengeluarkan barang-barang dari beg membantu menghasilkan keputusan yang konsisten, tetapi akhirnya kembali kepada isu-isu yang rawak standard. Bagaimanakah kita boleh membentuk fungsi untuk membolehkan kedua-dua kenaikan dan penurunan item untuk menghalangnya?

  • Apa yang berlaku apabila kita berurusan dengan ribuan atau berjuta-juta item? Menggunakan beg yang diisi dengan beg boleh menjadi penyelesaian untuk ini. Contohnya, membuat beg untuk setiap jarang (semua barangan biasa dalam satu beg, rentak yang lain) dan meletakkan setiap orang ke dalam slot dalam beg besar boleh memberikan banyak peluang baru untuk manipulasi.

Kes untuk Nombor Random Random

Banyak permainan masih menggunakan generasi nombor rawak standard untuk menimbulkan kesukaran. Dengan berbuat demikian, sistem dicipta di mana separuh daripada pengalaman pemain jatuh pada kedua-dua belah pihak yang dimaksudkan. Sekiranya dibiarkan, ini mencipta potensi untuk kes-kes kelebihan pengalaman mengulangi buruk yang berlaku pada jumlah yang tidak dikehendaki.

Dengan mengehadkan jarak sejauh mana keputusan dapat menyimpang, pengalaman pengguna yang lebih padu dipastikan, membiarkan sebilangan besar pemain menikmati permainan anda tanpa kebiasaan yang berterusan.

Mengakhiri

Generasi nombor rawak adalah ruji reka bentuk permainan yang baik. Pastikan anda menyemak semula statistik anda dan melaksanakan jenis generasi terbaik untuk setiap senario untuk meningkatkan pengalaman pemain.

Adakah anda suka kaedah lain yang saya tidak tutup? Mempunyai soalan mengenai generasi nombor rawak dalam reka bentuk permainan anda sendiri? Tinggalkan saya komen di bawah, dan saya akan melakukan yang terbaik untuk kembali kepada anda.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.