Busily Bolting Onward! – Friday, October 20, 2017


It finally feels like we really are in Autumn this week, as the weather dipped momentarily into “Wow! I guess I need a jacket!” range. But then, the end of the week went back to t-shirt weather, so who knows? Anyhow, welcome to our end of week update! If you missed today’s live stream with me (Tyler) and Tim, you can catch that HERE. This week’s update finds us detailing the last five weeks of work in our User Stories update. We continue making some great progress this week, in many areas, as shown below in a longer-than-average Top Tenish list!

Top Tenish:

  1. Tech – Performance/stability improvements: The team has been tackling stability and performance from multiple sides. Here’s some of the juicy bits, waiting on testing:
    • We noticed some performance issues around the the inventory component having too large of a buffer. By creating some simple custom serializers, this cut the buffer size of sending the items from the game server to other servers by potentially 70%.
    • George is continuing his work in moving our windows message handler off the main thread. Along the way, he’s cleaning up and organizing existing code, making things easier to maintain in the future.
    • Marc tuned some server-side metrics to better support large numbers of players. Heavy metrics are fine when you only have 400 players, but when you have 2000, like we’ve shown with our ARCs, those same metrics can cost too much processing power.
    • Towards the end of the week, Andrew found a small tweak, giving us a possible 10% performance increase for the server. Interestingly, he noticed this change could be applied in several other areas, which he’s working through.
  2. WIP – Tech – Character Information Updates: This week, Christina gave us access to lots of data that can be displayed through our character info screen.
    • The progression system can track and display how many times you’ve gotten credit for using each skill part.
    • We can also show armor stats per body part region.
    • Players can get information about restrictions on equipping gear.
    • You can also view your Banes and Boons, base stats, play session length, and skills used. This info isn’t displaying in the UI just yet, as we will next need AJ to work his magic.
  3. Tech – PostOffice: Caleb and Colin have tag teamed the implementation of our new messaging system, called the Post Office. This allows us to send information from one entity to another in cases where we either don’t know where our intended receiver lives or if we have multiple receivers (and we don’t know where they live). We utilize this kind of system in gameplay, so we can tell players (or really anything that cares) what’s currently happening in the heat of battle.
  4. Tech – Siege Improvements: In between tasks, Matt made some small fixes to siege engines. Sound effects for skills running on siege engines have now been hooked up. With the help of some debugging visualization, he fixed a few issues with projectile prediction and orientation in the client.
  5. WIP – Tech/Design – Building testing: After rolling out the DevUI for buildings, Ben and Rob went back and forth discussing the current workflow for adding block types to our spreadsheet in addition to placing building plots through the editor. Revisiting these systems allowed us to track down a few bugs that had crawled their way in. Knocking them out paves the way for future building improvements (a.k.a., epic destruction!).
  6. WIP – Tech – Animation Support: Brad has been tackling a multitude of animation and animation-adjacent tasks this week. He’s been working with Scott on finding a solution to making start walking-stop walking-start walking again blend nicely, and gathering requirements from Scott, Ben, and Tyler on how flinches should work within our system when another animation is currently playing. He’s also updating emotes in the same way we select other clips.
  7. Tech – Patcher Alerts: Following JB’s recent work with our new WebTools, how we enable non-programmers to update information for Messages of the Day and similar notifications, AJ helped wrap up our patcher alerts. This is a short message we can display for a specific period of time to inform our players of pertinent information without the need to actually launch the game client. Just open the patcher, log in, and check out the latest info!
  8. Art – Animation – Unique Longbow attack:  Sandra has finished a pass on a unique bow animation that we want to use for some testing to place VFX and sounds at different points in the ability. Today, she began work on a couple of small tasks: shortbow and longbow hold loops and deflects.
  9. Art – VFX – Siege Testing VFX: Mike finished the needed VFX for our siege test abilities. These have helped us find a few bugs and feature requests for later, during Beta 1. He’s now moving into the bow abilities we’ve prepped for siege testing.
  10. WIP – Art – Environment: Dionne created three sets of new plants, primarily to support pond or moat edges. We focused on polycount with these, to support our large-scale battles. They look great, while still being cheap! She’s now working on a larger set of terrain materials for above, at, and below the waterline.
  11. WIP – Art – Generic Arthurian Clothing: Jon continued work on this new set of clothing assets, focusing on the sculpt, and starting on a material pass.
  12. WIP – Art – Arthurian Ship Concepts: While working with James this week on the character creation background, Michelle found time to come up with some more ideas for the Arthurian ship designs.
  13. Art – Animation – Greatsword: Scott created an updated mid pierce attack this week, supporting tests of new animation timings.
  14. WIP – Art – SFX: dB created several new sounds for Mike’s new siege VFX, as well as assets for using the siege engine itself.
  15. Art – Siege – New Bolt Models: Jon created a plethora of new bolt models this week, some of which are specifically for the new siege testing abilities, and some for future use. Some may even turn into spears, later!
