The Rewards of Hard Work – Friday, June 16, 2017


Another week and another step closer. Making an MMO is hard. Making an MMO with lots of fun ideas and great tech to back it up is even harder! Yet each day I get up and feel blessed I get to work on this project. I’ve said this before in live streams, and I’ll say it again. You have to enjoy hard work and problem solving to work in games.

I just finished up a quick conversation with Scott and Sandra to make sure we were on the same page about what animations needed to be worked on next. We’re using a couple of great features from Andrew’s new animation system to save us a bunch of time animating different combinations of one-handed weapons. The satisfying thing was the left arm torch overrides on the idle poses worked, and informed what pieces we still needed to do. This then piggy backed into today’s conversation on thwacking a dude with a torch while holding a sword in the opposite hand, or alternatively, slashing someone with a sword, while holding the torch. There was a general sense that we had this figured out and felt confident moving forward.  Are we right? We’ll know next week!

Each day in the office is like this, many times a day, among the team. I know that for a lot of us, it’s what makes the hard work satisfying. We have been doing a lot of testing this week, in office or impromptu that has kept us busy while progressing on new features. Speaking of features, let’s move to the week’s highlights, the Top Tenish, followed by this month’s user stories.

Top Tenish:

1. WIP – Tech – Rendering Improvements: When giving an update in the morning stand-up, George said, “I’m on a rampage.” Since wrapping up major improvements, George has been hard at work cleaning out the backlog of visual oddities our players have reported. This includes:

  • HDR Eye Adjustment Stability: Exposure values are more correct and should vary less based on what light source you came from previously and when looking into highly bloomed areas. This means that scenes should have similar exposure if they are lit similarly, regardless of if you are looking into the sun or not.
  • Unlit Objects: Unlit objects should light correctly after being added without having to manually exposure correct them, which fixed a bunch of sun rendering issues.
  • Ambient Lighting: Fixed for some widgets rendering their colors into the global illumination pass, so things like nameplates won’t reflect on shiny surfaces.
  • Bloom: Fix for light rays showing up while looking in the wrong direction
  • Shadows: we had some rare cases where shadows would flicker oddly when the camera moved, and those should be fixed now.

2. WIP – Tech – Encumbrance Penalties: We finished off the first part of encumbrance penalties item on the Beta 1 Checklist. The weight of items in your inventory now affect player’s movement speed. Movement speed is also affected by exceeding one’s carrying capacity stat.

3. WIP – Tech – Combat Improvements: After making several animation improvements (still lots more to come!) we’re adding in more features to allow better tagging of VFX and SFX to specific frames. Of particular note, this will allow us to get correctly timed footstep sounds back in, as well as better pairing overall when VFX and SFX play during animations.

4. WIP – Tech – Seamless Zone Transitions: Colin has continued to optimize this feature from several direction to make it smoother and reduce the chance of loading screens. Of note, we’ve improved the prediction of player speed and player location between servers and improved the speed of reading player item data. It’s still a WIP, but not for much longer.

5. WIP – Tech – Siege Engines: Testing the Scorpions was a big success this week which allowed us to verify that our siege engines are on the right track. We also got a two-for-one by updating the aiming position prediction so the client more accurately reflects where shots are going to land, affecting siege and archery. Moving forward, we plan to separate siege shooting from archery shooting so both feel unique.

6. Tech – Support for Crafting UI: Mehuge, one of our Mod Squad members, lent us some of his time by creating a work-in-progress UI for crafting (which was previously only using slash command). After successful testing last week, we’re continuing to refine and add features based off progress of the crafting system and further support his work.

7. WIP – Tech – Character Inventory: Thursday, AJ streamed some of his work on the early version of the player inventory screen. You can catch that HERE. This is still in a very early stage and we’re hoping to get some office testing on it next week.

8. WIP – Art/Design – Ability SFX/VFX Tagging: Work started last Friday on some of the archer class abilities to hook up SFX and VFX using all the new features and systems we’ve been talking about. Unlike other MMO’s where player abilities are fairly static, our abilities are created by the players, meaning we have lots of possible permutations. This could have created a mountain of work if we had to create unique assets for all of them. To speed this up we use a weighted tagging system matching the component tags with the asset tags. This speed we gain allows us to finish out Beta 1 content, while still later allowing us to expand this system further down the road.

