Project Infinity March 28th 2017 Patch

Patching Process:

  • This version will be the final version that is a standalone version that requires all of the players to download the game in its entirety.  In future versions, a small patch file will be available to jump users from version to version.  This will reduce download sizes from 5 GB to 20-25 MB (except in graphically large patches).

UI Changes:

  • Spell effects now display on the HUD for both yourself and your target!
    • See below for a known bug involving the spell effects display.
  • Gear is now equipped or unequipped by right clicking not by left clicking.
  • Left clicking on spells still works.
  • Left clicking on a HUD element should not have the unintentional consequence of clicking through and clicking onto a player or object underneath, causing you to potentially change targets.
  • Right clicking on a player’s status bar will now properly bring up a context menu, allowing you to invite to a private party or to mark the target

Console Commands:

  • SetPlayerClass X where X is the number of the class you want to become (stored in alphabetical order).  This will be disabled when there is a better way for players to switch classes.  This command is case insensitive.

Private Groups and Marking:

  • Private groups have been added to the game.  You are able to opt out of the public group experience and instead control who is allowed into your party.  By entering a private group, you also gain the ability to use the mark component.
  • You mark someone by applying a number or symbol above their head.  Once a target has a number or symbol above their head, it follows them around, and the user is able to target that specific mark with a hotkey, making for easier targeting.  As stated in the private groups section, you cannot mark in public groups.  This may change in the future.

Chat:

  • Chat now wraps instead of truncating at the end of the line.
  • The chat scroll bar will now stick to the bottom of the chat log if you have not adjusted the offset, and it will stick to your offset if you have.

Threat:

  • Added a threat management component to all pawns so that threat is properly propagated across all of the targets.
  • Threat is handled through an algorithm that combines enmity, distance to target, and health of target.
    • Targets that are closer are favored over targets that are farther away.
    • Targets that are low on health are favored over targets that are fuller on health.
    • Targets that have more enmity are favored over targets that have less enmity.

Class Statuses:

Necromancer moved from “class fantasy design phase” to “first ability pass: implementation phase”.

  • Assassin – First ability pass: Test ready
  • Berserker – First ability pass: Test ready
  • Chaos Blade – Undergoing class concept revamp
  • Cleric – First ability pass: Test ready
  • Dreadnaught – First ability pass: Implementation phase
  • Druid – First ability pass: Test ready
  • Magus – First ability pass: Late design phase
  • Mesmer – First ability pass: Early design phase
  • Monk – First ability pass: Early design phase
  • Necromancer – First ability pass: Early design phase
  • Oracle – First ability pass: Implementation phase
  • Paladin – Class fantasy design phase
  • Ranger – First ability pass: Early design phase
  • Shaman – First ability pass: Early design phase
  • Troubadour – First ability pass: Early design phase
  • Warrior – First ability phase: Late design phase [Guardian was merged into Warrior]
  • Warlock – Class fantasy design phase
  • Wizard – First ability pass: Early design phase
  • Zealot – First ability pass: Late design phase

Bug Fixes:

  • Frostbolt no longer hits friends and foes alike.
  • Chat log no longer cleared on death.
  • The local player no longer sees every chat message as originating from them.
  • Overhead mark is now invisible until set, and it returns to being invisible upon unmarking.
  • Auto attacking now turns off if you are dead.

Known Bugs:

  • Clicking off of a target does not remove the spell effects display.
  • Right click turning does not replicate until you move without right click held down.
  • Minor rubber banding when you stop moving unless you are an authoritative client.
  • Ammunition is not consumed even if it is required for a weapon.
  • Only one character can be saved per server.  This is a shared quantity across all users.
  • Frames outside of the hotbars are not able to be dragged.
  • Blueprint Nativization crashes the game packaging process due to errors in Boost Bimap.
  • Sending a chat message attaches the camera to your cursor.
  • NPCs will continue auto attacking you after your death.
  • Spawning too many NPCs simultaneously will cause any player that also attempted to join the game to crash.

Project Infinity March 14th, 2017 Patch

UI Changes:

  • Hotbar buttons now properly display GCD.
  • Status bar’s MP and HP values transition between the old value and the new value in a much smoother fashion.

New Weapon Features:

  • Extended weapons now exist!  Extended weapons have an additional 25% range compared to that type of weapon.  This is an exceptionally rare affix for a weapon.
  • Weapons are capable of doing custom damage types!  A sword that deals fire damage or elemental damage is completely possible in this new system.

New Spell Features:

  • Damage types can change to the weapon’s damage type.
  • Weapon dependencies (both optional and required) now exist.  An optional weapon dependency is a situation where the ability derives its stats from the specified weapon, although it can use hands.  A required weapon dependency means that specific weapon types are required in the specified hands.
  • Some spells now have a range that is dependent upon the range of the weapon they have equipped.
  • Instant cast spells no longer wait a tick to activate and instead activate instantly.

