A Colorful End to The Week – Friday, September 15, 2017

Folks,

We’ve got a bigger update than usual this week, as we hit our once-a-month User Stories update. Here, we share many more details of the work we’ve accomplished beyond our weekly Top Tenish list. If you’re interested in all the particulars, this is the update for you. If that’s still not enough info, you can catch today’s streamed update with MJ, including the Q&A at the end! It’s been a busy week here, with lots of discussions, planning, and hard work, as we focus in on some of the major milestones we need to meet in order to get us to Beta 1.

During the livestream, Mark spoke about two important planning notes for our studio. The first was that this week we aren’t releasing any additional material from his Thirty Day doc. The reason? Because we want to do a much bigger release next week, with a lot more detailed information. The subject? Social Systems of Camelot Unchained. This release will focus on everything from small groups, to larger groups, to guilds, and so much more. When we talked to our IT folks that previewed the document, there were a lot of questions/concerns, because of the missing second part of the document. Rather than risk confusing people with a partial release, we are going to release all the key information at once. It will be an interesting end of week next time, that’s for sure! Expect to see some surprises, some new ideas, and a passion for supporting everything from small groups, to small guilds, to larger guilds.

The other bit of news, and one that will affect our schedule in a positive way, is that we are now embarking on a “sprint” with one of the key features for Beta 1: sieges. Now, we are not going into crunch, but instead, we are focusing as much of the team’s time as possible on delivering the tech and gameplay we need for carrying out a proper siege in Camelot Unchained. So whether that means better archery animations, or NPCs firing off Scorpions, or blocks of buildings collapsing properly when dealt a giant gaping hole, the team will be focused on that for the next 4-6 weeks.

As part of this sprint, we are going to confine our testing pattern to Impromptu and weekday testing. Having weekend tests was beginning to slow down the game’s development, because we would make decisions on making code builds, check-ins of new code, and other things in order to have weekend testing. And, unless we’re wrong, we expect that almost all of you would rather we get into Beta 1 sooner, and skip a few sessions of Big Bot Battles, rather than further delay entrance into Beta 1. We will have weekend tests as we near the end of the sprint, but until we can deliver certain key pieces of gameplay/tech to support sieges, we will be holding off on that type of testing. OTOH, when we meet those goals, our Backers will begin to be able to do what they have been waiting for a long time for: Having fun, and not just testing tech. We are all excited about the sprint, and can’t wait to surprise you with our plans for Beta 1.

To dive into the details of our progress, keep reading, beginning with a larger-than-usual Top Tenish!

Top Tenish:

WIP – Tech – NPCs Using Siege Engines: Colin has continued to make progress on NPCs, and has started work on getting them to use siege engines. NPCs will walk up to a siege engine, start aiming, and fire bolts, for a configurable duration. This gives us the ability to effectively recreate the feel of massive siege battles without the need for lots of players, allowing us to quickly iterate on supporting tech, gameplay, and bugs. WIP – Tech – Emotes: Brad dove into the animation system last week, using emotes as an entry point to learn about the new animation system from Andrew. He’s currently working on tying the ability to play emotes to slash commands. Get ready to wave at your friends, charge at the enemy, or salute your guildmates when this work is complete! This work is particularly important as a fundamental part of the animation system, one that we have on our list for the start of Beta 1. WIP – Design/Tech – Class Progression: Ben created the “ability unlock trees” for our nine Beta 1 classes. These define the components that unlock based on the progression of the previous component. Matt has started with the Black Knight Arthurian class as the first test case. This work includes a server configuration setting that unlocks all components to make testing easier. WIP – Tech – Progression Rewards: This week, Christina added support for the first three types of progression rewards. Ability component XP – in which the XP is tracked, and can cause the skill part to level up.

Stat Bonus Point – which can be given as a reward for leveling up a skill part.

Items – which can be given as a reward for leveling up a skill part.

