Çoğu durumda bu sorunlar "tanımlanmamış davranış" kategorisine girer (C ++ anlamında değil, daha geniş bir anlayışla).
Yapacağınız şey esasen MonoGame tarafından sağlanan soyutlamayı atlatmaktır (örnek olarak, bu elbette bu tür üst düzey API'ler için geçerlidir). Bunu yaparken, sınıf değişmez garantilerinin ihlal edilmesine neden olabilirsiniz, bu da MonoGame yazarlarının kodlarını yazabileceği varsayımlarının artık doğru olmayabileceği ve kodun beklenmedik şekilde davranabileceği anlamına gelir. Kendi kodunuz artık onları kırdığınız için soyutlamanın değişmez garantilerine artık güvenemez.
Bu beklenmedik davranış, basit oluşturma yapaylıklarından çökmelere veya bellek bozulmasına kadar bu tür davranışların tüm gamını içerecektir.
Örneğin, MonoGame'in kendi etrafında son yayınlayarak bazı oluşturma API'si durumuyla uğraşırsanız, bu durum değişikliğini tespit edemeyebilir (çünkü muhtemelen temel API'yı değişiklikler için kirletmeyecektir, basitçe API'yi kontrol eden kişi olduğunu varsayar ve bu değişiklikleri izler). Sonuç olarak, bir sonraki render geçişinde, aslında güncellenmesi gereken bir şeyin güncellenmesi gerekmediğine ve sahnenizin doğru bir şekilde oluşturulmayabileceğine karar verebilir.
Yoksa yatan API ile karışıklık olabilir ve erken monogame altında serbest veya yanlışlıkla alabilirsiniz demek olduğunu bazı cihaz nesnesi (varsayarak D3D), başvuru sayısı değiştirmez değil olası bir çarpışma veya kaynak sızıntısı kaynaklanan yayınladı.
Veya işe yarayan bir şey yapabilirsiniz, ancak desteklenmeyen bir şekilde ve belgelenmemiş özelliklerle veya beklenmedik erişim kalıplarıyla uğraştığınız için, kodunuzu bir sonraki sürümde korkunç bir şekilde kırık bulabilirsiniz.
Ya da bir şeyler yapabilirsin, birkaç sürüm için iyi çalışır, ancak daha sonra başka bir hatayla karşılaşırsın ve onu izlemekte zorluk çekersin, bu yüzden MonoGame arkadaşlarından yardım istersin, belki de bir hata raporu gönderirsin. kodlarında bir sorun var. Elbette hatayı yeniden üretemezler ve nihayetinde bu garip doğrudan erişimli hackery'i ve o noktada - hack'inizin hatanın kök nedeni olup olmadığına bakılmaksızın yaptığınız ortaya çıkıyor - onlar Muhtemelen desteklenmeyen bir şey yaptığınız için (ya da en azından muhtemelen sizi önceliklendireceklerdir) düzeltmelerinizde kaynak harcamayı bırakabilirsiniz.
Tabii ki, bazı durumlarda kesinlikle olabilir var resmi yama zamanında serbest olmayacak olan yazılımlar gönderme belki bir hata etrafında işe, API atlatmak için. Kesinlikle varsa yapmak , yumuşak yaklaşımı benimsemelisiniz: doğrudan erişiminizi olabildiğince dar bir şekilde kapsamaya çalışın ve altta yatan API'nın durumunu mümkün olduğunca değişmeden bırakmaya çalıştığınızdan emin olun. . Bu bir başarı garantisi değildir, ancak yardımcı olabilir.
İdeal olarak, bu tür şeylerden tamamen kaçınacaksınız.