A hefty haul of work this week, and that’s only the highlights! User Stories this month, like our Top Tenish, are chock full of lots and lots of items. 178 to be exact! If you want to find something specific, you can always head over to our User Stories page which is searchable. If you’re not interested in all the details, scroll down until you start seeing some of the art from this week.

User Stories:
180 Total
33 Old cards with 167.
2 New cards with 13 completes.

As a Backer, I’d like to know about smaller changes that don’t have their own user story.
Add GraphQL to DevUI. – Complete
Give DevUI access to API requests and use indexes instead of titles for mapping tabs to content. – Complete
Set up protobuf message and plumbing to send a ‘show dev UI’ message from server to client. – Complete
Create infrastructure for dev UI for hot-reloading C# classes the same way we do XML files. – Complete
Show list of dev UIs in a perfhud tab in the client. – Complete
Create PostOffice system for managing message sending and receiving. – Complete

As a Backer, I’d like to see the world of Camelot Unchained continue to develop through its lore.
Silverhands Becoming – Part 5 Final Draft – Complete
Silverhands Becoming – Part 6 Final Draft – Complete

As a Backer, I want to be able to own a plot of land and build within it.
When claiming a plot, claim for faction and player. – Complete
Prevent player from owning more than one plot.  – Complete
Add DevUI to expose plot management slash commands. – Complete
Add admin page for building plot DevUI. – Complete
Building plots can be initialized to a master blueprint. – Complete

As a Backer, I’d like characters to have vocalized combat, damage, and death reactions.
Upload vocal assets for testing and sort by flinch, exertion, grunts, etc. – Complete

As a Developer in Beta 1, I’d like to have a strong library of sounds for abilities during Beta 1.
First Pass: Equip and unequip – axe. – Complete
First Pass: Axe – slash. – Complete
First Pass: Polearm – crush and slash. – Complete
First Pass: Dagger – slash and pierce. – Complete
First Pass: Axe – slash leather impact. – Complete
First Pass: Axe – slash cloth impact. – Complete
First Pass: “Large blade” slash and pierce impact. – Complete
First Pass: Spear slash and pierce. – Complete
First Pass: “Blunt weapon” crush impact. – Complete
First Pass: Shield crush attack, metal and wood variations. – Complete

As a Developer and Backer, I’d like to see improvements in memory usage and threading.
Remove need for multicontext threading from placeable objects. – Complete
Add multithreaded logging system for ParLL. – Complete
Run UI deferred message update on all scene contexts. – Complete
Further combination of ParLL internal context state into a single unified non-locking state machine. – Complete
Protect against semaphore order contention. – Complete
Prevent ParLL multi-context split from sometimes losing one or more of the contexts split on an earlier job. – Complete

As a Developer and Backer, I’d like to see improvements in lighting and rendering.
Factor in the light radius to the bounds of our system to prevent randomly turning on/off when particles are larger than the system they are a part of. – Complete
MeshCombiner improvement – don’t queue the same buffer multiple times for multiple accumulation passes in shadows. – Complete
Fix flicker when building higher LOD character through Character Manager. – Complete
Don’t change a model’s pooled meshes outside the render context lock in the Character Manager. – Complete

As a Backer I’d like a patcher to not only update my game, but also give me the most important news and updates, get support, chat with the community and look awesome while doing it!
Update PatchNote ID query argument to be a string instead of an int. – Complete

As a Backer in Beta 1, I’d like to play as a Crafter with basic gathering and crafting mechanics for testing.
Improve performance when sending large numbers of Vox ingredients through GraphQL crafting queries. – Complete
Add slash command to list all alloys in game. – Complete
Add CSV test to ensure alloy loadouts are not specified on non-alloy items. – Complete

