Hangi puan / seviye fonksiyonu sıklıkla kullanılır?


9

Birçok oyunda belirli bir puana ulaştığınızda bir seviye yükselirsiniz ve daha sonraki seviyelere ulaşmak başlangıçtan daha zordur.

Örneğin WoW kullanılan üstel işlev bir tür olduğundan şüpheleniyorum.

Herkes bu amaç için iyi bir üstel fonksiyon biliyor mu?



Yanıtlar:


11

Standart yok, aslında olmasının da bir sebebi yok. İnsanlar, her seferinde daha güçlü hale geldiklerini ve orantılı olarak daha fazla zorlukla karşılaştıklarını hissettikleri için üstel büyümeden hoşlanıyor gibi görünüyor, ancak aslında bu sadece puan toplama şekliniz de orantılı olarak değişmezse doğrudur. . Zafer başına deneyim, seviye başına deneyim ile aynı oranda yükselirse, ya yükselen çok az nokta vardır - her ikisi de sadece sabit kalabilir.

Dahası, bunun anlamı, deneyim eğrinizin nasıl tahakkuk etmesini istediğinizi bilmeden deneyim eğrinizin nasıl gitmesini istediğiniz için bir işlev seçemeyeceğinizdir. Ve bu, sizin için sağlayabileceğimiz bir deneyime değil, istediğiniz deneyim türüne dayanan bir oyun tasarımı kararıdır.

Yine de, sorunuzu cevaplamak için: başka bir yerde gördüğünüz işlev türü sadece böyle bir şeydir, ölçek faktörlü önemsiz bir polinom:

threshold_for_next_level = x * CURRENT_LEVEL y

Tipik değerler x = 1000, y = 1.5 olabilir. Örneğin:

level 1 = 1000
level 2 = 2828
level 3 = 5196
...
level 10 = 31623
etc.

Eğimin daha dik olmasını istiyorsanız, y'yi artırırsınız. Rakamların daha büyük olmasını istiyorsanız x değerini artırırsınız.

Daha yuvarlak sayılara sahip olmak isteyebilirsiniz, bu durumda sonucu 2 veya 3 önemli basamağa veya en yakın bine kadar isteyin.

Sadece bu değerlerin izolasyonda anlamsız olduğunu unutmayın. Seviye 15'ten seviye 16'ya geçmek için 15000 deneyim gerekiyorsa, oyun tasarımınızın normal oyun sırasında 15. seviye bir karakterin 15000 deneyim puanı kazanmasını pratik hale getirdiğinden emin olmalısınız. Testten sonra eğriyi değiştirmenin bir anlamı yok, çünkü bu genellikle çok zaman alıcıdır - oyununuzun verdiği tasarıma, tasarladığınız tasarıma uyacak şekilde eşleşen bir eğri ile başlamalısınız.


4

Moria / Angband (ve - kuşkusuz - Diablo dahil olmak üzere tüm spinoffları), bunun ötesinde, seviye başına artan XP gereksinimleri ile, ne kazandığınızı görmek için sistemlerini canavar seviyesiyle eşleştiriyor.

In Diablo , pozitif ve negatif size 5 seviyeleri içinde size öldürebilir canavar optimal seviyeler vardır. Bu şuna benziyor (bu doğru değilse özür dileriz, Diablo hayranları):

XP Gain = monsterBaseXP * (5-|(characterLevel-monsterLevel)|) / 5
(where result cannot drop below 0)

Karakter için örnekler Seviye 16: Monster A'nın seviyesi: 16. Monster base XP'nin% 100'ünü kazanın. Monster B'nin seviyesi: 13. Monster Base XP'nin% 40'ını kazan. Canavar C seviyesi: 20. Canavar temel XP'nin% 20'sini kazan. Monster D'nin seviyesi: 23. Monster Base XP'nin% 0'ını kazan.

In Angband'ın (tercihim modeli), böyle bir şey:

XP Gain = monsterBaseXP * monsterLevel / characterLevel.

Eğer seviye 5 iken 50. seviyedeki bir canavarı öldürdüysen, o canavarı öldüren 50. seviyedeki bir karakterin kazanacağı XP'ye 10 kat kazanacaksın. Bunu beğendim, yüksek riskli, yüksek ödüllü. Bunun için Angband'da binlerce karakteri kaybettim. Ama bunu başaran, efsanevi olanlardır. Sanırım bir zamanlar 1. seviyeden anında 29. seviyeye ulaştım;) Aynı şekilde, 5. seviye bir canavarı öldüren seviye 50 karakteri, bir canavarı öldürmek için bir seviye karakter XP'nin 1 / 10'unu kazanacaktı. Dahası, temel XP'ler de yükseldiğinden, bu, düşük seviyeli canavarı öldürmenin yine de bazı ödülleri netleştirebileceği anlamına gelir, ancak çok aşağı iner ve tamamen anlamsız hale gelir.

Her iki oyunda da gerekli XP'de çarpanları (artan bir ölçekte) kullanırlar ve bununla birlikte verilen en uygun seviye canavar XP arasındaki oran giderek daha da dikleşir.

Bu fikrin en basit şekli aşağıdakileri yapmaktır. Size eşit seviyede kaç canavar karar verin, her seviyede öldürmek gerekir (görev ödülleri göz ardı vb.). Seviyenize bakılmaksızın 100 diyelim. Diyelim ki oyuncu kendine eşit seviyede bir canavarı öldürürse, 1XP kazanır.

Canavar seviyesine göre artışı ve azaltmayı ödüllendirmek için Angband benzeri bir formül kullanarak, seviyeleme tablonuz doğrusaldır:

1: 100xp
2: 200xp
3: 300xp

...Ve bunun gibi. Bunu en kolay atlama noktası olarak görüyorum - uygun şekilde ayarlayın, kalbinizin içeriğine canavar temel XP'leri, seviye kesimlerini vb. Ekleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.