Trong hầu hết các trường hợp, các vấn đề này sẽ thuộc loại "hành vi không xác định" (không phải theo nghĩa C ++, nhưng theo cách hiểu rộng hơn).
Những gì bạn đang làm về cơ bản là phá vỡ sự trừu tượng được cung cấp bởi MonoGame (ví dụ, điều này tất nhiên áp dụng cho bất kỳ API cấp cao hơn như vậy). Khi làm như vậy, bạn có thể khiến các bảo đảm bất biến của lớp bị vi phạm, điều này có nghĩa là các giả định mà các tác giả MonoGame có thể viết mã của họ theo có thể không còn đúng nữa và mã có thể hành xử bất ngờ. Mã của riêng bạn thực sự có thể không còn dựa vào các đảm bảo bất biến của trừu tượng nữa, vì bạn đã phá vỡ chúng.
Hành vi bất ngờ này sẽ bao gồm, có khả năng, toàn bộ gam của hành vi đó từ tạo tác đơn giản cho đến sự cố hoặc hỏng bộ nhớ.
Ví dụ: nếu bạn sử dụng một số trạng thái API kết xuất bằng cách chạy cuối cùng xung quanh MonoGame, thì có thể không thể phát hiện thay đổi trạng thái đó (vì có thể nó sẽ không thăm dò API cơ bản để thay đổi, đơn giản là nó hiệu quả hơn giả sử nó là người kiểm soát API và theo dõi những thay đổi đó). Do đó, nó có thể quyết định, trong lần kết xuất tiếp theo, nó không cần cập nhật thứ gì đó thực tế cần được cập nhật và cảnh của bạn có thể không được kết xuất chính xác.
Hoặc bạn có thể gây rối với API cơ bản và thay đổi số tham chiếu của một số đối tượng thiết bị (giả sử D3D), có nghĩa là nó có thể được phát hành sớm từ dưới MonoGame hoặc vô tình không được phát hành, dẫn đến sự cố có thể xảy ra hoặc rò rỉ tài nguyên.
Hoặc bạn có thể làm một cái gì đó hoạt động, nhưng vì bạn đang lẩm bẩm một cách không được hỗ trợ và với các tính năng không có giấy tờ hoặc các mẫu truy cập bất ngờ, bạn có thể thấy mã của mình bị hỏng khủng khiếp trong lần phát hành tiếp theo.
Hoặc bạn có thể làm một cái gì đó, nó hoạt động tốt trong một vài phiên bản, nhưng sau đó bạn gặp phải một số lỗi khác và gặp khó khăn trong việc theo dõi nó, vì vậy bạn yêu cầu mọi người giúp đỡ MonoGame, có thể gửi báo cáo lỗi vì bạn chắc chắn một vấn đề trong mã của họ. Tất nhiên, họ không thể tái tạo lỗi và cuối cùng phát hiện ra rằng bạn đang thực hiện vụ hack truy cập trực tiếp kỳ lạ này và tại thời điểm đó - bất kể tin tặc của bạn có phải là nguyên nhân gốc của lỗi hay không - họ Có thể bạn sẽ ngừng chi tiêu tài nguyên cho sửa chữa của mình chỉ vì bạn đang làm một việc không được hỗ trợ (hoặc ít nhất, họ có thể sẽ ưu tiên cho bạn).
Tất nhiên, trong một số trường hợp, bạn hoàn toàn có thể phải phá vỡ API, có lẽ phải khắc phục một lỗi trong phần mềm vận chuyển mà bản vá chính thức sẽ không được phát hành kịp thời. Nếu bạn hoàn toàn phải làm điều này, bạn nên thực hiện phương pháp mềm: cố gắng phạm vi quyền truy cập trực tiếp của bạn càng hẹp càng tốt và đảm bảo bạn cố gắng để trạng thái của API cơ bản không thay đổi nhất có thể khi bạn kết thúc với sự can thiệp của mình . Đó không phải là một sự đảm bảo thành công, nhưng nó có thể giúp đỡ.
Mặc dù vậy, lý tưởng nhất là bạn sẽ tránh được loại điều này.