There’s still a considerable amount of data that needs to be hooked up, but we’re… “progressing” well! WIP – Tech – Client Stability: We want to keep you guys informed on our progress on this avenue. We previously identified some issues that needed tackling, and that needed to be handled the right way, which meant tearing off a band-aid in our code. While George works on the larger issue, Dave has been supporting him by finding and fixing smaller issues. This not only helps with the overall stability of the client, but also increases Dave’s knowledge of our threading library. WIP – Tech – Character Manager Improvements: While Dave has been helping George with client stability, he’s also been tackling improvements to our character manager. He’s removed the flicker when characters change their armor, as well as reduced the size of vertex data we send for characters to the GPU, improving our performance a tiny bit. These changes will go in after George gets his dependent threading changes in. WIP – Tech – Archery: We know you’ve all enjoyed our magical arrows that suddenly appear in front of your bow when using an ability. Andrew has put a stop to that nonsense this week, spawning arrows in hand as if pulled from a quiver. This is only the first step, re-using a single arrow model. The next step is getting the correct arrow and VFX used in the ability, and smoothing out the transition of an arrow from the animation system to the ability system. WIP – Tech – Web Content Tools: One of the things we’ll need for Beta 1 is the ability to quickly edit our “Message of the Day” text in both the patcher and the game. The process for doing so right now requires knowledge of our database tools and HTML. We want non-programmers to be able to update the text, so JB is putting together some web content tools, allowing CSE employees to easily update and push new text through a web browser. You can learn more about this from his stream earlier in the week, which is HERE [LINK]. WIP – Art – Dagger Animation: Sandra began working on dagger animations. She has used old animations as a starting point, adapting them to the new system and improving the overall look. Sandra has also updated the arrow position in the archery animations, now that Andrew has it spawning during the ability. Sandra changed the firing animation to correctly position the arrows, which will be followed by LOD updates by Tyler to the arrow models themselves. WIP – Art – Empath VFX: Mike has done a first pass on adding generic VFX to the casting abilities of the Empath. This has been a successful run, helping Mike not only to learn the system, but to find and fix bugs as well. WIP – Art – Weapon LODs: Tyler began creating LODs for our weapons, starting with the primary ones the ARCs use, prioritized to test performance impact in large battles. This means that an ARC, way off on that hill over there, won’t be lugging around an 800 poly sword, but instead will have a square tube of 12 triangles, or nothing at all if further away. We said we still had improvements coming for our big battles! This change is still in testing, but we’re hoping lower-end cards see at least a small boost. Art – Realm Portals: Jon finished up the TDD portal LODs and collision earlier this week, and has completed improvements on the Arthurian Realm model’s materials. Now, he’s LOD-ing and importing the asset, finishing up the week’s progress. WIP – Art – Concept Art: Michelle has continued work on various character selection backgrounds and treatments of character renders. In addition, she has begun working on ideas for Realm-themed boats, to help add more props to the docks. Prop ideas typically begin as silhouettes, to get as many different ideas out quickly. Art – Resource Nodes: Dionne sped through the cloth node LOD and import work at the beginning of the week, and has completed the leather nodes as well!

Lots of goodies buried in there, from new systems getting worked on, to additional features for pre-existing tech, and more art-related assets! Let’s take a look at the User Stories this month, which can all be found on our website HERE.

User Stories:

131 Total

28 Old cards with 117 completes.

3 New cards with 14 completes. As a Developer, I’d like to increase physics performance, as well as make changes easier to integrate.

Only use the top terrain hit in heightfield queries. – Complete

Fix lockup in running internal physics jobs on server. – Complete

Process subzone trigger events after deleting removed actors. – Complete As a Backer, I’d like to know about smaller changes that don’t have their own user story.

Add server command line for forcing garbage collection. – Complete

Update item loadouts for dummies to cut down load times. – Complete

Dummy loadout items are now cached the first time they are asked for. – Complete

