TMP has no problem rendering them, since they're just regular uncolored glyphs, and in my opinion they look pretty good, so we're now using them in Logic World. In the meantime, Google's Noto project has released a full set of uncolored emojis. However, I need to wait for TextMeshPro (Unity's advanced text rendering system) to properly support colored glyphs. Eventually, I want to display colored emojis with Twemoji. I freakin love emojis and I'm so happy that Logic World can now display them. I've done a pass on Logic World's text rendering capabilities! Most notably, text can now display mathematics symbols (like □□ϵϕ□), music notation symbols (like □□□□), and EMOJIS!!!!!!! Unfortunately, that is really hard to code, so it'll be a while before it gets implemented. This system should take approximately zero seconds of loading time, no matter how big your world is. In the future, we're going to totally replace the Unity collider system with an all-custom collider system hyper-optimized for Logic World's use case. But still, about 8 seconds of loading time are taken up on JUST colliders, and that number gets ever worse with bigger worlds. Note the loading time improvement in the table above the gains were mostly due to improved collider efficiency. Logic World sandboxes are too collider-dense, and Unity colliders just have too much overhead they can't be moved around quickly enough for this application.įor now, I've done a lot of research and testing, and I'm dealing with collider setup about as efficiently as it's possible to. Unfortunately, I just have to give up on this idea. I've spent a lot of time trying to implement a "virtual colliders" system, where colliders only exist for objects nearby the player. As I've talked about on this blog before, colliders are a big reason for performance problems in Logic World, especially for the slow loading times. They prevent the player from walking straight through walls, and they allow us to detect which object the player is looking at. The newer versions of Unity and its Universal Render Pipeline have a lot of optimizations to shadows, post-processing, and depth textures themselves.Ĭolliders being little bastardsColliders are the system that allow for collision with components. This will make everything faster across the board, but also it should fix the issues with slow depth textures.įurthermore, I'm optimistic that the engine upgrade in 0.92 will do a lot to help with this issue. In the future, we'll implement custom culling for instanced rendering, meaning that on a given frame the game will not try to draw any instances that are hidden (i.e. I think this small performance hit is acceptable for now, since it only applies to a situation where most folks aren't struggling with framerate anyway, and the gains in other situations are so significant. And if post-processing or shadow cascades are reduced, the depth texture doesn't need to be used so much. If the world is large, the advantages of instanced rendering overtake the depth disadvantages. If the world is small, the depth pass doesn't have to run as much. The world is medium sized (~50k-150k components).The end result of this is that 0.91 is slightly slower in the following situation: I'm not entirely sure why - I'm still very new to hardcore graphics programming - but I think it has to do with how the game needs to do a depth pass over every single instance, whereas with combined meshes, the engine could automatically cull faces and even entire meshes. Let's take a look at what I've been working on recently!ĭepth texture slownessSomething about instanced rendering makes the depth textures significantly slower compared to the old combined meshes approach. I'm also investing in an ergonomic workspace, so I don't injure my wrists again :) One lesson I've learned this year is that I'm actually way more productive if I work a little less and play a little more. Going forward, I'm gonna strive to have a better work-life balance. But I'm back, baby, and I'm so freaking excited to be working on my dream game again! In hindsight, I think I really needed this one. I hadn't taken a real break from working on this project since I started it in 2017. Without really planning to, my quick break to let my wrists heal turned into an extended sabbatical, in which enjoying my life was my only priority. Because of the break, I started doing all sorts of fun things with my life: I was playing new sports, making new friends, learning new skills, and working on new projects. I feel like I should talk about that.Ī few months ago, I took a break from Logic World because I was forced to by carpal tunnel syndrome.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |