Posted May 30, 2021
LiefLayer: Making your own engine is not impossible but doing it with cross-platform support and making it easy to use regardless of the game you want to create is really complicated.
Depends on what you're doing. If you're going full graphics whore, you're going to be constantly refactoring even without engine updates, anyway. If not, however, it's not as much of a problem to build via SDL or something like that. And, if you can abstract enough, switching libraries isn't as hard if all it does is acts as a HAL. For example, if you have a 2d game, it shouldn't take you nearly as long to rewrite "showpicxy(int, int)" as it would to write a bunch of lines, shaders, etc. It depends alot on what your project is. Personally, i'll leave that higher stuff to the AAA companies who are going to beat me with their development budget, anyway. The problem you describe is a nuisance, but unity for example when updating something tries to automatically correct the code or to suggest valid alternatives ... the only problem is that it only works well from one version to the immediately previous one so you have to update often the engine. If you are too far behind it becomes much more difficult to keep the code up to date.
Still I think that's the only way to do things even with other engines, you need to keep the code updated to the last version of everything.
Depends on the complexity of your code. I remember learning java with an "up-to-date" and "certified" book, only for my code to be deprecated by the end of the school year, 'cause it was built in a deprecated class. That was fun. I mean, sure, it's not an engine, but how does that work down stream usually? And what if there's alot to update? The smoke on the ridge is smoldering code, because the languages themselves are starting to deprecate features of the language, not just libraries or individual functions. Still I think that's the only way to do things even with other engines, you need to keep the code updated to the last version of everything.
There is one part I agree... I try to avoid to integrate 3rd-party code things on my game. Sometimes I need to rewrite the wheel but at least I can keep it updated with the engine and I don't need to wait for the update on the plugins part. The only 3rd-party thing that I have to use is the engine itself.
I used one for google drive (unitygoogledrive) for cloud saves, that still works but in the end I just created the same things on my own just to integrate the new PKCE code_challenge that was not compatible with Unitygoogledrive (it's great for security reason on desktop and mobile apps without a server, you don't need to use implicit grant anymore you can finally use code grant, and it should not require client_secret anymore (google still require it for reasons, but both dropbox and one drive do not require it). By doing that I was able to create the same thing for dropbox and one drive too.
Yes, very good abstraction technique. The key is to know how to create abstractions without creating bloat and/or unnecessary complexity that results in documentation issues.I used one for google drive (unitygoogledrive) for cloud saves, that still works but in the end I just created the same things on my own just to integrate the new PKCE code_challenge that was not compatible with Unitygoogledrive (it's great for security reason on desktop and mobile apps without a server, you don't need to use implicit grant anymore you can finally use code grant, and it should not require client_secret anymore (google still require it for reasons, but both dropbox and one drive do not require it). By doing that I was able to create the same thing for dropbox and one drive too.