Bringing In The Harvest – Friday, June 3rd, 2022

Hey folks,

It’s been another busy month here at CSE. The latest CU build includes our latest prototype for harvesting, which is one of our building blocks as we move toward putting a proper gameloop into CU. This is a wide-ranging update, from improved NPC navigation, enhanced world editor tools, and a variety of art and animation work – some of which you’ll see in the coming weeks, as we do our next updates to not only harvesting, but some fixes and enhancements for Melee 2.0 as well!

We’ve also been busy continuing our work on interactions, doing a lot of code cleanup, a few helpful bug fixes, and some much-needed under the hood work. To be fair, Continuous Deployment Improvements and Hatchery Channel ID Updates aren’t the most visible tech in the game, but trust me: every time we land improvements like these, it makes the entire team more productive.

Read on for more detail on this month’s updates below and, as usual, be sure to check out this month’s newsletter for more on all things CU.

May 2022 End of Month CU Update (6/3/2022)

  1. WIP – Design, Tech, and Art – Harvesting
    1. This month we’re testing the first prototype of our harvesting system. These initial features have been implemented on the home islands and in the Frozen Tundra Biome Concept Zone for preliminary testing, and include: a new ability network, four initial harvesting tools, various updates to player stats, and new resource nodes with which you can interact to acquire raw crafting materials.
    2. There are currently four major harvest categories
      1. Mining – with subtypes stone, gem, ore, and mineral
      2. Woodcutting – with subtypes wood and arboreal
      3. Gathering – with subtypes plant, floral, and root
      4. Hunting – with subtypes butcher, pelt, and slaughter
    3. Potential items within a resource node are split up into tracks
      1. A resource node can contain multiple reward tracks. Each of these tracks specifies a category type, how many rewards it currently holds, how much progress must be made before handing out a reward, and what possible rewards/qualities it offers.
      2. Harvest abilities are now channeled, where track progress is made on every loop over the channeled part of the ability.
      3. The amount of progress made is affected by a combination of player stats, harvest tools stats, stats on the resource node, and the components that make up the harvest ability.
      4. Progress and rewards can be seen in the combat log
    4. Added a new harvest ability network, which is available to all character types. The component categories are:
      1. Type – a required component which focuses on different types of resource node tracks
      2. Efficiency – an optional component which modifies harvest time in return for changes in reward quality
      3. Yield – an optional component which modifies reward yield in return for tool damage or quality
    5. All character classes come with a basic harvest ability for each of the 4 major harvest categories, but specialized ones can be built with the Ability Builder.
    6. Introduced 4 new harvest tools, one for each of the current harvest categories
      1. You must have the correct type of these new tools equipped in order to use the various harvest abilities
      2. These can currently be obtained by Taking from the new harvest tent on each of the home islands
    7. Characters and Harvest tools have stats on them which correspond to all the harvest subtypes. Higher stats effects track progress, yield, and reward amounts.
    8. Various types of resource nodes can be found throughout the Frozen Tundra zone.
  2. WIP – Studio – Hiring: We’re also looking forward to talking about the expansion phase that is beginning within CSE! MJ and the team have been busy with interviews and various other recruiting efforts, and we’re excited to bring on even more folks over the coming months and beyond to support the studio’s projects. MJ will talk about this more in his next livestream.
  3. WIP – Ability and Zone Scripting
    1. Added Combat Resource penalties
      1. Running out of fortitude now has an associated penalty. You accrue stacks of fortitude regen and damage penalties each time you overtax it. Collecting too many of those at once will briefly prevent you from using martial abilities.
      2. Running out of blood no longer kills you. Instead, it very briefly locks magical abilities, then leaves a lingering penalty to stability for said abilities.
    2. Fixed a variety of quirks and bugs related to Heavy Fighters, such as culling old traits that no longer have interactions or removing access to old abilities that were replaced, as well as small numerical adjustments
    3. Target dummies have been added to all three home islands
    4. All of our gameplay data sheets received a cleanup pass to ensure they are organized and consistent. We also split up different categories of data into their own workbooks.
  4. WIP – Tech – Improved NPC Navigation: MikeD is working on improving how NPCs navigate the environment, with specific focus on improving the movement behaviors that make use of the underlying navmesh. This work focuses on having NPCs make better decisions about when to make path requests, relative to when other information available to the NPCs (such as line-of-sight) make such requests unnecessary.
  5. WIP – Tech – Continuous Deployment (CD) Improvements
    1. When we started working on CU we knew that we wanted the ability for our engineers to submit changes and have those changes automatically reflected on our development shard “Hatchery.” Early on, we built a system to do this. Code would get submitted to source control, our build system would compile that code, our patch server would pick up the updated build and notify the servers that they needed to restart for updates.
    2. This system has remained largely unchanged since we built it years ago. Our particular implementation of each of these steps isn’t without its flaws and we’ve been wanting to revisit it for some time. These flaws have been exacerbated by a lot of the large changes we’ve been working on recently, and resulted in this process requiring an increasing amount of manual intervention and/or causing us to chase phantom bugs that were just caused by builds being out of sync.
    3. With the completion of some of our other bigger projects we’ve got the bandwidth to tackle this and are working on improving the consistency of this whole process. These changes will mostly only impact developers working on Hatchery – so you guys won’t generally see the impact of this, but our developers will see much less disruption and wild goose chases, which will result in quicker/better development, which means you guys getting features faster.
  6. WIP – Tech – Code Cleanup
    1. Removed references to a handful of different systems in our UpdateInterface, which is responsible for updating entities in a very fast multi-threaded way, which were not compatible with the world update system
    2. Integrated much of the code for interactions into a coherent, data-driven system. These adjustments make sure interactions are handled more uniformly, and give designers more control over them
  7. WIP – Tech – Bug Fixes
    1. Fixed a bug which was preventing several traits for the Heavy Fighter classes from showing up during character creation
    2. Fixed a rare client crash in the ability queue code which occurred when there was a specific timing mismatch with a channeled ability
    3. Fixed a bug which caused certain Resource Node spawners to never produce spawn points on the server
    4. Fixed a combat log bug in which damage applied to an item or resource node sometimes reported the incorrect damage type
  8. WIP – Tech – Interactions: Rob continues his interactions effort with specific focus on making interactions as data-driven as possible. This work removes a good bit of previously hard-coded data and better empowers Design to set up entities with interactions with limited programmer intervention.
  9. Done – Tech – Integrating ProxyManager into the Server Instance Allocator (SIA): We talked about this at length last month. To support scalability for the game server in Camelot Unchained, we built a tool called the proxy manager. This spun up instances on demand to scale with need. More recently, we built a new and improved system called the Server Instance Allocator (or SIA for short), but had to run both for a while. We’ve pulled all the features from the proxy manager into the SIA and removed the proxy manager. This means there’s less duplicate work for us to do when adding features to these systems, less code to maintain, and more features available to the proxy manager.
  10. Done – Tech – Hatchery ChannelID Updates
    1. Each of our shards gets its data from a set of Channels. A channel is just a bucket for data; that data could be resources like models, sound effects, and animations, or it could be executables and DLLs for things like the client and our servers. There’s sets of channels: one for the client, one for each of the servers, one for the load testers, etc. Hatchery, being the first and oldest channel set, had the IDs for each of the channels grow organically. Newer channel sets all fall within a block of 100 IDs with consistent offsets within those ranges.
    2. The problem here is that Hatchery doesn’t adhere to the standard and so any of our scripts for managing servers either don’t accommodate Hatchery or require extra code to handle Hatchery’s special case. This has become enough of a thorn in operations that we’ve fixed it. This was a bit of a squirrely problem to tackle because of all the special cases mentioned above. We had to track all of them down, unify them, and change them all out at the same time. It touched every part of CU’s development environment and release and deployment process. Like the CD improvements, you guys won’t directly see the benefits from this, but it’ll result in a more productive CSE.
  11. WIP – Tech – World Editor Tools: Wylie is implementing a large slate of tool improvements to our world editor, with the intention of making level design and rapid iteration much easier for both designers and artists. As part of this process, he is currently refactoring many of our tools to better handle bulk deletion, bulk cloning, and moving world objects as one unit.
  12. Done – Art – Props
    1. The 3D team completed work on a new slate of props for use in the CU environment, including a modular set of stone walls for use in the Golden Plains biome.
    2. We’ve also wrapped up the last of our realm artifact kits. Nathan has knocked out the modeling for the TDD set, and Jon finished up materials for the last realm statue, the TDD stag. You’ll be able to check out all of these pieces in their full grandeur in this month’s newsletter.
  13. WIP – Art – Quality of Life: Jon continues to work through the list of model improvements to CU assets this month, including material and LOD updates on a number of realm statues and set-dressing props.
  14. WIP – Art – Races: Since fitting the original set of Hamadryad, St’rm, and Valkyrie armor sets to their respective rig, Joe and company have been proceeding with the same armor fitting process for the Cait Sith. With the majority of the light and medium sets done, we’ll be wrapping up work on all heavy and unique class armor sets and getting everything ready for use in the editor.
  15. WIP – Art – Weapons & Tools: The CU armory expanded this month with the addition of concepts for common spears, as well as the concepts and 3D models for a first set of harvesting tools: the sledgehammer, logging axe, pickaxe, sickle, and shovel. We’ll be adding to these tools down the line as the harvesting system expands.
  16. WIP – Art – Animation – Melee 2.0: Scott has been adapting our Heavy Fighter animations to even more weapon permutations this month, making sure the shared Melee 2.0 ability animations work with spears, greatswords, and even empty-handed loadouts. These animations will progressively land in game as we complete more groups of weapon loadouts.
  17. WIP – Art – Animation – Harvesting: Sandra is finishing up a set of harvesting ability animations unique to each of our new harvesting tools used in this month’s playtesting: the Logging Axe, Sledgehammer, Gathering Sickle, and Butchering Knife. Once completed, we’ll hook these looping animations up to their respective harvesting tools and harvesting abilities, to play based on which type of node you’re harvesting from.