Admin command improvements for handling character names. – Complete

Remove default sound event for taking damage. – Complete

Remove old and busted game menu and options, replace with new hotness. – Complete

Move ZoneInfo to ApiModels for typescript generation. – Complete

Networking for faction/name/health on dropped items and kinematics. – Complete

Targeting/health bars for resource nodes. – Complete

Add version field to code-generated entities. – Complete

Include spawn points in the server world state so API server can display them to users. – Complete

Create DevUI widget for quick gameplay iteration. – Complete As a Backer, I want to be able to own a plot of land and build within it.

Developer building blueprint transfer tool. – Complete As a Developer, I would like more insight into the state of the server.

Increase ServerMessenger’s maximum sendStorageCache. – Complete As a Backer, I’d like to see improvements in server stability, speed, and robustness.

Increase the socket send buffer size to 5MB to avoid blocking when sending physics states to proxies. – Complete As a Developer and Backer, I’d like to see improvements in memory usage and threading.

Fix ParLL crash by supporting cloning and moving arguments. – Complete

Custom CLR profiler specifically set up for diagnosing large object heap garbage collection issues. – Complete

Fix rare deadlock caused by semaphore finalizing race with suspend. – Complete

ParLL fix for occasional asserts on jumping and startup. – Complete

Remove support for anchored contexts. – Complete

Integrate Telemetry hooks for RenderContext lock. – Complete

Split ClipPlayer to start/stop events if, and only if, they run on another context. – Complete As a Developer and Backer, I’d like to see improvements in lighting and rendering.

For spawning child particles, interpolate the parent’s position using a quadratic curve. – Complete

Particles can have spawn rate that’s proportional to distance traveled instead of time elapsed, to create spacing along trails. – Complete



Reduce the size of the verts used by characters to save on client

memory usage. – Complete

Don’t downgrade a character into overflow until we actually need its assets. – Complete

Pack texture indexes into UShorts to prevent overrun – Complete

Improve speed for editing particles in locally-built client – CompleteAs a Developer, I’d like to see improvements in the editor to facilitate my work.

Create utility function to set all cogs and fbx files to a different build state. – Complete Calculate and store highest priority value for models in Character Manager. – CompleteReduce the size of the verts used by characters to save on clientmemory usage. – CompleteDon’t downgrade a character into overflow until we actually need its assets. – CompletePack texture indexes into UShorts to prevent overrun – CompleteImprove speed for editing particles in locally-built client – CompleteCreate utility function to set all cogs and fbx files to a different build state. – Complete As a Backer in Beta 1, I’d like to have a sampling of generic clothing to wear in game.

Iterate through colors assigned to unique ARCs (Bots), rather than picking randomly. – Complete

ARCs (Bots) log build numbers. – Complete As a Backer in Beta 1, I’d like to play as a Crafter with basic gathering and crafting mechanics for testing.

Make resource nodes disabled by jsonconfig. – Complete

De-duplicate the multiple un-acknowledged copies of resource nodes we have made based on the same server/proxy object. – Complete

Update support for disabling resource nodes when we first try to load resource spawners/nodes. – Complete

Update support for disabling resource nodes where the actual resource nodes are made. – Complete As a Developer in Beta 1, I’d like to see improvements in the ability system’s stability and robustness, as well as make it easier for developers to work with.

Avoid running the skill event as part of pre-flighting when you don’t meet the requirements for a skill. – Complete As a Developer, I’d like to have a selection of weapons that visually represent each Realm’s identity. – Arthurians

Quivers: Second pass concepts with Realm variations. – Complete As a Developer, I’d like to have a selection of weapons that visually represent each Realm’s identity. – TDD

Quivers: Second pass concepts with Realm variations. – Complete As a Developer, I’d like to have a selection of weapons that visually represent each Realm’s identity. – Viking

Quivers: Second pass concepts with Realm variations. – 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.

Secure trading creates a DB entry for each trade, tracking who, when, and what items are being transferred. – Complete