New General Features:

  • Auto attacking has been added
    • Auto attacking does not require a main hand weapon to be equipped
    • Dual wielding supported
    • When an on-GCD ability is used, auto attack timers are reset
  • Influence Map
    • The new Influence Map supports multiple teams and uses 1/1000th the memory (literally).

Class Statuses:

  • Assassin – First ability pass: Test ready
  • Berserker – First ability pass: Test ready
  • Chaos Blade – Undergoing class concept revamp
  • Cleric – First ability pass: Test ready
  • Dreadnaught – First ability pass: Implementation phase
  • Druid – First ability pass: Test ready
  • Magus – First ability pass: Late design phase
  • Mesmer – First ability pass: Early design phase
  • Monk – First ability pass: Early design phase
  • Necromancer – Class fantasy design phase
  • Oracle – First ability pass: Implementation phase
  • Paladin – Class fantasy design phase
  • Ranger – First ability pass: Early design phase
  • Shaman – First ability pass: Early design phase
  • Troubadour – First ability pass: Early design phase
  • Warrior – First ability phase: Late design phase [Guardian was merged into Warrior]
  • Warlock – Class fantasy design phase
  • Wizard – First ability pass: Early design phase
  • Zealot – First ability pass: Late design phase

Bug Fixes:

  • Characters no longer have a frame between when their HP changes and when their HP is clamped to its acceptable range.
  • Dedicated server now works again.
  • Server no longer crashes if the owner of the buff/debuff is no longer available (offline or dead).

Known Bugs:

  • Reidrectors do nothing right now.
  • Too many NPCs/PCs being spawned simultaneously causes problems with players possessing their pawns.
  • AI does not know how to treat flying.
  • Equipped items do not display on the character, but they display inside of the HUD.
  • Attempting to use a consumable while a spell is being cast consumes the consumable but does not give the benefits of the consumable.

Project Infinity Influence Map

First demo with decals enabled:

Second demo with decals toggled on and off to show the performance of the system when decals are enabled vs. disabled:

This map is hideous.

Yeah it is.  This is a sandbox-test map that I use to demo anything before putting it into a “real” map.

How does it work?

It is a double buffered event-driven influence map that is based off of this article by Alex Champandard.

It appears to update in rows.  Why is that?

The amount of grids that are updated per tick (from the server’s perspective) are editable in the actor details panel on the right side of the picture shown below.

It updates a limited number of grids per run to keep the overhead low.  Setting the “Updates Per Tick” value to 0 results in it updating all of the grids at once.

What is the purpose of the influence map in this game?

The purpose of the influence map in this game is to simulate areas of control by the different factions within the game to indicate to the AI where it should focus their efforts.

What is the “BP_Outpost” that was added to the map?

The BP_Outpost added to the map is a constant influence point that the AI will construct to add spawn points closer to the front lines of battles.  The BP_Outpost, in its current state, adds no true gameplay ramification outside of the influence applier.  In the future, it will add spawn points to the world.

What does all of this lead to?

The goal for this is to create a system wherein the actions of the players or the NPCs can sightly shift the behaviors of the NPCs in the world.

What still needs to happen in the influence map?

  1. Performance upgrades
  2. Adding support for multiple factions
  3. “Smarter” spawning – Some of the grids being spawned simply can’t be pathed to, so spawning them in the current way is suboptimal.

What kind of performance upgrades are you looking at doing?

Now I’m going a bit on the technical end.  Right now, it spawns an actor for every single grid square.  That is horrendous, performance wise, although kudos to the Unreal Engine for being able to handle over 250,000 actors being on the map.  These are not ticking actors.  Only the original “InfluenceMap” actor is a ticking actor, and it chooses small subsets of the population to update.

I have a plan for a major performance overhaul which does involve moving away from actors for the influence grid and moving to a far, far more efficient system.

How large have you expanded it to?

512×512 is the highest I have managed to get into a game.  It is around 6 GB worth of influence map data on its own, although that is partially caused by them all being actors, and it is VERY obvious whenever a chunk updates.  So, that made it painfully obvious that I had to completely overhaul my system.

That seems excessively large.

It is.  Especially since no performance upgrades have been done yet.  This is the goal, though.  512×512 is the “target” for my project.  My project’s world map is intended to be split into an 8×8 grid of 64×64.

When is the next update planned?

I want to have the next implementation of the influence map ready to go by the end of next weekend.  I won’t have the debug visualization completed by then.

 

Hopefully I will have more specifics for the next blog post.