Particle Progress Party Poopers – Friday, April 7, 2017

We’ve had a busy week here at CSE! We hit lots of different features over many different skill sets. And that’s only speaking of the work landing this week! We’ve got lots of other features and tasks in the oven right now, as you have come to expect from us hard-working folks. Speaking truthfully, as Producer on this project, with many projects in my past, it has never been as challenging to keep up with such a hard-working, diligent team as it is for me now. When Monday morning comes along, Tim, Scott, Brittany, Andrew, Mark, and I sit down and discuss planning for the week (Only one of many small discussions that happen continually to keep us all apace of progress). We step out of the conference room, do Monday morning “standups” so the team can sync up with each other as well, and BAM! It’s Friday! At least, that’s how it feels when the week is so busy.

Maybe it’s a consequence of the increase in team size, maybe it’s an increase in overall productivity as new team members get their legs and juniors learn the ropes and gain experience levels, or maybe it’s the increase in testing to keep up with all the changes. All I know is, we seem to be working harder, smarter, and are now seeing more results on this challenging project than ever before. While the days go quickly, I couldn’t be prouder of the team or the project. And I feel that way on a regular basis. We’re catching up folks, and I hope that is reflected in our transparency and honesty. I have to add, that not only are we catching up, we’re making several systems much better than was part of our original Beta 1 plan.

Okay, my warm fuzzies are out of the way, so let’s get into our update this week. Earlier today, Mark streamed the Top Tenish of the week and answered several questions during the second half of the stream. If you have questions about the game, or are just curious about what others ask, that’s the stream to catch on Friday afternoons! For those of you new to Camelot Unchained, we typically have a weekly update with highlights, which we call the “Top Tenish”, as it’s typically more than ten items. Every two weeks, we put up our version of “user stories,” which is the more detailed version of our progress update. We drop those into the User Stories section of our website. If there’s a certain aspect of CU that you’re interested in, feel free to search there.

Top Tenish: (Starting off with a big one!)

