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!
- 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.
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
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
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
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.