Apakah " keacakan " harus benar-benar acak ?
Dalam desain game ada semacam hubungan cinta-benci dengan keacakan . Di
satu sisi memungkinkan untuk berbagai dengan berbagai jenis konten , di
sisi lain kita tidak bisa " merancang " keacakan benar . Bagaimana fungsi yang memberikan hasil acak tetapi dalam parameter yang dapat dipengaruhi agar sesuai dengan desain game ? Ini
sedikit usaha dibandingkan dengan apa yang diperoleh dalam kendali ,
dengan mudah dapat disarikan dalam kode dan hanya membutuhkan memegang
variabel yang lebih sedikit untuk setiap tidak - benar-benar - acak -
acak .
Contoh cepat : bagaimana saya sebelumnya telah berurusan dengan dadu bergulir untuk menghitung " menjarah " dalam " dada " . (
Itu adalah sesuatu yang berbeda , tetapi mekanik yang sama dan konsep "
dada " dan " menjarah " yang langsung dikenali untuk setiap grognard
game. ) Katakanlah peluang untuk menemukan tiket emas , di samping yang
biasa menjual hasil curian , di dada harus 1:10000 . Jika
Anda menggunakan keacakan benar pemain akhirnya dapat menemukan tiket
di tiga dada berturut-turut dan setelah itu dia akan menemukan tidak ada
tiket dalam tiga bulan bermain . Apa
yang kita lakukan pertama adalah untuk mengurangi jumlah 10.000 dengan
100 dengan setiap dada dibuka , menyimpan nilai ini dalam
howLikelyIsPlayerToFindTicket dan menggunakan variabel ini untuk
menghitung kesempatan acak kami . 1:9900 , 1:9800 dan seterusnya . Kemungkinan lebih baik dengan setiap dada sampai , setelah 100 kali mencoba , tiket diberikan . Ingat
, masih ada kemungkinan bahwa pemain menemukan tiket dengan peluang
1:8400 atau semua kombinasi lainnya , kemungkinan hanya mendapatkan
lebih baik dengan setiap mencoba.
Selain itu, ketika pemain telah menemukan tiket , kami ingin dia tidak menemukan tiket lain lagi , terlalu lama setelah . Kami menetapkan absolutelyNoTicketFindable variabel lain , katakanlah, 10 . Dengan dijarah setiap dada kami memastikan bahwa tidak ada tiket di sana dan menurunkan variabel dengan 1 .Setelah
absolutelyNoTicketFindable mencapai 0 kita kembali ke awal 1:10000
kesempatan kami dan untuk mengurangi dengan 100 dengan setiap dada
dibuka . Kami
memperkenalkan nilai-nilai beberapa tambahan : Basis Kesempatan ( 10000
) , Meningkatkan Kesempatan ( 100 ) , Blocker ( 10 ) , Current Mendung (
X , antara 10000 dan 0 ) dan Current Blok ( Y , antara 10 dan 0 ) .
Jika Anda adalah seorang programmer , Anda sudah dapat melihat keberadaan ini dipimpin .
Saya
akan terus BC , IC dan B sebagai statika ( atau dalam kelas induk ) dan
CC dan CB sebagai variabel ( atau dalam suatu objek atau dalam kelas
turunan ) . Fungsi MyRandomSuccess ( ) proses statika ini dan variabel ( atau mendapatkan kelas dan objek sebagai parameter ) . Ini menghitung sukses dengan nilai-nilai saat ini , memodifikasi variabel sesuai dan hanya mengembalikan true atau false . Tergantung pada bagaimana Anda ingin mempengaruhi hasil , Anda dapat memperkenalkan banyak nilai tambah yang Anda inginkan.
Anda dapat mempengaruhi keberhasilan withs penggemar , power-up , dalam game peristiwa atau apa-yang - Anda .
Anda dapat mengurangi atau menambah " Meningkatkan Chance" dengan penggemar atau power-up
Untuk
tingkat yang bermain di " miskin " area, pemain tidak pernah menemukan
tiket dan menemukan sedikit dari lootable " langka " item.
Anda tidak harus mendefinisikan lootable sekali berbeda untuk setiap kesempatan . Cukup menandai daerah atau dada spesifik sebagai " miskin " .
Jika lebih pas , nilai absolutelyNoTicketFindable dapat menjadi jumlah waktu yang menghitung mundur .
Anda dapat mempengaruhi variabel untuk mis " terpukul " dan " hit kritis" tergantung pada tingkat - perbedaan antara lawan bahkan keluar lapangan dalam MOBA .
Anda
dapat menghasilkan musuh filler dengan kekuatan yang tidak terlalu acak
- acak dan kelemahan berdasarkan kinerja pemain dalam permainan sejauh
ini .
Benar disarikan , fungsi tersebut dapat digunakan untuk keputusan lain yang tak terhitung jumlahnya . Saya
menggunakan teknik ini untuk ( sesuatu yang sebanding dengan ) hits
kritis , pertemuan musuh , " acak " barang di gamification , kemungkinan
dalam undian tergantung pada cuaca kehidupan nyata , dll
Voila , keacakan dimanfaatkan .
Kesimpulannya:
Mekanisme yang dimaksud adalah masih " acak " , dapat sangat
dipengaruhi oleh desain game dan , dalam pengalaman saya , jauh lebih
mudah untuk menyeimbangkan kemudian memiliki , misalnya , 100 lootables
berbeda dan hanya beralih mereka di sekitar .
Tidak ada komentar:
Posting Komentar