1. WIP – Tech – Particle Rendering: We’re in the final stretch of the first major code drop of our “Improved VFX/SFX system” today, as Bull, Dave, and George wrap up this fairly large commit. This is the system we have been talking about for months. Included in today’s code-drop are almost a dozen new features, as well as some added functionality for existing parts of the particle/lighting system. The next step is for Mike and the art team to update/change existing VFX as test cases of the system. Like the animation system, this is a WIP, and will serve as the basis for our next major improvement, which will happen during Beta 1. In the meantime, the new system will allow our world to feel more alive, magical, and interesting. And more performant, as well!
a. Particles are now lit by the world (no more glowing leaves at night, unless we want them to
b. Particles receive shadows.
c. Particles can use normal maps, per the two items above.
d. Support for glow maps.
e. Improved handling of transparency and distortions.
f. More particle alignment options.
g. Soft and volumetric particles.
h. Subtractive lighting.
i. Additional performance improvements by moving to using a geometry shader, which doesn’t
require as much data to be sent per particle to the shaders. This also preps us for more possible
improvements in the future.
j. Quality-of-life improvements in the particle editor to support new features and speed up Mike’s
iteration time.
k. Art – Tyler has begun working on a VFX zone for performance and feature testing, where we
can see how much we can throw in the environment alone.

2. WIP – Tech – Manual aiming: Matt has been busy this week! He’s been adding in additional aiming modes for testing. As we’ve said in the past, our goal here is to create a mechanic that works for our game. Fun and easy-to-use are our goals, and we’re not committed to any particular mechanic as we continue to iterate on different designs, with your help. Matt also made several bug fixes for aiming.

3. WIP – Tech – Jumping: Andrew and Scott spent the end of last week and part of this week working on a much better solution to jumping, one that uses the expanding animation system. The new version is in three parts, with preparation, loop, and recovery phases. While it already feels much better, future planning includes jump height based on player input, running jumps, as well as compensation for longer air time and recovery (like after being launched by a Luch-a-Pult!)

4. Tech – Elasticsearch on C++: Colin has added logging to the database instead of the file system to better track server issues. Not only will this help us track our current elusive stability bug, but will make it easier to find future problems more efficiently.

5. Tech – Server startup revisit: As Rob was wrapping up some updates to player spawn points, he took a detour to reorder some server startup tasks. Doing so helped us spot some issues that allowed you to load into a zone before things such as abilities or buildings had finished loading (which is not a good thing, as some of our Backers found out).

6. WIP – Tech – Fledgling: Fledgling lives! As mentioned in the Producer Post-mortem in last month’s newsletter, we’ve brought up an additional server to facilitate testing. Fledgling allows us to take a snapshot of what is on Hatchery (the latest cutting-edge code) for testing, while keeping the team free to work unimpeded on Hatchery.

7. WIP – Skills loading from the database: As part of our UI update push from JB, we’ve moved skill loading from the file system to the database. This allows us to load skill info and related data to the UI faster, while also makes things easier to work with.

8. Tech – Lighting Transparency improvements: Along with the updated particle rendering, we’ve improved rendering of transparency with lighting. Check out the images included in today’s update, where you can see our lights working much better with transparency, such as in water!

9. WIP – Art – Willow trees: Per last week’s images of our WIP trees, Dionne has improved the previous textures and created two alternate sets for more variation. Currently, she’s wrapping up the problem-solving pass for the LOD setup for better performance. Up next: variations in size and shape, as well as matching terrain textures to make these feel like they belong in the world.

10. Art – Animations: On the asset side of animation, Scott and Sandra have been busy this week completing:
a. Updates to previous jump animations to work better with Andrew’s changes.
b. Unarmed combat idles.
c. Two-handed axe combat movement improvements.
d. WIP – reworking polearm animation to include lower body movement, per investigations for
better visuals.
e. Additional discussion and task prep for further “look and feel” improvements.

11. Art WIP – VFX testing map: Tyler began setting up a terrain mod with additional assets to test VFX performance and new features.

12. Art WIP – Siege Weapons: Earlier this week, Jon streamed work on the Arthurian siege engine, and is ending the week with high poly modeling pass. Moving to materials is next on his list.

13. Art – WIP – Beta 1 resource nodes: For Beta 1, we plan on using simple models from which players can gather resources, such as wood, stone, and metals. We set up some log piles for testing Christina’s resource node code. We will then investigate the time to complete material variations to match substance types, and will scale the number of materials for the opening of Beta 1 to match.

14. Art – WIP – Additional VFX for testing: Mike has been busy creating plenty of test cases for the tech improvements noted above, and has now begun creating new environment VFX, such as falling leaves, wisps of water for transparency testing, and soon will be moving into adding smoke and air debris to the Place of Power for transparency testing.

A solid Top Tenish for us this week. Now let’s jump into our user stories for the last two weeks. If you want some of the details of our current major tasks, read on. If you want to get to the pretty pictures, just scroll down till you see art. 🙂

User Stories:
50 completes in old cards.
2 completes in new cards.

Existing Cards:

As a Backer, I’d like to be able to be able to play an Archer.
Refactor to support multiple different mouse control schemes at the same time for playtesting. – Complete

As a Backer, I’d like to find unique environment props, or unique locations, that add flavor to the environment while I’m exploring the Biomes.
Ruined statue environment accent v7 – mats – Complete

As a Backer, I’d like to know about smaller changes that don’t have their own user story. – Complete
Set ResourceManager on AudioController before attempting to load things. – Complete
Add option to disable sending webhooks from a specific api server via settings conf. – Complete
Update web api csproj so it builds on jenkins. – Complete
CogSnapShotCache is replaced by CogSnapShotRefs using DefRefs. – Complete
ClientSkills tag lookup now uses system in CogSnapShotRef. – Complete
Add /timeScale when running in noserver mode. – Complete
Remove console output destinations when removing UI windows to prevent duplicate messages on zone transitions. – Complete
Update respawning rules to factor in building permissions. – Complete
Load gameplay defref channel during database init task. – Complete
Reorder server startup tasks to support new game functionality. – Complete

As a Backer, I’d like to see the world of Camelot Unchained continue to develop through its lore.
Picts Becoming – Final draft. – Complete

As a Backer, I want to be able to own a plot of land and build within it. – First Pass
Server/Client message and code for adding/removing sub-grids. – Complete
Can build plots in offline mode. – Complete
Add which grid is being edited to BuildingCellChange proto message. – Complete
Add the ability to call commands on nearby buildings from the client. – Complete
Buillding commands query against plots rather than buildings. – Complete

As both a Backer and developer, I’d like to have more dev commands to facilitate testing, and general interactions with the player community.
Add admin commands to reboot server. – Complete

As a Backer, I’d like to see improvements in server stability, speed, and robustness.
Integrate ElasticSearch to log on database instead of file system. – Complete

As a Developer and Backer, I’d like to see improvements in lighting and rendering.
Fixed impostors-with-children crashing. – 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!
Add retries for connecting to chat server to server startup tasks. – Complete

As a Developer, I’d like to see improvements in the editor to facilitate my work.
Move the editor to use the new DefRef-based cog snapshot API. – Complete

As a Backer in Beta 1, I’d like to play as a Crafter with basic gathering and crafting mechanics for testing.
Lock system to constrict which recipes and nodes are available to which players. – Complete
Defines how to take substances and make alloys. – Complete
Set up recipes as a list of ingredient rules which can constrain ingredient types, quality and amounts. – Complete
Track percent remaining for the alloy. – Complete
Setup Alloys code-side to have an entry as an ItemDef – Complete
Allow alloys to be crafted from data sheets. – 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.
Update ItemMessage to be able to notify the client on change. – Complete

As a Developer, I’d like the Camelot Unchained ability system to fully support the design scope of the game for B1.
Server-side implementation of ‘cancel all skills’. – Complete
Load skills on API server. – Complete

As a Developer, I’d like to prototype various combat animations to support future system improvements during Beta.
2-Handed Axe Animations:
Greataxe upper body combat locomotion – second pass. – Complete
Audits and improvements to pre-existing assets:
Empty-handed combat idle. – Complete
Empty-handed combat idle alt. – Complete
Jump Improvements:
Create new jump prep phase, hang loop, and recover phase using two-handed axe prototype. – Complete

As a Backer, I want to seamlessly move between islands and zones without being aware that I’m moving between different game servers.
Added new audio events for loading and transitions. – Complete
Play zone transition audio as a local player sound. – Complete
Load sound banks before loading zone to prevent models with attached sound events. – Complete
Fix initialization order issue that was causing the game server to send an empty address to the presence server. – Complete
Reset ModeComponent when sending between servers. – Complete
Clear active proxies when we dispose the proxy manager. – Complete

As a Backer in Beta 1, I’d like to be able to further personalize my character through the use of the Banes and Boons system.
Add min/max traits points in web API response. – Complete

As a Developer, I’d like to pull the physics server out to its own process for improved network performance.
Proxy servers now reconnect to physics server. – Complete

As a Backer, I want an animation system that blends multiple animations together, and allows for immersive and fun combat.
Update the AnimSet on the skeleton cog only when build succeeds. – Complete
Initial jump re-implementation. – Complete
Prioritize jump over walk. – Complete
Update compression of anim data and reference same keyframes when two clips have same bone data to decrease skeleton data size. – Complete
Add animation ClipTags for Fall and Land. – Complete

New Cards:

As a Backer, I’d like to play in new biomes that change according to Realm ownership. – Mini biome – Willow trees.
First pass base tree geometry and materials. – Complete
Trees: Additional base material variations created. – Complete

I’m proud to say, in comparison with several past updates, that we’re maintaining a good pace here, with no signs of slowing down. In terms of art this week, everyone has been fairly busy working in many different areas. While all of our particle rendering changes are brand new as of today, and therefore don’t have nifty examples yet, what we can show off are our changes to how our forward+ lighting system now works better with transparency. The below image illustrates how lighting, clearly, was not working with the transparency in our water. Just as always, these screenshots are not retouched in any way (other than adding our watermark, of course)!

The following two images show off the work completed this week. George calls it a “Bonus change!” along with the particle work. You can clearly see the improvements in how our lights behave with the water.

Now here’s the really cool bit. The image below quantifies by color how many lights are being rendered in each “block.” The short version of the color chart is:
1 light = cyan
3 lights = blue
5-7 = green
11-15 = yellow
24-35 = orange
53-78 = red, with upwards of 172-256 in purple. The total number of lights in the scene is roughly 2048! I’d say we’re well on our way to big battles when it comes to VFX and lighting and it only gets better from here.

As part of the added features to our VFX system noted above, the below image shows a test example of lit particles with shading and normal map usage. These boxes are actually particles, and not geometry.

Moving into the world of animation, Scott completed some audits of the two-handed greataxe combat locomotions, as seen in the following image with our Viking looking for targets! As a last minute add, Scott created a quick render of a work in progress, two-handed axe equip and unequip animation. Catch that on your Youtube channel HERE.

For environment art, we have images from improvements made to the first pass of the willow trees. You can catch last week’s stream with Dionne HERE. These images includes improvements to the geometry and previous blossom material, as well as a leaf and leaf/blossom variation. As we’ve said before, we’re looking for opportunities for variation in the world art to make it feel more natural and alive. This is something our VFX updates will help improve as we later add in falling leaves, dust, wisps of magic, etc.

Michelle has been working on UI styling for our first pass Beta UI elements. The following two images represent WIP ideas for general styling, as well as possible ideas for the character health bar.

If you caught Jon’s stream from earlier this week, you saw how he’s turning Michelle’s concept art into the first stage of a working siege engine. This image encompasses the high poly sculpting pass, the precursor to materials next week.

To end the week with a bit of cute, a big thanks goes out to Zenksor for the gift of a special basking rock for the newest addition to the CSE team. Here’s Sandra’s personal thank you!

Well that wraps up the week for us here at CSE. Join us next week for more info and more streaming.


– t

P.S. And as to why “Party Poopers?” MailChimp was being particularly uncooperative tonight and Mark and I had to spend/waste a whole lot of time this evening (and not go home to our wonderful families) in order to get this email out to our Backers this evening.