Betshelter Id Number Indonesia 2023 Terbaru Code
Menyelesaikan Player Frustration: Teknik untuk Random Number Generation
Menyelesaikan Player Frustration: Teknik untuk Random Number Generation Jika Anda memulai percakapan dengan penggemar RPG, Anda tidak perlu waktu lama untuk mendengar kata-kata kasar tentang hasil dan penjarahan acak — dan betapa menyebalkannya mereka. Banyak gamer telah membuat iritasi ini dikenal, dan sementara beberapa developers telah menciptakan solusi inovatif, banyak yang masih memaksa kita melalui tes kegigihan yang menyebalkan. Ada cara yang lebih baik. Dengan mengubah cara kita sebagai developers menggunakan angka acak dan generator mereka, kita dapat menciptakan pengalaman menarik yang mendorong kesulitan “perfect” tanpa mendorong pemain melewati batas. Namun sebelum kita membahasnya, mari kita bahas beberapa dasar dari Random Number Generator (atau RNGs singkat). The Random Number Generator dan penggunaannya Random numbers ada di sekitar kita, digunakan untuk menambahkan variasi ke software kita. Secara umum, penggunaan utama RNGs adalah untuk mewakili peristiwa kacau, menunjukkan volatilitas, atau berperilaku sebagai limiter buatan. Anda mungkin berinteraksi dengan random numbers, atau hasil dari tindakan mereka, setiap hari. Mereka digunakan dalam uji coba ilmiah, permainan video, animasi, seni, dan hampir semua aplikasi di komputer Anda. Misalnya, RNG kemungkinan diterapkan dalam animasi dasar di ponsel Anda. Sekarang setelah kita berbicara tentang apa itu RNG, mari kita lihat penerapannya dan bagaimana itu dapat meningkatkan permainan kita . Standar Random Number Generator Hampir setiap bahasa pemrograman menggunakan RNG Standar dalam fungsi-fungsi dasar. Ia bekerja dengan mengembalikan nilai acak antara dua angka. RNG Standar dapat diimplementasikan dalam lusinan cara yang berbeda di seluruh sistem yang berbeda, tetapi mereka semua umumnya memiliki efek yang sama: mengembalikan nomor acak di mana setiap nilai dalam rentang memiliki kesempatan yang sama untuk dikembalikan. Untuk permainan, ini biasanya digunakan untuk mensimulasikan dadu bergulir. Idealnya, mereka hanya boleh digunakan dalam situasi di mana setiap hasil diinginkan untuk terjadi dalam jumlah yang sama. Jika Anda ingin bereksperimen dengan kelangkaan atau tingkat pengacakan yang berbeda, metode selanjutnya ini lebih cocok untuk Anda. Random Numbers Berbobot dan Rarity Slotting Jenis RNG ini adalah dasar untuk RPG apa pun dengan kelangkaan barang. Khususnya, ketika Anda membutuhkan hasil acak tetapi ingin beberapa terjadi dengan frekuensi kurang dari yang lain. Dalam kebanyakan kelas probabilitas, ini biasanya diwakili dengan sekantung kelereng. Dengan RING berbobot, tas Anda mungkin memiliki tiga kelereng biru dan satu warna merah. Karena kita hanya menginginkan satu marmer, kita akan mendapatkan satu marmer, kita akan mendapatkan yang berwarna merah atau biru, tetapi kemungkinan besar warnanya menjadi biru. Mengapa pengacakan berbobot menjadi penting? Mari gunakan acara dalam game SimCity sebagai contoh. Jika setiap peristiwa dipilih menggunakan metode non-weighted , maka potensi untuk setiap peristiwa terjadi secara statistik sama. Itu membuat kemungkinan bagi Anda untuk mendapatkan proposal untuk kasino baru untuk mengalami gempa dalam game. Dengan menambahkan pembobotan, kita dapat memastikan bahwa peristiwa ini terjadi dalam jumlah proporsional yang mempertahankan alur game. Bentuk dan kegunaan Pengelompokan dari item yang sama Dalam banyak program studi ilmu komputer atau buku, metode ini sering disebut sebagai 'bag'. Nama cantik di hidung, menggunakan kelas atau objek untuk membuat representasi virtual kantong harfiah. Kerjanya pada dasarnya seperti ini: ada sebuah wadah yang objek dapat ditempatkan ke tempat mereka disimpan, fungsi untuk menempatkan objek ke dalam 'bag', dan fungsi untuk secara acak memilih item dari 'bag'. Untuk merujuk kembali ke contoh marmer kita, ini berarti bahwa Anda akan memperlakukan bag Anda sebagai berisi satu marmer biru, satu marmer biru, satu marmer biru, dan satu marmer merah. Memanfaatkan metode pengacakan ini, kita dapat secara kasar menentukan tingkat di mana hasil terjadi untuk membantu menyeragamkan pengalaman masing-masing pemain. Jika kita menyederhanakan hasil pada skala dari 'Very Bad' ke 'Very Good', sekarang kita telah membuatnya jauh lebih layak bahwa pemain akan mengalami serangkaian hasil yang tidak diinginkan yang tidak perlu (seperti menerima hasil 'Very Bad' 20 kali berturut-turut). Namun, secara statistik tetap mungkin untuk menerima serangkaian hasil yang buruk, hanya saja semakin sedikit. Kita akan melihat metode yang sedikit lebih maju untuk mengurangi hasil yang tidak diinginkan dalam waktu dekat. Berikut ini contoh pseudocode cepat tentang apa yang mungkin terlihat seperti kelas tas: Class Bag { //Keep an array of all the items that are in the bag Array itemsInBag; //Fill the bag with items when its created Constructor (Array startingItems) { itemsInBag = startingItems; } //add an item to the bag by passing the object (then just push it onto the array) Function addItem (Object item) { itemsInBag.push(item); } //To get a random item return, use a built-in random function to grab an item from the array Function getRandomItem () { return(itemsInBag[random(0,itemsInBag.length-1)]); } } Implementasi Slotting Radar Mirip dengan implementasi pengelompokan dari sebelumnya, slotting kelangkaan adalah metode standarisasi untuk menentukan tarif (biasanya untuk membuat proses desain game dan reward pemain lebih mudah untuk dipelihara). Daripada menentukan tingkat setiap item dalam permainan secara individual, Anda akan menciptakan kelangkaan yang representatif — di mana tingkat 'Common' mungkin mewakili peluang 20 dalam X untuk hasil tertentu, sedangkan 'Rare' mungkin mewakili 1 dalam Kesempatan X. Metode ini tidak banyak mengubah fungsi sebenarnya dari tas itu sendiri, melainkan dapat digunakan untuk meningkatkan efisiensi di bagian akhir pengembang, memungkinkan sejumlah besar item secara eksponensial untuk diberi kesempatan statistik secara cepat. Selain itu, kelangkaan slotting berguna dalam membentuk persepsi pemain, dengan mudah memungkinkan mereka untuk memahami seberapa sering suatu peristiwa mungkin terjadi tanpa menghilangkan perendaman mereka melalui angka-angka. Berikut ini contoh sederhana tentang cara kita menambahkan slotting ke tas kita: Class Bag { //Keep an array of all the items that are in the bag Array itemsInBag; //add an item to the bag by passing the object Function addItem (Object item) { //keep track of the looping related to rarity slots Int timesToAdd; //Check the rarity variable on the item //(but first create that rarity variable in the item class, //preferably with an enumerated type) Switch(item.rarity) { Case 'common': timesToAdd = 5; Case 'uncommon': timesToAdd = 3; Case 'rare': timesToAdd = 1; } //Add instances of the item to the bag according to rarity While (timesToAdd >0) { itemsInBag.push(item); timesToAdd--; } } } Menilai Variabel Random Numbers Kita sekarang membicarakan tentang beberapa cara paling umum untuk menangani pengacakan dalam game, jadi mari kita selesaikan dengan yang lebih canggih. Konsep menggunakan tingkat variabel mulai sama dengan tas dari sebelumnya: kita memiliki sejumlah hasil, dan kita tahu seberapa sering kita menginginkannya terjadi. Perbedaan dengan penerapan ini adalah kita ingin menyesuaikan potensi hasil saat terjadi. Mengapa kita ingin melakukan ini? Ambil, misalnya, permainan dengan aspek yang dapat dikumpulkan. Jika Anda memiliki sepuluh hasil yang mungkin untuk item yang Anda terima, dengan sembilan yang "common" dan satu yang "rare", maka kemungkinan Anda cukup mudah: 90% dari waktu, pemain akan mendapatkan yang umum, dan 10% dari waktu mereka akan mendapatkan yang langka. Masalahnya muncul ketika kita mempertimbangkan banyak penarikan. Mari lihat peluang Anda untuk menggambar serangkaian hasil umum: Pada penarikan pertama Anda, ada 90% kesempatan untuk menggambar umum. Pada dua kali seri, ada peluang 81% untuk menarik semua milik bersama. Dengan 10 kali seri, masih ada kemungkinan 35% dari semua milik bersama. Dengan 20 kali seri, ada peluang 12% dari semua milik bersama. Sementara rasio awal 9: 1 tampaknya menjadi tingkat yang ideal pada awalnya, itu hanya berakhir mewakili hasil rata-rata, dan meninggalkan 1 dari 10 pemain menghabiskan dua kali lebih lama daripada yang dimaksudkan untuk mendapatkan yang langka. Selanjutnya, 4% pemain akan menghabiskan tiga kali lebih lama untuk mendapatkan yang langka, dan 1,5% yang sial akan menghabiskan empat kali lebih lama. Bagaimana Harga Variabel Mengatasi Masalah Ini Solusinya adalah menerapkan rentang kelangkaan pada objek kita. Anda melakukannya dengan menentukan kelangkaan maksimum dan minimum untuk setiap objek (atau slot kelangkaan, jika Anda ingin menggabungkannya dengan contoh sebelumnya). Sebagai contoh, mari kita berikan nilai minimum kelangkaan barang-barang umum kita bersama 1, dengan maksimum 9. Angka langka akan memiliki nilai minimum dan maksimum 1. Sekarang, dengan skenario dari sebelumnya, kita akan memiliki sepuluh item, dan sembilan di antaranya adalah satu contoh umum, sementara salah satunya adalah langka. Pada pengundian pertama, ada 90% peluang untuk mendapatkan yang umum. Dengan tarif variabel sekarang, setelah itu umum ditarik, kita akan menurunkan nilai kelangkaannya sebesar 1. Ini membuat hasil imbang kita berikutnya memiliki total sembilan item, delapan di antaranya umum, memberikan 89% peluang untuk menggambar umum. Setelah setiap hasil umum, kelangkaan barang itu turun, membuatnya lebih mungkin untuk menarik yang langka sampai kita cap keluar dengan dua item dalam tas, satu umum dan satu langka. Padahal sebelumnya ada kemungkinan 35% untuk menggambar 10 commons berturut-turut, sekarang hanya ada 5%