There's an entire Unity eBook just on UI optimizations, I believe they've done two versions over the years, one for uGUI and one for UI Toolkit. There are also some good Unite talks and workshops on it from years past that are still solid.
This was really interesting, and covers a topic that doesn't get enough exposure in devlogs. The way you addressed each porting problem was relatable and informative. I've subbed for more. Thanks for the vid!
For sure! I think the fact that many indie devs don't get on console is one of the main reasons - all of what I covered here is absolute overkill for PC (the game was out for 6+ months without any of this stuff, and nobody ever complained about performance! Glad you liked the video :)
This is awesome. Thank you so much for making this. I hope this eventually picks up because not enough people talk about this. It's not a sexy topic but it's so important in the long run. I'm working on my first major project and optimizing is something that I'm far away from but I want to know about more so that I don't structure some decisions over things that could easily be avoidable. Thank you so much!
So glad to hear that! Yeah, optimising is one of things that if you know what to look for early, it can save you lots of time later, hope this video if anything helps some people look out for some extra stuff that's easily avoidable :)
Really awesome to see this, def one of the more hidden sides of game dev. It is really exciting that you are working on getting your games on to console, can't wait to play it.
I just discovered your channel (though I knew of your The Outbound Ghost game, because of Paper Mario fans spreading the word about similar styled games a while ago, and more recently Soul Stalker) and I'm surprised to see a young dude. You look about my age (I'm 26) or younger. I'm on a game dev journey myself, very slowly I might add. I failed uni so now I'm trying to learn by myself with online resources. A friend of mine who graduated an art course wanted to make a game and I suggested we work together on it. We've been in the planning stages for the past month+ now and our hope is to get a fun and functional demo in a year or so. If you do read this comment, I'd much appreciate some more advice and tips (less on the programming side since I'm using Unreal).
very good video, as a developer it is always important to remind yourself that your dev PC is most likely way too over powered compared to what your users will have
Great tips! As you said, most of this isn't engine-specific or platform-dependent, just good practice. Besides object pooling, and memory-monitoring, grid / list screens benefit from only instantiating as many items as are visible, and using a start & end index to populate the data (technique can be called windowing, but is different from window as in panels). I would recommend folks check out some of the books on development from 10, 15yrs ago or more - a lot of these were fundamental approaches when memory and other resources were more constrained. Good luck on the launch!
@Conradical It's kind of similar to window functions as used in databases or statistics - a way to isolate a chunk of a larger dataset. It's expensive to keep say, 500 buttons in memory, sprites, layouts, and all. But just the data for 500 Items is pretty tiny (even smaller in a text file or database). We can keep track of whether the user is scrolling, and just preload a buffer in that direction - can even use a placeholder image and a coroutine to load the images for a fast, responsive UI. Lots of useful tricks like that, even as recently as the XNA or Flash days.
I'm surprised how much of this applies to Roblox Studio. Coroutines, Canvas groups, and event/API calls to servers are exact issues I can apply 1:1. I'm unsure about the Terrain or font and languages, but I'll look into it. My game is avalible on PlayStation and Xbox only, as Roblox doesn't support Switch. The RAM situation is interesting though. I'd be interested in a follow up video going into more, such as what you wanted to do but weren't able to. I assume scope/time constraints. Anywho, thanks for making the video! It was interesting and informative.
That's so interesting! Hadn't considered how Roblox devs might also need to have some of this stuff in mind, but I guess it makes sense with how much of the playerbase is on mobile and how you'd need to make the games performant for those! In terms of the followup video, what are some things you'd be interested in particular beyond just what I wanted to do but weren't able to? Thanks for watching, and I'm so glad to hear you enjoyed the video :)
I'm not a solo dev actually, my art skills are really not great! Anything is possible with enough time investment, but if you wanna just focus on programming then consider working with other people (that's what I do!)
The point on using Canvas Groups instead of enable/disable was really lagging my UIs like a week ago, wished i found this earlier! 😊
Now both you and I know 😎
There's an entire Unity eBook just on UI optimizations, I believe they've done two versions over the years, one for uGUI and one for UI Toolkit. There are also some good Unite talks and workshops on it from years past that are still solid.
This was really interesting, and covers a topic that doesn't get enough exposure in devlogs. The way you addressed each porting problem was relatable and informative. I've subbed for more. Thanks for the vid!
For sure! I think the fact that many indie devs don't get on console is one of the main reasons - all of what I covered here is absolute overkill for PC (the game was out for 6+ months without any of this stuff, and nobody ever complained about performance!
Glad you liked the video :)
This is awesome. Thank you so much for making this. I hope this eventually picks up because not enough people talk about this. It's not a sexy topic but it's so important in the long run. I'm working on my first major project and optimizing is something that I'm far away from but I want to know about more so that I don't structure some decisions over things that could easily be avoidable. Thank you so much!
Also perfect timing because I was creating dynamic menus where i instantiate things, and instead i'lll now be dynamically setting the child order
So glad to hear that! Yeah, optimising is one of things that if you know what to look for early, it can save you lots of time later, hope this video if anything helps some people look out for some extra stuff that's easily avoidable :)
Really awesome to see this, def one of the more hidden sides of game dev. It is really exciting that you are working on getting your games on to console, can't wait to play it.
I just discovered your channel (though I knew of your The Outbound Ghost game, because of Paper Mario fans spreading the word about similar styled games a while ago, and more recently Soul Stalker) and I'm surprised to see a young dude. You look about my age (I'm 26) or younger. I'm on a game dev journey myself, very slowly I might add. I failed uni so now I'm trying to learn by myself with online resources. A friend of mine who graduated an art course wanted to make a game and I suggested we work together on it. We've been in the planning stages for the past month+ now and our hope is to get a fun and functional demo in a year or so.
If you do read this comment, I'd much appreciate some more advice and tips (less on the programming side since I'm using Unreal).
this is amazing, thank you for providing such a helpful resource!! and good luck on the launch of the game (:
Glad the video was helpful! And thank you :)
Great video! Thanks for sharing and thanks for the credit 😉
Wait no way, are you THE Eric Veciana? 😂
very good video, as a developer it is always important to remind yourself that your dev PC is most likely way too over powered compared to what your users will have
This is 100% true as well!
Good stuff! :) the font bug would have made me lose my mind
Hahaha if it weren't for Tim idk what I would've done!
Great tips! As you said, most of this isn't engine-specific or platform-dependent, just good practice. Besides object pooling, and memory-monitoring, grid / list screens benefit from only instantiating as many items as are visible, and using a start & end index to populate the data (technique can be called windowing, but is different from window as in panels).
I would recommend folks check out some of the books on development from 10, 15yrs ago or more - a lot of these were fundamental approaches when memory and other resources were more constrained.
Good luck on the launch!
For sure! And dang, didn't know about the specific name of Windowing, great to know!
@Conradical It's kind of similar to window functions as used in databases or statistics - a way to isolate a chunk of a larger dataset. It's expensive to keep say, 500 buttons in memory, sprites, layouts, and all. But just the data for 500 Items is pretty tiny (even smaller in a text file or database). We can keep track of whether the user is scrolling, and just preload a buffer in that direction - can even use a placeholder image and a coroutine to load the images for a fast, responsive UI.
Lots of useful tricks like that, even as recently as the XNA or Flash days.
@@mandisawhey my friend any good books or your fav books that would help new programmers
@@razorbackroar What do you want to write / learn / make? It helps to start from that.
I'm surprised how much of this applies to Roblox Studio. Coroutines, Canvas groups, and event/API calls to servers are exact issues I can apply 1:1. I'm unsure about the Terrain or font and languages, but I'll look into it. My game is avalible on PlayStation and Xbox only, as Roblox doesn't support Switch. The RAM situation is interesting though. I'd be interested in a follow up video going into more, such as what you wanted to do but weren't able to. I assume scope/time constraints. Anywho, thanks for making the video! It was interesting and informative.
That's so interesting! Hadn't considered how Roblox devs might also need to have some of this stuff in mind, but I guess it makes sense with how much of the playerbase is on mobile and how you'd need to make the games performant for those!
In terms of the followup video, what are some things you'd be interested in particular beyond just what I wanted to do but weren't able to? Thanks for watching, and I'm so glad to hear you enjoyed the video :)
Hey awesome video and game as well. +1 subscriber
Eyy thank you so much! So happy that you liked it!
There are so many badly optimized Unity game on Switch that I want to buy this just to experience an indie game running well on it.
Hope you enjoy it if you give it a try!
@@Conradical Looking forward to the release.
Did you get the rights to The Outbound Ghost? 👻
And will you ever patch/fix the game?
Go to my latest video ;)
Why do you look like James Sunderland from Sillent Hill 2?
I'll take that as a compliment? 😂
hi if you are a solo indie how did you get good at art. my game logic is fine but i have problem with art. did you learn in college.
I'm not a solo dev actually, my art skills are really not great! Anything is possible with enough time investment, but if you wanna just focus on programming then consider working with other people (that's what I do!)