9. Art – Great Axe Animation and Torch Setup: Scott finished off a more challenging great axe swing animation this week, which will be linked in today’s update HERE. We are using this asset to test how the preparation and recovery timing of the animation links up to the ability system. Scott has also spent time working with Sandra setting up improved one-hand torch animations as overrides to existing idle clips. This is one of the handy, time-saving functionalities in Andrew’s new animation system. Previously we had to create a new upper body animation when all we needed to change was one arm movement.

11. Art – Torch Animations: Speaking of torches, Sandra finished up additional polish work on the torch, which has helped inform how we approach one handed weapon combinations in general, particularly when using Andrew’s new system. Towards the end of the week, we have started working on one handed swords, paired with the torch, to see if the attached arm animations sync up well in movement and combat.

12. Art – Realm Specific Torches: Jon finished some realm specific torches. The next step will be adding them to player inventories based on their realm, as well as adding VFX and lights.

13. Art – Environment – Dock Assets: Dionne finished up a first art pass on the dock, adding materials, some props, and VFX to the assets. We’ll use these, moving forward, as part of the landing areas of our safe islands for Beta 1.

14. WIP – Art – Realm specific statutes: Since players will be able to seamlessly transition between zones, as well as teleporting In Beta 1, Jon began working on some realm-specific statues to represent those portalss so it is clear which statues players may not be able to use if it goes to an opposing factions safe island.

15. Art – Sound – Weapon Foley: dB spent a bunch of time whacking at different metals and woods with a plethora of garden tools to get more combat sounds. He spent much of this week happily processing that work for use in game.
Design – Crafting – Stones: While not the kind that made awesome music, Mark added around 100 stone types to the game’s item system. Next up, turning those stones in blocks, bricks, etc. for players to build with in the game.

Obviously we call this the “Top Tenish” for a reason, as it started out as ten items per week, but slowly grew as the team did. For user stories we mentioned, last week, we are moving the cadence of user story updates from twice a month, to once a month. This was to give our Producers, Brittany and myself, more uninterrupted time. This week sees us covering three weeks to meet our mid-month update change. For those of you that are new to CU, this next part is the more detailed version of what has been completed over the last three weeks. If you want to jump to art, just scroll down till you see pretty pictures!

User Stories:
23 Old cards with 74 completes
2 New cards with 6 completes.

As a Backer, I’d like to be able to be able to play an Archer.
Manual aiming revisit post re-ab
Fix terrain LOD origin to not move around with aim target when in aiming mode. – Complete
Ammunition revisit post re-ab
Separate munitions from resources. – Complete
Update arrows and vials to use similar functionality in code. – Complete
Introduce new ConstantCollection on ActiveSkill. – Complete
Stash ammo data in the state component after it has actually been removed from the inventory. – Complete

As a Backer, I’d like to play in new biomes that change according to Realm ownership. – Biome 01
More aggressive LOD pass on all existing trees, including realm variations. – Complete

As a Backer, I’d like to play in new biomes that change according to Realm ownership. – Biome 04
Second optimization pass on fantasy fern assets. – Complete

As a Backer, I’d like to play in new biomes that change according to Realm ownership. – Mini biome – Willow trees.
Additional base tree model variations. – Complete
Terrain material set created. – Complete

As a Developer, I’d like to increase physics performance, as well as make changes easier to integrate.
Avoid using bad data from client movement updates. – Complete

As a Backer, I’d like to know about smaller changes that don’t have their own user story.
Support bots having their own inventories. – Complete
Give archer bots a minimum shooting range. – Complete
Added newer version of DirectXMath to increase performance. – Complete
Prevent interrupting input when transitioning between the follow camera and the target camera. – Complete
Don’t update the player entity’s facing pitch in the follow camera when looking around holding right mouse. – Complete
Compute world time start using Stopwatch rather than DateTime on the game server to avoid discrepancies. – Complete
Generate EntityWritable code for all members of InventoryComponent to avoid unnecessary recalculations. – Complete
Added rendering of zone select UI if the game is not loading and is is offline mode and is not rendering splash screens. – Complete
Create ChangeTracker to generalize tracking of high-level changes to entities. – Complete

