February 16, 2014

new features

it's been a long time since I made any real posts about the larger title I've been working on and quite honestly there's so much that's changed now it's hardly even the same game anymore
however since the new code has been compiling for over a week I figured now is a good time to try and do some kind of an update

side note, I'm seriously considering using some of the budget on some kind of server farm to compile next time because it's literally been compiling for over a week and is only just about to finish in the next few hours or maybe early tomorrow

we've completely rebuilt the networking from ground up and to test extreme scenarios we've been using simulated traffic in addition to our volunteers so we can really see how plausible it would be to have massive players in smaller areas like we were aiming for. So far we almost managed to get 700 players roughly 128 of which were real and the rest were simulated on a smaller map where players were basically shoulder to shoulder and moving around and the network could almost handle it from a movement perspective. Sadly once we had half of them shooting it completely crashed. We're still condensing information down to absolute bare minimums. In a larger map with real space to move and narrowing down what information each player needs for their area we managed to get the same number of people most of which were shooting and all we had was some nasty lag but only a couple of dropped connections.
 Basically packets currently contain location, direction of movement, and client side final calculations. Which is to say if a player shoots and hits or misses all that is currently client side because the servers can't handle it, the player's computer will determine from it's information if it's a hit or miss and then send that along to the server to pass around to relevant nearby players. Right now though information like trajectories or exact aiming isn't transmitted and there's no secondary checks so if someone shoots at you and misses all you get is a randomized bullet trajectory that's calculated from your position and the other player's position. I't stupid easy to hack though because if you find a way inject your packet with something that says you killed player x then that get's sent out to everyone and you could kill everyone on the map without even shooting so we're going to have to work on that soon. Though in terms of maximizing use of packets I must say final calculations of saying if a player hit or missed and having everyone else calculate details of what that means is really quite efficient.

When it comes to massive scale weapons systems we use the above networking to do what I described which is send a few packets out saying all players within a given distance of a position take x damage, with client side calculating if they're in the area or protected by a defensive structure, etc.

While small groups of people can handle high level detailed graphics we've been having a hard time with our distance based level of detail when dealing with so many players the graphics can really take a hit unless you have ungodly system specs

we updated most of the sounds now that we found a decent sound effects guy, so there are a lot more sounds now and they sound much better. We opted for proceedurally generated midi to keep sizes small similar to our texture and geometry methods.

there's been a lot of balancing and smaller tweaks that I won't enumerate suffice to say the higher skill levels got slightly nerfed and the beginning levels have been accelerated to narrow the power gaps a bit across the board

we improved terraforming algorithms from larger weapons with such an ability which is seperate from structural fracturing which also got a massive overhaul for various new material types and definitions, stress patterns, weight allocations, etc

there are several new weapons  such as
the nighty night baby doll and goodnight kiss traps which are gas traps that knock out your opponent for a while unless they have a gas mask
a customized directional shield adjustment where you can pick where your shield is the strongest and to what extent
some new grenade types
a couple new accessories and more customizations for each, as well as a new related feature where you can see outside of matchmaking all the different gun combos your opponents were using and what you get killed by most often with suggestions on how to increase your defense against them.
the weapons system was also given a small overhaul for more components with subtle alterations of each and their overall effects as well as what are called "efficient combos" which give additional bonuses not immediately noticeable when you're just looking at component stats but that are noted in the gun description
there are other similar types now for "power combos" and "weight combo" which is to say if it's obvious you're going for most damage, or the lightest weight you may get additional bonuses to damage, fire rate, movement speed or a cut in a movement speed penalty if it's a heavy weapon,  and you can have multiple bonuses though you won't get the maximum bonus of a given type unless all components have those qualifications and the biggest bonuses generally are only of a single type unlike some components that may have multiple types but of lesser values.
I'm currently working on displaying all such values for that in each component description as well as a primary component enumeration in the gun description to know how many components of the gun have said bonus and how many components there are in the gun

I'm also working on a prototype forge section where you can create new components with randomized variables you can then modify to boost their values eventually leading to a total gun creation mode aside from the one now that just uses the exact same components across the board

macro information systems are also finally being built in to gather information on how and when players change classes, detailed gun info and combos, k/d's with verbose stats per class and per game, relative accuracy as opposed to absolute accuracy, and all the other details I listed for stats when I started this blog and listed concepts.

I know I'm missing so much but this covers a few of the larger broad strokes we did.