And onward to art!

We’re kicking things off this month with one high-stepping statue first debuted in the last Top Tenish: the TDD stag statue, part of their realm artifact prop kit.

With the sculpting completed, Jon moved onto materials, bringing this feat of TDD craftsmanship to life in wood and gold.

Meanwhile, Nathan took care of the rest of the TDD realm artifact props. Here you can see those completed pieces complementing the TDD home island: including signposts, lampposts, and braziers.

The Arthurian realm artifacts also got a materials boost this month. The 3D team gave these pieces a bit of dedicated TLC, bringing the stone and metal textures in line with one another and with the intended style for the realm as a whole.

But that’s not all in Arthurian news – Nathan completed work on a modular set of stone walls as well. These well-worn barriers will mark out territory in the Golden Plains, placed by farmers and other folks with an eye towards staking out the boundaries of their claims.

May also sees the first implementation of the harvesting system, beginning with a new harvesting ability network, basic tool collection, and resource node interactions. Hop in the build this weekend and look for the new harvesting tents placed on your home island, where you can pick up harvesting tools corresponding to different node types. This prototype includes four new kinds of tools: the Sledgehammer, Gathering Sickle, Logging Axe, and Butchering Knife.

From there, head on over to the Frozen Tundra Biome Concept Zone where you’ll find resource nodes scattered throughout the mountainside. You can harvest materials from these nodes by equipping the appropriate tool and using the corresponding Harvest ability, which will have automatically populated on your Ability Bar. We look forward to testing this initial rollout of the system – and hearing what you think – as we plan for new iterations and expansions in the coming weeks!

Not a bad update, as we transition from spring to summer. We’re looking forward to rolling out additional art, tech and gameplay updates in the coming weeks and months. We are particularly looking forward to the enhancements we’re making to the initial harvesting protptype, and you can expect some news on siege in the near future as well. We’re going to have a busy, productive summer.

Thanks as always to everyone for your continued support of CSE and Camelot Unchained.

– the Team