20.12.15

#2012 - Progress of b4146

It's been awhile now since the last game update, I did notice a whole bunch of stuff that required some attention though before the release of the coming update.

Too many changes has been made to go through every single one in detail but to mention some of the more important ones I'll start with the performance improvements made. I noticed the level load times beeing extremely long ( sometimes up to a minute. ) so that alone made optimization one of my priorities for the upcoming update.


Optimizations

Alot of optimizations done to the initialization of AI behaviour and game logics in general, I hadn't done much with the AI since my last major update, and alot of the functionality was built on temporary work-arounds and a massive amount of delegates to make them work, it resulted in alot of GC allocations though.

I've fixed the AI classes now to work properly and reduced the number of delegate methods to only contain what's necessary.

One of the largest performance thieves were the Corpse objects of the AI though, they generated a new mesh on startup that contained the damage model. I've made changes to the Gore system now that requires the corpse to load the damage model pre-runtime.

This required the Damage Model tool to be more or less completely rewritten, since the character meshes must be generated from the editor and saved as an asset. This method also resulted in each corpse model having alot more triangles since all damage models are combined into the mesh, however no meshes have to be generated at runtime and the only thing that has to actually be modified at runtime is the Mesh's uv coordinates.

Considering AI count in each level range in between 300 - 500 instances this cut down GC allocations and memory cost redicilously much, also level load times is now more acceptable around 4s - 8s on my computer. (As mentioned, compared to around 1 minute in earlier versions.)

Alongside those more important fixes, a couple of memory leaks have been repaired in Item and MobMod behaviours.


Game Balancing

The game difficulty was really uneven in general so I've tried to balance the game on pretty much all fields.

Monsters armor rating has been greatly reduced, but to compensate, their level modifiers have been increased, also item tier levels are unlocked more frequently, this was primarily done to allow the game to be easier in the first game levels to allow the player to find proper gear before facing more powerful monsters.

Damage stats and modifiers have been balanced for all monsters but for miniboss generated values and modifiers some balancing is still required.

Passive item modifier values have been reduced, aswell as item preset modifier values, consumable item cooldown's have been increased and item condition-related stats reward/penalties are now set more evenly, also a limiter has been applied to avoid items with minimal values beeing generated for higher item tiers and bounty gear. Gem tier modifiers are greatly reduced.

Most of the player ability costs have been increased, also cooldown modifiers have been modified.

New stuff

As a character profile is loaded the game will now validate any data belonging to said character to ensure they all contain the required info. Previously alot of data-loss and deprecated quest data occured on game updates, this issue is now fixed thanks to the data validation.

The Enhancer NPC can now identify unknown items collected by the player, these items usually contain a fixed modifier that gets enabled when identified and equiped. The Enhancer also allow the player to remove gems from any gear in their inventory.

2 new bounties have been added "Clean Swipe", in which the player must kill all monsters in a specified level and "Head of the Snake" with the goal to eliminate all monster officers in a specified level.

Survey bounties have been made more challenging now, with waves of monsters attacking the probe while the player's guarding it.

A new ranged weapon projectile type was added, called "Bouncer". They're primarily used by shotguns and will bounce on any non-organic surface it hits

A new equipment slot has been added "Holster". A secondary weapon can be placed in the slot, allowing the player to quickly swap between the primary and secondary weapon in combat, without opening the inventory.

This was more or less required since the ranged weapons now use plasma fuel to be fired. To avoid leaving the player defenseless if he/she runs out of plasma the player can simply swap to the other.

8 new tiles have been added to Chapter 4 ( The Bridge ) aswell as a new quest, that lead the player to discover the level "Armory"

New combat trackers have been added, also a UI pop-up now display the player's chain-kills and multi kills in combat.

I've begun fleshing out the boss fights a little, with events occuring during the battle, with waves of monsters, or traps beeing activated etc. etc. There's still alot of stuff left to do with this and it won't be finished until the coming update is released.

2 New alien Marker buffs have been added, "Energizer" ( Energy refill ) and "Claimer" ( Energy Claim skill bonus )

4 new fixed (preset) item modifiers have been added. "Magic Find Chance" modifier, "Painbringer" (Damage multiplier), "Regenerator" (Vital regeneration over time) and "Reflector" (Damage reflection)

Changes

The player's stamina vital has been replaced with what's called "Energy", consumables can no longer refill the vital, instead it is aquired by killing monsters. The amount of restored energy points are determined by a new player skill "Energy Claim".

Some of the most notable changes done at the moment are all new UI icons for the player abilities, also the Soldier class's "Ram" ability will now inflict damage on all monsters caught in the players path.

The Tech's "Bomberang" ability with a set of up to 3 proximity mines that are deployable as traps. Before the update's released the final Tech ability "Stinger" will be added aswell. More info on that when it's done.

Apart from the mentioned thingies above alot of minor bug fixes, improvements and changes have been made. I'll post a full update log by the time the new version is released.