Friday, January 18, 2013 3:51pm
Hello everyone, I hope the new year is off to a good start for you all!
Over the past months, we have been getting some good new data, good feedback, and making some significant decisions for Antilia, as discussed in my previous blog posts
. We have continued working on those designs, and the picture of what Antilia needs to be is really coming together. In 2012 we built a foundation; I think 2013 will be the year where we really build the game.
While I am eager to dive in and start building all these exciting new game play mechanics - first, there are a few things that I need to take care of. There are a few important features of the Toi engine that are missing, and it is a good time to do a bit of house-keeping. Some of these things have only recently started to become an issue, others have been incomplete or broken since the very first alpha tests.
Collision Detection (Complete)
As announced late last year
, we finally have collision detection in the game. We're going to need it soon for some new gameplay systems, as well as for building indoor environments other than caves.
With a little help from nVidia's PhysX library - collision detection turned out to be much easier to add than I was imagining it would be. (We know there will be cases of the player getting stuck after adding this - usually from sliding down a steep cliff to a position behind a rock or such. I don't think it would be helpful to have local/help chat filled with 'I found a place I can get stuck' every test. Players can always teleport so for now it'll be the player's responsibility to try not to get stuck, or teleport if they do. We'll start collecting these points with a slash command when we are ready to start finding/fixing them.)
Loading Area Re-sized (Complete)
For the past several months, I've been suggesting that one improvement that should be made is to "resize the world pages". I'll skip the technical description on this one - but suffice it is to say that it affects how much is being loaded and rendered on the client as well as how much work is being done on the server. The pages before were very large. One way this manifested itself was that previously while sitting in the mining camp, you could hear players chatting from base camp nearly to the shipwreck. (Your client was also being notified of their actions, movements, attacks, etc... wasting a ton of bandwidth with information about players too far away to see.
With these pages cut into quarters now - the server should be doing significantly less work. On the client the game now loads, updates, and renders only about 1/4 the number of things it did previously, and wastes a lot less bandwidth.
Have you turned off the clutter? (Complete)
Throughout much of 2012 it became something of an automatic response... if someone complained that the game crashed, the first suggestion was "Have you turned off clutter?" Eventually, I set it up so that clutter was always off by default on new installs. Graphical glitches and minor bugs are one thing - hard crashes are another, and it bugs me that Antilia was allowed to have such an easily reproduced crash scenario for the entire year.
This week, I built a vastly improved clutter system, which will hopefully make it an option people aren't afraid to leave on anymore. Meanwhile, Kathryn Crownover has been illustrating new enemy and flora designs this past month, and as I started to work on the clutter, provided a lot
of new clutter textures.
Improvements made include:
- Reduced Generation Area - Clutter is now generated in the immediate area around the player. This means that clutter requires far less memory than the previous implantation, and is generated much quicker.
- Improved multi-threaded/multi-core performance - 99% of clutter generation is now done in background threads, so that it doesn't introduce any new fps hiccups.
- Hardware Instancing - Uses hardware-based instancing when available, and automatically falls back to use a direct approach when not available. When hardware instancing is available, clutter density is much greater, and memory usage much lower.
- New constraint system - World builders can specify different bits of clutter to only appear between specific altitudes, or when the terrain is level or steep.
- New natural-looking "patches" - World builders can make clutter layers appear homogenous across the terrain (as it was before), or create 'patches' of flowers, grasses, and mushrooms that are grouped together in a more natural looking way.
The result is... well, see for yourself:
Of course, I am aware that for many players, playing with clutter on has, in the past at least, been a luxury that wasn't worth the costs. I've tried to design this system so that (with a few more of the improvements listed below complete) everyone can enjoy an Antilia that is a bit more beautiful.
Shader Improvements (In-Progress)
It is a little past time Antilia was running good
on as many systems as possible. I've done performance improvements before trying to buy a few more fps here and there - but yesterday the gloves came off, so to speak. I've started re-organizing and re-writing a lot of Antilia's shaders, creating a full set of low/medium/high quality versions for each, and optimizing them as far as I can possibly see. "Low" quality will be absolute bare-bones.. doing only what is absolutely required to get the image on the screen with as little work as possible. "Medium" will include a few extra visual features, if they come at a low enough cost. "High" will be for high-end gaming rigs, with all the bells and whistles implemented in as optimized a way as possible.
Beyond this, I will do another optimization pass on the whole system - basically turning everything off, and then turning things on one at a time and looking for the slowest parts of the game and improving them where possible.
Custom Input Controls
While it may not be a big deal for some players, the lack of custom controls is a bit of a headache for others - especially when it comes to mouse sensitivity. Bad controls have ruined more than a few games in the past, and there is no reason to let something as simple as mouse sensitivity ruin the experience for some. I have custom controls working in our editor already, so I can at least make a quick port of that so there is something
in place to help players fix these issues.
Fix Background Loading
In the core of the Toi engine is a really neat file loading system - one that which allows me to load practically anything I want in the background - textures, meshes, terrain, etc.
Unfortunately, it hasn't been put to good use in a few places, and the result is felt in-game. Cross into a new zone, and suddenly the game freezes for a second or starts hiccuping. I'd like to resolve this once and for all, and smooth out those annoying frame-rate hiccups.
These things will, unfortunately, require my attention into February, but I need to get them out of the way so I have a fast, smooth-running platform before I start adding the new stuff. I would love to have the second annual fishing contest in the same time-frame as last year... but looks like we'll be a little delayed.
This month, we may end up with a social event, but if I can get a few more of these 'housekeeping' tasks done in time I might have a new release in time featuring most of the above improvements. Whichever way it turns out, let's plan it for the last weekend of the month - January 26th and 27th.
PS: (I know I typically announce the yearly resolution/goals in January, but this post has gotten long enough - so we'll save those for next time.)
Discuss "Preperations for 2013"