As a Backer in Beta 1, I’d like to have a selection of character emotes to use.
Create skill part that plays an emote with the specified tag. – Complete
Hook pre-built emote skill to play on slash command. – Complete
Add the concept of ‘implicit’ skill defs for emotes, so that they don’t need to be in the skills known list, or on the ability bar, or in the crafted skills database. – Complete
Add Hide Model Effect to hide your weapon on an emote and properly push the tag. – Complete
Create Emote AnimSet tag so we can play animations specifically from that set and don’t need all other sets to include emotes. – Complete

As a Developer, I’d like to have a selection of weapons that visually represent each Realm’s identity. – Arthurians
Quiver: modeling and materials. – Complete
Longbow – v2: Modeling, materials, integration. – Complete
Shortbow – v2: Modeling, materials, integration. – Complete

As a Developer, I’d like to have a selection of weapons that visually represent each Realm’s identity. – TDD
Quiver: modeling and materials. – Complete
Longbow – v2: Modeling, materials, integration. – Complete
Shortbow – v2: Modeling, materials, integration. – Complete

As a Developer, I’d like to have a selection of weapons that visually represent each Realm’s identity. – Viking
Quiver: modeling and materials. – Complete
Longbow – v2: Modeling, materials, integration. – Complete
Shortbow – v2: Modeling, materials, integration. – Complete

As a Backer in Beta 1, I’d like to be able to pick an item up off the ground, put it in my inventory, and if applicable, equip it.
Add nine new columns (one per player stat) to item sheet.  – Complete
Check all nine stats when checking if a player meets item requirements. – Complete
Check equipment on character load and move items to inventory when they don’t meet requirements. – Complete
Check item stat requirements when equipping items, and move items to inventory when they don’t meet requirements. – Complete
Hook up trash sound effects when an item is destroyed. – Complete
Early move operations when the item is being asked to move to the exact spot it is already in. – Complete
Adding armor stat calculation type information to the item context, which computes armor stats. – Complete

As a player, I want to view a character UI that shows me my stats, allows me to swap out my equipment, organize my inventory, and see my collection of crafting resources.
Implement failsafe to prevent inventory hang if API server goes down.  – Complete
Make sure an item can leave your inventory when it is the only one left in the collection.  – Complete
Match client equip flow with moveItem requests. – Complete
Add more character related data to GraphQL queries for use on the character details page. – Complete
Addtional inventory UI SFX. – Complete

As a Backer in Beta 1, I’d like a progression system that allows me to upgrade my abilities, stats, and items
Apply effects to character as a reward for a skill part level. – Complete
Apply skill nodes to the character during the acceptance of their daily log. – Complete
Add progression events for creating and destroying blocks.  – Complete
Credit placer of the blueprint with creation of blocks.  – Complete
Track event data for the plotID and position of the plot. – Complete
Track total blocks created and destroyed by character in their logs. – Complete
Have shards track the sum of all blocks created and destroyed across the shard in their log. – Complete
Hook up skill progression dev UI. – Complete
Enable progression tracking for damage, healing, and death. – Complete
Apply progression bonuses from player stats to the actual player.  – Complete
Factor progression bonuses into stat calculations. – Complete
Recompute player stats when progression components are updated. – Complete
Convert progression app to state machine.  – Complete
Split DB and shard information out at the start of the application. – Complete
Setup option config settings for controlling application flow.  – Complete
Enable configurable length of day. – Complete
Adding server command for globally resetting progression. – Complete
Allow player stats to have XP and gain XP through skill part use. – Complete
Track a list of stat requirements and current player stat values for each part and use them in the progression app to figure out how much XP to grant. – Complete
Store current progression points per stat in player data. – Complete
While processing the events for a character, if a useSkillParts event shows up, examine the new stat data. – Complete
Add a config option to be able to turn on/off progression tracking of damage/healing over time. – Complete
Update rules for distance moved calculations on progression summaries to help detect events such as teleports. – Complete
From the progression app, while deciding if a processed day should be published, the option is now given to export the character adjustments to a CSV document. – Complete
Update tracking of damage/healing dealt through progression system to track for multiple types of entities. – Complete
Revamp skill requirements to have sufficient metadata to power progression and client UI. – Complete
Create SessionStats component to track only player session information. – Complete

As a Developer, I’d like the Camelot Unchained ability system to fully support the design scope of the game for B1.
Revamp starting skills defined in xml by simplifying SkillDef. – Complete
Add starting skills during player login if they don’t have any skills. – Complete
Assign unique IDs to skilldefs. – Complete
When sending SkillsKnownComponent to another server, also send the blocked and allowed categories. – Complete
Fix subject group logic to have two groups; targets and recievers (and make it so that not all event components have subjectGroupLookup as a field). – Complete
Support target track that checks friend first and falls back to enemies. – Complete
Change OwnerHistoryComponent to store an EntityID instead of an IEntity. – Complete
Projectile Entities remember the skill that spawned them on the server, and send it down to the client. – Complete
Update skill XML so ClientProjectileEffects correctly target Self. – Complete
Creation of clientside Effects now gets an ActiveSkill for use by the Effect. – Complete
Send projectile physics predictions to everyone instead of just the person using the skill, so they can inform client predictions. – Complete
Add an IgnoreInitialContacts physics flag that can be used for projectiles to escape from their source’s geometry. – Complete
Add AttachProjectileEffect that will attach the Renderable from a predicted projectile (on an ActiveSkill) to an Entity as part of its animation. – Complete
Store ActiveSkill in constants collection. – Complete
Fall back on the skill entity’s model rather than trying to get a parent that doesn’t exist. – Complete
ActiveEffectsController supports ActiveEffects that do not have time durations.  – Complete
Add options for projectile effects and active effects to skill detail command. – Complete
Hide weapons anim event for equip/unequip weapons. – Complete
When firing local projectiles, use the gravityFactor from ClientProjectileDef. – Complete

As a Developer, I’d like to prototype various combat animations to support future system improvements during Beta.
Polearm polish pass. – Complete

As a Backer in Beta 1, I’d like to be able to hold a torch during travel stance and use it as a weapon when in combat stance.
Set torch as a weapon that can be used in travel stance, with animation setup complete. – Complete
Create left arm combat idle flinch. – Complete

As a Backer in Beta 1, I’d like to test the look and feel of combat with the new animation system, while wielding a greatsword.
Offensive stance: Mid slash attack, 3 swings with static timings for testing. – Complete
Offensive stance: Mid pierce attack. – Complete
Offensive stance: Equip and unequip (travel to combat). – Complete
Offensive stance: Arrow impact flinch. – Complete
Offensive stance: Mind damage flinch. – Complete

As a Developer, I’d like to find a simpler solution to equipping and unequipping my weapons from different stances that reduces animation overhead.
First pass test: Equip and Unequip of two-handed weapons using shared animations. – Complete

As a Backer, I want to seamlessly move between islands and zones without being aware that I’m moving between different game servers.
Physics Subzones:
Avoid deleting PhysX actors when removing ActorProxy from a physics subzone.  – Complete

As a Backer in Beta 1, I’d like the updated encumbrance system to use an item’s weight and compare that to the stat-driven carrying capacity of my character.
Upon creation of Inventory Component, check for encumbrance (so a player can’t log off/on to lose debuff).   – Complete
Tie re-application time more directly to length of debuff in skill node if possible. – Complete
Add a flag to the Inventory Component to see if they are already encumbered so we don’t apply multiple debuffs if your inventory changes multiple times. Or remove an existing debuff before applying the new one. – Complete
Remove encumbered debuff when a player’s weight goes below max.  – Complete

As a Backer in Beta 1, I’d like the set of animations the player uses to be controlled by the player’s stance, equipment, and other such gameplay factors.
Add sound effects to stance changes. – Complete

As a Backer, I want an animation system that blends multiple animations together, and allows for immersive and fun combat.
Google Sheet integration:
Improved error handling on Build Server when loading sheets fail. – Complete
New Animation System
AnimWalker client side commands for toggling a state on how the ClipTime is updated. – Complete
Add a PerfHUD panel for debugging animations. – Complete

As a Backer in Beta 1, I’d like the ability to build, spawn, aim, and fire a siege engine at players and buildings.
Make right-click interaction with siege engines pop open a menu instead of immediately using the engine.  – Complete
Add new dev UI with buttons for all the primary siege slash commands, and round-trip parameters to perform those actions *and* refresh or close the UI. – Complete
Allow click-to-interact on siege engines that are in use, unless you’re the one using it. – Complete
Allow picking up siege engines that you’re not using, as long as no one else is using them. More work pending here as regards control/ownership. – Complete
Create several new Scorpion components for siege-focused testing. – Complete
First pass VFX: Siege Testing ability impacts. – Complete
First pass VFX: Siege Testing ability travel. – Complete
First pass VFX: Siege Testing bolt travel. – Complete
First pass VFX: Siege Testing ability prepare. – Complete
SkillDetail supports siege skills. – Complete
Add debug visualization to siege projectile prediction and orientation.  – Complete
First pass SFX assets: Siege pack up, deploy, enter, and exit. – Complete
First pass SFX assets: Siege load, unload, fire, drop. – Complete
First pass SFX assets: Siege Test ability impacts. – Complete
First pass SFX assets: Siege Test ability bolt on travel. – Complete