As a Backer, I’d like to see graphical and networking performance improvements, when building and destroying structures.
Improve building metrics tracking to measure performance changes with recent building upgrades. – Complete
Move geometry creation code out of BuildingRenderable and into a location that can be shared by client/server. – Complete

As a Backer, I’d like to know about all the smaller enhancements the MOD Squad makes to Camelot Unchained.
Basic temporary crafting UI. – Complete

As a Backer in Beta 1, I’d like to see improvements in visual performance, particularly frame rate and memory usage.
Update renderables to separately track the last frame rendered in any view. – Complete
Rate of update of renderables is throttled based on distance and relative priority. – Complete

As a Developer and Backer, I’d like to see improvements in lighting and rendering.
Optimize particles by packing vertices. – Complete
Don’t draw invisible particles. – Complete
Move computed HDR eye adjustment out of being manually set with each shader into a global setting. – Complete
Prevent light rays from showing up after turning away from light source. – Complete
Prevent gizmos from casting ambient light into the world. – Complete
Prevent gizmos and name plates from showing up in reflections on shiny surfaces. – Complete

As a Developer, I’d like to see improvements in the editor to facilitate my work.
Ensure temp particles use the same ResourceID for the different build steps. – Complete
Handle the fact that users can make edits to a particle faster than the particlebufferdef can be built. – Complete
Track last user to edit a cog through the editor, based on computer name. – Complete
Ensure sound editor saves the project file before all of the cogs. – Complete
Inform editor users when the editor is patching. – Complete
Add a “missing model” resource ID to communicate something obnoxious when a model breaks. – Complete

As a Backer in Beta 1, I’d like to have a sampling of Arthurian light, medium, and heavy armor to wear in game.
Second pass helmet materials. – Complete

As a Backer in Beta 1, I’d like to have a sampling of Viking light, medium, and heavy armor to wear in game.
Create additional heavy to medium helmets for B1. – Modeling and Mats. – Complete

As a Backer in Beta 1, I’d like to have a sampling of TDD light, medium, and heavy armor to wear in game.
Second pass helmet materials. – Complete

As a Backer in Beta 1, I’d like to play as a Crafter with basic gathering and crafting mechanics for testing.
Items made from substances or alloys can be broken down into said parts. – Complete
Expose item salvaging functionality via slash command. – Complete
Track changes to inventory and fire notification event once in subsequent action. – Complete
Rework the result code for HarvestResourceNode to play nicer with the needs of the API server. – Complete
Updating crafting API returns to include extra information about the vox for the UI to use. – Complete

As a Developer, I’d like to have a selection of weapons that visually represent each Realm’s identity. – Arthurians
Realm specific torch modeling and mats. – Complete

As a Developer, I’d like to have a selection of weapons that visually represent each Realm’s identity. – TDD
Realm specific torch modeling and mats. – 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.
Items and Equipment:
Swap ItemDef data to be stored in a directory instead of a specific file. – Complete
Increase performance of armor stat calculations by running off itemContexts. – 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.
Pull ModifyVoxJobError code enum out of class so it can be generated to TypeScript definition file. – Complete

As a Developer, I’d like to prototype various combat animations to support future system improvements during Beta.
Polearm animations:
Polearm: full body “flourish” attack for testing look and feel. – Complete
2-Handed Axe Animations:
Greataxe full body “flourish” attack for testing look and feel. – Complete

As a Backer in Beta 1, I’d like to be able to use a torch as a weapon with appropriate travel and combat animations.
Set up left arm override in combat stance, with attack swing animation. – Complete
High and low torch attacks and possible rough mid attack improvement. – Complete
Create left arm travel stance idle fidget. – Complete
Realm Unique Torch: Modeling, materials (1 per realm). – 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:
When DynamicEntity gets moved too far by a network update, remove the physics actor before setting its position. – Complete
Use Presence server to spawn players:
Periodically request world time from presence server, then update physics – Complete
server and RemotePhysicsScene with the new time. – Complete
Seamless zone transitions:
Don’t wait for character save to complete when changing zones. – Complete
Increase max player AnimSets to avoid client/server desync. – Complete
Preserve player velocity and desired movement direction. – Complete
Write the player using FastEntityWriter before waiting for the async call to RemovePlayer has finished. – Complete

