Post news Report RSS Q1 – Review & Patch Information

We've started this year off very strong and have hit most of our milestones that were projected for our Q1 development cycle! While we didn't get everything completed that was scheduled, we spent more time in other more complex areas.

Posted by on

We've started this year off very strong and have hit most of our milestones that were projected for our Q1 development cycle! While we didn't get everything completed that was scheduled, we spent more time in other more complex areas. This allowed us to implement some advanced techniques such as: (Terrain Paging, CG & HLSL Shaders & Imposter Pages) which I'll discuss in more detail. I've also devoted some time to the creation of advanced debug tools, which allows for tweaking of environmental & game performance variables.

Terrain Paging

Terrain Paging

Take a look at the image above. Imagine that the blue dot is a player standing on a terrain page and the surrounding squares are individual terrain pages. The green pages are (loaded) and the red pages are (unloaded) sections of the terrain. Notice the black circle around the player, that's what is called the loading radius. As illustrated in the image above, when the player moves towards the right the area that the loading radius touches changes and so does the (loaded/unloaded) pages.

Why is this important?
This allows for better performance by not only unloading unused models and textures, but also freeing all of the resources that are mapped in virtual space to the physics components.

Won't it look strange with missing terrain pages?
No, the loading radius is set to compliment the clipping and fog visibility distances. So where pages are not visible, it will just appear to be the clipping distance for maximum visibility.

Shaders (CG &HLSL)

Before the game client was using the fixed function pipeline. This method comes by default (w/ OGRE) and provides generic and flat looking textures with very little room for adjustments. By implementing shaders, it allows us to tap into the full potential of the graphics card. We move the vertex and fragment calculations to the GPU and this allows us to perform advanced calculations. One example is the application of NORMAL Mapping & CSM( Cascaded Shadow Maps ) within the environment.

Normals Applied CSM Shadows

Imposter Pages

Remember playing DOOM or Duke Nukem in the 90's? You know those horrible looking (sprite) graphics, that's pretty much what imposter pages look like now. I know that you may be confused and wonder why someone would implement fuzzy/pixelated graphics into a 3D environment...

Doom

Well to put it simply, because they are far far away. So far that they are almost out of the line of sight, but close enough it would look weird if the item was completely removed. Now think about a scene that consists of 200 trees and of those only 50 are towards the forefront. While you may still see all 200, the graphic quality of the other 150 is trivial and unnoticeable.

Now let's do the math:
let's say that 1 tree 600 geometric triangles and each imposter page consists of 1 triangle.

Without Imposters: 200 x 600 = 120,000 triangles
With Imposters: (50 x 600) + 150 = 30,150 triangles

So as you can see from a performance standpoint it makes a HUGE difference!

Debug Tools

The debug tools provide a quick and easy interface to some of the more advance variable modifications. This dialog is also exposed to the Alpha testers so that they may try and find additional glitches that may occur during typical game-play. You can modify things like: rendering, debug lines, time of day, shadows, physics, clipping. In addition to the variable modifications you also have access to a free motion camera and detailed scene statistics.

Debug Tools

Item Placement & Manipulation

Also included in this build is the first implementation of item placement. This allows the players to customize their game instance by placing, rotating and modifying the items within the scene. Currently the item placing mechanics are built for alpha/debug testing. Before the game is publicly (non-alpha) released it will be fine tuned and will require resources/construction before any item could be instantly placed.

Patch v0.0.0.4 - Schedule

This patch is scheduled for 03/29/2014 and will go live around 9:00 AM EST. There are a few additional adjustments I'm working on before the release of the patch, but nothing that will stop it from happening. Since the client has undergone a major revision in terms of performance and graphics, the goal will obviously be to see how it performs and what breaks the client.

Post comment Comments
Trenial
Trenial - - 52 comments

Ill def be prepared on the 29th, exciting changes to play around with!

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: