Kafayı yiyecektim arkadaş. Gerçek hayatta hisse senedi alıp satmıyorum ama kendi yazdığım oyunda, sanal bir marketin fiyatlarını dengelemek için gece gündüz Python scriptleri yazıyordum. Meğerse oyun içi ekonomi, gerçek borsadan katbekat daha deli bir şeymiş.
Amacım basitti: Oyuncuların alım-satım yaptığı bir market olsun, arz-talep dengesine göre fiyatlar otomatik ayarlansın. "Hadi canım, birkaç if-else ve rastgele sayı üreteci (random) halleder" dedim. Ne kadar da safmışım.
Python:
if talep > arz:
fiyat = 1.05 # %5 zam
else:
fiyat = 0.95 # %5 indirim
Şaka gibi ama bu basit mantıkla, iki saat içinde ya her şey bedavaya düştü ya da bir ekmek almak için tüm servetini vermen gerekiyordu. Ekonomi çökmüştü!
StackOverflow'da bile bulamadığım bir çıkmazdaydım. Meğerse sorun şuradaymış: Gerçek hayattaki gibi bir gecikme ve öngörü mekanizması yoktu. Her işlem anında fiyatı değiştiriyordu. Pandas ile geçmiş verileri analiz etmeye, NumPy ile trend eğrileri çıkarmaya başladım. Kendime "Sen oyun yazıyordun, ne zaman veri bilimci oldun?" diye sordum.
Test sunucumuzda oynayan birkaç gönüllü vardı. Bir baktım, chat'te isyan var! "Abla bu kılıç niye 1 milyon altın?", "Dün 1000'e alıyordum bugün uçtu!" diye. Debug loglarına baktım, bir oyuncu tüm şehirin demirini satın alıp, tekrar pahalıya satmaya çalışınca sistem çıldırmıştı. Arzı sıfıra bölmeye çalışıyordum neredeyse, ZeroDivisionError atmasına ramak kalmıştı.
Sonunda, fiyat değişimlerine limitler, günlük/haftalık dalgalanma katsayıları ve yapay bir "piyasa istikrar havuzu" ekledim. Kod, basit bir denklemden küçük bir ekonomi simülatörüne dönüştü.
Siz de böyle bir saçmalık yaşadınız mı? Basit bir sistem sandığınız şey sizi nasıl bir algoritmik bataklığın içine çekti? Oyun ekonomisi için kullandığınız daha temiz bir kütüphane veya yöntem var mı? Fikirlerinizi bekliyorum!