As a Backer in Beta 1, I’d like to use a siege weapon.
Add skill queue to siege engine entity. – Complete
Add rough first-pass sample siege skill parts based very directly on archery skill parts. – Complete
Route commands to the controlled entity instead of only the player entity. – Complete
Check for camera state changes outside of the explicit button-press to toggle aiming to force siege into aiming mode. – Complete
Add ‘controlled entity ID’ to packet, and actually set the ‘controlled’ view flags in response. – Complete
Avoid pre-flighting siege skills when not using a siege engine. – Complete
Add siege network to ability builder. – Complete
Add requirements to siege skills and preflight them when taking/releasing control of engines. – Complete
Add a basic filtering at the skill queue level to avoid running siege specific skills on the player and vice versa. – Complete
Slash commands to load/unload the active siege engine. – Complete
Config setting to disable siege engines altogether. – Complete
Include offset and radius in the projectile data sent to the client, allowing siege engines to more accurately reflect what the server will do. – Complete

New Cards:
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.
Base dock assets: White box pass. – Complete
Base dock assets: First material pass. – Complete
First pass dock assets updated and added in test map. – boxes, lamps, nets, etc. – Complete

As a Backer in Beta 1, I’d like to be able to collect resources for crafting, from temporary Beta models, representing the resource types.
First Pass Concept Art. – Complete
First pass generic mine. – Complete
First pass generic wood node. – Complete

All right, lots and lots of work wrapped up this week, and clearly, over the last three. With all those details out of the way, let’s look to some art from this week.

Starting off, let’s look at an animation test we tried out for the two handed great axe. Our goal here was to add a bit more flourish than our basic attack animations. As we develop a new library of improved animations, we’re not only discovering how to best use the new system, but also what looks good for the pace of combat in CU. This will of course change over time, so don’t assume anything is locked in at this point. Click the below image for the WIP video, and you can click HERE for the reference used, of Scott swinging one of our prop weapons in the parking lot!

Moving along, we have the Tuatha and Viking realm torches fully modeled with materials from Jon this week. These go along with the Arthurian version we showed last week HERE. If you want to catch Jon’s modeling stream from this week, you can find that HERE.

Next up we have an image of the outline for the character inventory UI. This is the image JB handed off to AJ to guide him in the creation of the working UI. We streamed work on this from AJ earlier this week, with an introduction and explanation of the entire UI from JB at the start of the vid. You can catch that stream HERE!

Next up, we have additional UI concept work from Michelle. The goal here is to give you an idea where the first version of the UI is headed. We’re focused on an MVP of this for the start of Beta, as it simply wouldn’t make sense to make it complete without Backer feedback.

Last week, we showed you a WIP shot of the dock assets for the landing areas. As promised, this week we have a material, VFX and props pass on those assets in one of our test maps. Imagine a few buildings, or small town built in C.U.B.E. on the shore! You can catch Dionne’s live stream of this work, from earlier this week, HERE.

Next up, we have a continuation of the sketches from Michelle at the end of last week, covering ideas for resource nodes. These will be used for the start of Beta, from which to gather resources for crafting, before we add additional tech like full mines, hunting animals, or cutting down trees.

Next up, we have the perfect image to use, coming full circle from my introduction. dB, our talented “sound and music guy,” has been busy creating new source files for our different weapon types by swinging gardening tools around and banging them on different materials. Mike asked me if dB had included hedge trimmers in case our crafters need to trim the shrubberies.

Okay, that wraps up another productive week of problem solving and progress. Join us on the forums for the latest chatter, and we’ll see you online.

Stay tuned for a follow up testing email. We have not one, but two tests running this weekend. Betas on Wyrmling and IT/Alpha on Fledgling. Both tests have new content, and known issues, so please, please, make sure and read through that attached testing doc before you post bugs in the forums.

Additionally there is a possible network issue, relevant to both tests, we are trying to track down that may make things go boom. If this happens, and you can’t get into the game, check the forums for more info.

Have a great weekend all!


Camelot Unchained