It may not be Unity: but what often comes with high degrees of accessibility, also comes with low entry barrier for game development and a lack of understanding the hard competencies of computer science. Console development is not easy at all, fixed hardware is not easy to tackle.Oddworld: New 'N Tasty is a Unity game as well. It looks fantastic and runs great on the PS4 (and the Xbox One too iirc). It's not perfect either, but it's mostly 60fps. Heck, it even works fine on the Vita. Sure, unlike Broforce it's not a physics-heavy destruct-a-thon, but Broforce barely reaches 30fps, even when no shots have been fired. Blaming it all on Unity seems a little too easy.
It may not be Unity: but what often comes with high degrees of accessibility, also comes with low entry barrier for game development and a lack of understanding the hard competencies of computer science.
One of the strangest omissions from Unity is standard object pooling. They introduce development by creating and destroying things like bullets, but as every experienced dev states, you can't really run a game that way and need to have a pool of ready made objects to enable/disable. Seeing as everyone is being told to do this (and Unity themselves advocate it in some of their tutes and blogs and stuff), why isn't it in the engine?? Create a pooler class, assign a GameObject, and have other objects request and release items. It's a no brainer, would do wonders for performance, would save devs effort of each rolling their own...but it doesn't happen.Allocating (well, creating things and letting Unity handle memory) and allowing the garbage collector to run during gameplay seem to be things to avoid.
One of the strangest omissions from Unity is standard object pooling. They introduce development by creating and destroying things like bullets, but as every experienced dev states, you can't really run a game that way and need to have a pool of ready made objects to enable/disable. Seeing as everyone is being told to do this (and Unity themselves advocate it in some of their tutes and blogs and stuff), why isn't it in the engine?? Create a pooler class, assign a GameObject, and have other objects request and release items. It's a no brainer, would do wonders for performance, would save devs effort of each rolling their own...but it doesn't happen.
To do the occasional big clean when it doesnt matter if it impacts performance (just in case the programmer has actually missed something), eg at the end of a level. Instead of like its usually implemented now, constantly during the gameplay which is does even if you have gig's of memory free. Use the empty memory for fucks sake, its not like you get brownie points if half your PC memory is sitting around empty. This isnt so much of an issue if you're a decent programmer and know to set aside memory, C# is my favorite programming language (havent used it for a couple of years now though) except for garbage collection.If you have to do that, what is the point of even having garbage collection?
When it's needed. I like garbage collection once a week to remove a large bin of trash. I wouldn't like it every half hour to remove whatever crisp bag or biscuit wrapper I've just finished with. In Unity's case, there are plenty of situations where a little overhead is well worth the convenience. The problem is the meat-and-potatoes of the game, the stuff that's constant and always happening, needs far less overhead. That's why object pools are recommended. So why not provide that at the engine level? Update the Instantiation with a pool option and have the engine manage the fixed resources. Have a panel with a few setting for maximum reserved RAM/objects, etc. It could be very easy to use and should be available to everyone IMO.If you have to do that, what is the point of even having garbage collection?
Yesterday I forgot to turn on game mode and the division looks so smooth in 60 fpsOooof. Take a look at the 980ti versus 980ti section. 60 FPS side by side with 30 FPS. And you can see just how horrible 30 FPS looks anytime there's quick movement or panning of any sort.
Regards,
SB
Oddworld on PS4 is certainly not 60fps, and even less so on the One. It was readily apparent when I played it on the PS4.Oddworld: New 'N Tasty is a Unity game as well. It looks fantastic and runs great on the PS4 (and the Xbox One too iirc). It's not perfect either, but it's mostly 60fps. Heck, it even works fine on the Vita. Sure, unlike Broforce it's not a physics-heavy destruct-a-thon, but Broforce barely reaches 30fps, even when no shots have been fired. Blaming it all on Unity seems a little too easy.