As a Backer in Beta 1, I’d like the landing areas to be propped out with a wharf from which player can travel to and from other islands.
Boats: 1 Viking-themed boat. – Complete
Second pass concept art: Realm-specific boats. – Complete
First Pass concept art – Viking Longship designs. – Complete
First pass concept art – Arthurian ship designs. – Complete
Second pass concept art – Arthurian ship designs. – Complete
First pass concept art – TDD ship designs. – Complete

As a Backer in Beta 1, I’d like to be able to explore a mine using the portaling and zone transition tech, in lieu of the post B1 “bubble” tech.
New parts added to support design needs. – Complete
Import all parts with updated naming convention from Design. – Complete

As a Backer in Beta 1, I’d like an interactive portal system that teleports me to other active portals based on availability and Realm control.
First pass VFX: Viking Portal. – Complete
Arthurian portals – update and improve materials. – Complete

As a Developer, I’d like to improve the speed of creating environments, adding additional assets, and audit work needed for Realm territory variations for Beta 1.
Existing assets set up as individual terrain mods:
Deciduous 001 – Stumps and logs. – Complete
Dead deciduous 001 trees – Complete
New terrain assets:
Terrain: Freshwater muddy bank v1. – Complete
New Models w/ Mods:
Matching weed set for specific terrain material. – Complete
Freshwater reeds v1. – Complete
Generic river plant. – Complete

As a Developer and Backer, I’d like the character selection screens to be updated with new and improved visuals, including character renders that better represent my class choices.
Third pass character select background concept. – Complete
TDD Realm first pass background art. – Complete
Viking Realm first pass background art. – Complete
Arthurian Realm first pass background art. – Complete

As a Backer during Beta 1, I’d like to have a selection of basic clothing to wear about town.
Second pass male concept art – TDD variation. – Complete
TDD male variation concepts. – Complete
First pass male clothing assets v1 breakdown for multi-part armor system. – Complete

As a Developer and Backer during Beta 1, I’d like to see improvements in client rendering performance from improvements in art assets.
Add LODs to Viking, Arthurian, TDD, bow models, including newly added variations. – Complete

New Cards:

As a Backer in Beta 1, I’d like to test the look and feel of combat with the new animation system, while using a shortbow and longbow.
Offensive stance: Shortbow – 3 static timings for testing. – Complete
Offensive stance: Longbow – 3 static timings for testing. – Complete
Offensive stance: Longbow – unique animation for testing. – Complete
Offensive stance: Updated shortbow idle, flinch, block. – Complete
Offensive stance: Updated shortbow movement to match new idle. – Complete

As a Backer in Beta 1, I want NPCs that serve as both allies and enemies in battle, as well as characters that provide important information to players.
Send Entity deltas to API and NPC servers. – Complete
Make NPCs use siege engines. – Complete
Enable NPC server to send client commands. – Complete
Enable NPC server to send slash commands. – Complete
Add NPCDef and functionality to load them from a CSV. – Complete
Slash commands to spawn NPCs from NPCDef. – Complete
Make NPCController set behavior parameters from its NPCDef. – Complete
Add NPC message box UI. – Complete

Lots of progress over the last five weeks! We decided to reduce our testing over the past several weeks so we could really buckle down and focus. It’s really great to see the fruits of that hard work panning out and to show that to our Backers with these results!

Let’s move to art from this week. First up, we have some images of the work Scott and Sandra are doing on a mid pierce greatsword attack from Scott, and a unique longbow attack from Sandra. I wanted to start with static images this week, as the focus of these was stronger posing. We’ll have a video next week!

Next up, we have some concept art from Michelle of possible Arthurian ship ideas.

As mentioned in the update stream, Dionne completed some great-looking small plants. All her assets lately look great while still being cheap to render!

Jon continued work on the sculpt for the Arthurian basic clothing this week.

Jon was also able to complete a material pass on the previously sculpted scorpion bolt models.

That wraps up the week for us here at CSE. I hope you’ve not only enjoyed today’s stream, the week’s highlights, aaannnddd the huge list of User Stories. All of this represents a lot of focused hard work from our team to deliver a great game. Have a great weekend all!