Item swap for secure trade occurs on gameServer (instead of the API server). – Complete

On player load, only secure trade items which are not in the transferral state are loaded. – Complete

Items can be protected against becoming a part of a secure trade. – Complete

Modify item tags to footType mapping. – Complete

Upgrading CharacterLoadout data format. – Complete

Added new ownership component for items. – Complete

Created the class ItemCreatorParameter to pass information into about whom an item is being made for. – Complete As a Backer in Beta 1, I’d like a progression system that allows me to upgrade my abilities, stats, and items

Post Re-ab

Add stable string IDs to skill parts. – Complete

Implement progression loop: track events, process a game day, award rewards. – Complete

Adding configuration for a new progression database in mongo. – Complete

Create progression events on game server when they occur. – Complete

Take snapshot of player in the world state on a timer. – Complete

Handle player progression day logs. – Complete

Removing old progression database collection from world state. – Complete

Basic data structure for putting progression info into SkillPart xml definitions. – Complete

Create skill part level table to specify a skill part max level, XP per level, and XP granted on use. – Complete

Create skill part reward definition to define what rewards are granted when a level is reached. – Complete

Tracked XP for skill part leveling. – Complete

Create stat bonus points for rewards when leveling a skill part. – Complete

Calculate character adjustments with progression app while running end-of-day calculations. – Complete

Skill part related tracking done with uints instead of ints. – Complete

Add progression slash commands for testing. – Complete

Restructure skill part requirements to allow more specific subclasses. – Complete

Wire up Black Knight skill part leveling. – Complete

Add server config setting for just unlocking all parts to avoid removing them for everyone just yet. – Complete As a Developer, I’d like the Camelot Unchained ability system to fully support the design scope of the game for B1.

Player stat changes and physics constants are driven by XML. – Complete

MockUpdater now keeps track of changes while it is in scope. – Complete

Send preflighted skill data from server-to-server rather than redoing it on the receiving side. – Complete

Player waits for PhysicsEntity to be added before creating skills. – Complete 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 bow.

Offensive stance: Equip and unequip. – Complete

Offensive stance: Block/Deflect. – Complete

Offensive stance: General polish with skirt and cape animation. – Complete

Offensive stance: Final in-game setup. – Complete 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 shield and one-handed weapon.

Offensive stance left shield: Combat idle. – Complete

Offensive stance left shield: Upper body combat movement – walk, run, jump, fall. – Complete

Offensive stance left shield: Crush attack. – Complete

Offensive stance left shield: Block/Deflect. – Complete

Offensive stance left shield: Equip and Unequip. – Complete

Offensive stance left shield: Flinch and death. – Complete

Offensive stance: General polish with skirt and cape animation. – Complete As a VFX Developer, I’d like additional tools and support for VFX needs in Beta 1.

Ensure editor gets missing material when needed. – Complete As a Backer, I want an animation system that blends multiple animations together, and allows for immersive and fun combat.

Open external sheets using the editor, and open or set external sheets via CUEMAN. – Complete

Skill Animations can be timed with other animations. – Complete

Flinch removed from PlayerEntity, sent down via xml. – Complete

Make sure ClipPlayer stops effects in 2 places and respects ParLL::Context. – Complete

Set the frame range to the segment range when parsing events for clip segments. – Complete

Increment total frames per clip segment, and reset per clip. – Complete

If the AnimationSkillEffect decides to skip preparation clip segment, make sure to add a pending update range so that effects will still fire. – 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.

Remove “siege health” stat and replace with a generic health stat, the same stat that all items with durability have. – Complete

Update TDD and Viking scorpion Realm variations with updated mechanisms and rough pass animations. – Complete

Add refill command for siege engines, so NPCs can bypass the normal flow. – 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: First pass generic Viking themed boat. – Complete

First pass concept art: Realm specific boat concept art silhouettes. – 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.

