This Week In Veloren 6
This week has been a slower week on the programming side. More than anything, lots of discussions have occurred to problem solve future issues. Lots of concept art though! This week's blog was written by @AngelOnFira, with an excerpt from @xMAC94x, and an art section curated by @Pfau.
The biggest push forward this week were the discussions on character rendering and animation with many entities on screen. Of the talks, some of the big topics include entity caching, and choosing what to render based on occlusion culling.
Also, the netcode is much close to being ready for networked multiplayer. The main task is to get the different modules communicating, and then work on the next steps. There will also be some technical issues to overcome. One is about sending unique information about the player, such as animation progress.
Another heavily discussed topic was world simulation. Since Veloren can be arbitrarily large, it can be difficult to have simulations working at this unknown scale. Here is an excerpt from @xMAC94x,
One other question which is still open is how to cover world simulation. Because [Veloren] aims for a really immersive experience, we need to have strong world simulation. That covers everything from wars between cities to vulcanos exploding over groups of birds flying south when it becomes colder. This needs to be calculated on a larger scale. However, this cannot be done in detail everywhere on current hardware. So we need to focus on the area where players are, but not miss out areas with no players. We want a game where a region could change after a week even if a player hasn't visited it. We don't want chunks to be unloaded like in Minecraft and then just not worked on. Because we want the world to constantly be calculated everywhere, we cannot have an infinite world.
This current state of the discussion focuses on techniques that could be used to assist with this world simulation. The idea is ambitious, however, an open sourced game has the benefit of trying these new ideas without heavy repercussions.
A piece by @Aeronic