Define naming convention for asset set and future assets. – Complete

First pass LODs and collision – 41 unique tunnel interior pieces. – Complete

First pass LODs and collision – rock props for interior asset variation. – 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.

Arthurian portal model complete with Realm control variations hooked up. – Complete

Viking portal model complete with Realm control variations hooked up. – Complete

TDD portal model complete with Realm control variations hooked up. – Complete

TDD realm portal additional props created. – 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.

Second pass generic mine. – Complete

Second pass generic wood node with props. – Complete

First pass generic cloth node. – Complete

Second pass generic cloth node with props. – Complete

First pass generic leather node. – Complete

Second pass generic leather node with props. – Complete

Resource node Realm variations. – 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 – Trees with and without dead trees. – Complete

Terrain: Dead grass and dirt v3. – Complete

Terrain: Dead grass and dirt v4. – Complete

Terrain: Beach sand with detritus. – Complete As a Backer during Beta 1, I’d like to have a selection of basic clothing to wear about town.

First pass male concept art. – Complete

First pass female concept art. – Complete New Cards: 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 one-handed weapon combinations using shared animations. – Complete

First pass test: Equip and Unequip of one-handed weapon combinations from travel stance, using shared animations. – 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.

First pass character select background concept. – Complete

Second pass character select background concept. – Complete

First pass character render visual treatment concepts. – Complete

Test character render complete. – Complete

First pass test – convert class backgrounds from video to code. – Complete

First pass test assets animated in code vs video for improved performance. – Complete

Patcher updated to support animated backgrounds in character selection screens. – 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 TDD arrow models. – Complete

Add LODs to Viking arrow models. – Complete

Add LODs to Arthurian arrow models. – Complete

Add LODs to weapons ARCs primarily use for Big Bot Battle tests. – Complete

Reduce draw calls in temporary resource node models. – Complete

A robust amount of work!

Next up, we move into art for the week. I’ve (Tyler) been busy with Scott and Ben much of this week, working on some refinements and different approaches to our combat melee swings. It’s important to note that the look and feel of the animations are very important to us, and will be something we continue to iterate upon throughout the course of the game’s development. Suffice to say, I have to leave you with a static image this week of some of this work, and we’ll follow up with a related video next week. Below, you can see some of the key poses from our investigations, using a greatsword. It’s all about timing, baby!



Jon has been busy this week updating the Arthurian Realm portal model with new materials, not only better matching Michelle’s concept art, but overall, improving the look of them. First up, the neutral and Arthurian versions:



Next, the TDD and Viking variations. As mentioned before, as part of the Realm ownership feature in the terrain system, these model’s visuals can swap to represent claimed territory.



All of these models, including also the TDD and Viking portals, will go to Mike to add any needed VFX next. Continuing on, we have the leather resource node models from Dionne.



Next up, Michelle has continued work on the character creation backgrounds and character render treatments. This work is on top of the sneak peek posted last week, which can be seen HERE.



That’s wraps up a good week here full of progress, lots of open and honest communication with our Backers, and some pretty art, to boot! Special thanks goes out to one of our generous Backers, Ludovic, who sent CSE West it’s first gift: duck pez!



I’ll leave you with our final image. We’ve talked (and showed) a lot in the past regarding the power of our engine. Here’s an interesting screen shot that shows over 1K unique NPCs (not our ARCs/Bots), all with different armor, including different-colored individual pieces of armor, from one of our tests. The use of tinting of the armor sets ensures that each of our NPCs is unique, seen as separate entities by the PC, and pushes it even more. Not bad, eh? Over 1K unique NPCs on the screen, 34 FPS, and once we’re in Beta 1, we’ll be able to do even more impressive things. It’s good to have this tech, and as MJ says, it just gets better from here. 🙂



Have a great weekend all, we’ll CU on the forums, and later on, in the kind of big, immersive, and fun battles that no other game’s engine can deliver!

-t