15 February

CoE Developer Blog: February 2023

By Caspian

Greetings, everyone!

Welcome to our second monthly update for CoE/KoE of 2023. A lot has happened in January, and the community has a palpable buzz. I'll summarize what's happened over the last month, and then we'll talk more about what's coming up next week! Let's dive in.

Design Consolidation

A game's design is the keystone of the entire project. Once again, I am at the helm of CoE's end-to-end design. I began the year by reviewing, revising, and finalizing the different functional and technical specifications of CoE in preparation for the upcoming Alpha Tests.

One of the first tasks I set out to do as part of that process was consolidation. Many of the game mechanics of CoE have received multiple iterations and versions of the documentation over the years. In some cases, verbal chats in the office resulted in implementations different than what was even in the design docs! It was difficult to tell which version was the "Source of Truth." So when Snipehunter and I started pushing on KoE in 2020 (which began in Fall of 2019), I forked the documentation and created the KoE wiki. Since then, we've iterated on it, changed it, adapted it, and as of January 2023, there were two distinctly separate sets of design documents. Gross.

CoEs Design Bible

CoE's Design Bible

KoEs Design Bible

KoE's Design Bible

As KoE is supposed to be the domain, settlement, and land management mechanics of CoE, I decided it was time to merge all the learnings and designs we'd done over the last two years back in the CoE wiki. Instead of having a separate set of design documents in the KoE space, I wanted the KoE space to reference the CoE documentation whenever possible and only detail the areas where KoE is different from CoE, which should be relatively small.

KoE design document refactor

An example of KoE's design document referencing CoE

Agriculture

As I went through the consolidation process, I came upon the Agriculture (Super) feature area. The Agriculture feature area was one of the most iterated-on design documents. It had many unanswered questions, and as it's vital to my work on Kingdoms of Elyria, I decided it was an excellent place to dive in and start answering the unanswered questions.

Consolidating and revising the Agriculture feature area was a multi-step process that involved shifting through the already written designs, which were often more information than actionable, doing my own research, and then ultimately turning the learnings and existing design documents into Functional and Technical Specifications. As an example of what I mean by the design documents being more "informational than actionable," here are a couple of comments I made in the Seasons Design Document.



It's common when building simulated worlds like Elyria to sometimes get lost in the weeds (pun intended), and that's something that our designers had done in these examples. There's an absolute need to understand how the game mechanics fit into the world. Still, in the Gameplay section of a design bible, there must be actionable designs for the engineers to implement.

I spent about a week and a half or so in January working through the Agriculture mechanics and broke it up into the respective Feature Areas of Horticulture (Plants), Husbandry (Animals), and Mycology (Fungi), and consolidated and revised the design documents of each. Here's an example of a part of the Mycology Functional Design Document:


After that, I moved on to the Technical Design Documents and started detailing the Components, Systems, and Features required to implement each feature of each feature area. (And before you ask, no, I only started watching The Last of Us on HBO after I wrote the Mycology designs)

Permissions

After revising a significant part of the functional and technical design document on Agriculture, I decided it was best to hedge my bets and return to the overall reorganization and revision process. At that point, I decided a more systematic approach was better and started at the very top of our design bible alphabetically with Access Restrictions. The Access Restrictions Feature Area is broken up into the Lock & Keys, Permissions, and Traps Features. As with any complex game mechanic, getting as many use cases as possible is essential to ensure you've covered the potential applications. After working on the Permissions system for a while, I decided to solicit use cases for the permissions system from one of the active CoE Discords. I initially provided this image and a request to match the format of my use cases.


One member suggested I find a way to solicit use cases from the larger CoE community and not limit it to that Discord Server. It was a great idea, so I created a Google Form and invited people still on the Official CoE Discord Server to submit their use cases.

The responses were incredible! As per the format, people submitted the role they intended to play as part of their submissions, and I was re-exposed to the different visions people have for Elyria. And it was awesome! I received feedback from business/shop owners, mercenary units, local lords, sailors, librarians, fishers, miners, zoo owners, temple leaders, healers, and physicians. I can't express my joy at seeing people's visions of our shared world again. I decided to share some of my favorite submissions with you. These were my favorite, primarily because they caused me to expand the scope of use for the Permissions system in a way I hadn't conceived before.

  • "I am a city manager, and I want to exile someone from my city by revoking permission to be inside the city. Not having permission to be inside the city should make it a crime to be inside a building that is inside the city even when the exiled has permission by the building owner to be in the building." (We generally allow smaller scopes to override the Permissions of larger scopes. So this is a unique edge case and likely falls under a different system than Permissions alone.)

  • "I am the owner of a library and want to allow people to pick up and read books, but not take them out of the building without permission." (Book reading wasn't something I'd had permissions for before this.)

  • "I am a store owner, and I want to allow the temporary (time limted) use of weapons from my store in a specific room to allow for testing to ensure satisfaction of the product." (We'd already established the need to pick up and examine items, but wielding weapons in a safe place isn't something we'd allowed for.)

  • "I’m a temple leader and want to restrict the clothing in a parcel/building to a certain outfit." (We have/had the ability to limit the use of items, but not the wearing of equipment. Though I admit, I'm curious to see how this one plays out in-game).

  • "Permissions to use a door only during the day and not the night." (While our AI knows to do their jobs during certain hours, our Permissions system didn't previously account for time of day)

After seeing the feedback on my Google form from the CoE Community, I decided to stop what I was working on and temporarily change priorities.

Website & Discord Work

As I move through the final stages of the development of CoE's domain, settlement, and land management mechanics, I will frequently encounter situations where I can only know the full scope of a feature with user feedback. While I can implement a basic set of use cases and then test in alpha, it is still faster to get as close to the final scope as possible before I iterate on the implementations. The best place to solicit feedback is among the players.

Having spent the last month actively engaging in CoE-related discussions on a few different Discords again and then seeing the responses to my Google Form, I decided it was time to reopen the Official CoE Discord for discussion, interaction, and community-building.

However, my goal in reopening the CoE Discord is more than just to return to the way things were before. A good friend once said, "you can't force a garden to grow. You can only cultivate an environment in which it wants to grow." If the community was toxic before, it was my fault. I allowed it to happen by not creating an environment that adequately reflected the values of the Studio.

As we move forward, I intend to cultivate an environment within Discord and on the community website that encourages creativity, teamwork, accessibility, and a passion for new worlds and the opportunities that online worlds give us to engage with others in meaningful ways. I aim to foster a community culture that is playful and accepting, friendly and inviting. One that recognizes we can be adversaries in-game and still friends and acquaintances out-of-game.

But to accomplish the things above, I need new tooling added to Discord, including the ability to authenticate users against their CoE Accounts and provide self-moderation tools to help the community build the type of culture we want. But to do that, I needed to change the CoE Website.

So for the last two weeks, I've been rewriting a significant part of the CoE Website. Without getting too technical here, the CoE Website spans multiple servers, some Windows and some Linux, and is built on an older version of a well-known web technology. To deploy new versions of the website in a way that's reliable, secure, and efficient, I needed to upgrade the website to a more recent version of the platform and break it up into microservices. So that's been my main focus and will continue to be my focus for another week or two.

What Discord will Look like when it reopens

Once the website is in a state I can deploy it again, I'll add in the necessary Discord integration to allow people to bind their Discord accounts to their CoE accounts. In the meantime, I've already begun adding the appropriate roles, colors, and channels to support our new usage scenarios. If you haven't been to the Discord server in a while, you can see what it looks like at the moment here:


Of particular note, there are new channel categories and channels, such as the Restricted Access channels, Domains Channels, and hidden below the fold, new Server Channels. While all those channels are visible now, after I get account-binding enabled, they will virtually all become hidden or read-only until someone binds their account. The Restricted Access channels will be limited to people with the appropriate access levels, and the royal court, town hall, and fairgrounds channels will be restricted to people with the proper package levels. The Server Categories will largely be limited to people who have bound their accounts to the appropriate servers. Access to the different kingdom channels will be restricted to people with a settlement or domain within the kingdom.

As you can see in the image above, people's usernames are still currently locked to what they had them set to before. But after authenticating, peoples' aliases will automatically change to match their CoE username, and they'll receive a server code and prefix indicating their title (Mayor, Courtier, Royal, Monarch). For example, if I had a Courtier package gifted to me in the Free Kingdom, my username would show as " [NE] Courtier Caspian."

User colors will also be updated after binding to reflect your package level; purple for nobility, blue for the aristocracy, red for the gentry, green for a founder, and white for Elyrian. Everyone else's names will remain the default gray.

Progress Update

With the last month's efforts out of the way, it's time to discuss the CoE roadmap and completion report. During last month's update, I mentioned my intent to post a table showing a breakdown of every feature area and feature of CoE's development and how far along it was. The process of creating such a table involves the following steps:

  1. Itemizing all the work done/to be done
  2. Establishing a system of identifying progress
  3. Setting the percent complete on each item
  4. Creating an intuitive table for all that information.

Item #1 above is a reasonably lengthy task as it involves pulling into a list/tree all the asset creation, design, engineering, gameplay mechanics, and world generation work detailed in our multiple wikis and our Perforce database. I intended to complete steps 1-4 by this week, but admittedly, I got so heads-down in the design work this last month, followed by engineering on the website, that I just remembered all about it at the end of last week. At that point, it was too late. I spent the weekend working on #1, but I still need to finish that one. Regardless, I didn't want to let this monthly update go by without showing what I'd done for #1 above.

So below, you'll find a video overview of all the "line items" of work that has or must be done to call CoE 100% complete. Put differently, when every item you see on the list is done, so is Chronicles of Elyria. As I have yet to make the video, I can't speak to its length, but I hope you enjoy it. Earlier today, someone asked me if I was excited to have this video out in the world. As I told them, I wouldn't say excited, more relieved. Although I've tried for a long time in various ways to provide a concise accounting of the progress of CoE, it needed to be more explicit. While I will show what's done later, this video should go a long way in helping people to understand what kind of work is required to ship CoE.


A New Beginning

While I'm no longer active on social media and don't visit Reddit or the like, I have been more active on Discord this last month. To my surprise, I've been getting more private messages, emails, and @'s from people telling me how enthusiastic they are about the work I've been doing this month, particularly the reopening of the Official CoE Discord.

It feels like the community is waking up again. I've largely kept to myself over the last couple of years, but re-engaging in the CoE community Discords has reminded me how vital the dialog is. This year I will hammer out the remaining Design work, putting in the hours to implement the necessary systems, features, and components, and getting KoE into the hands of backers again for the first time since 2021. And with the Official CoE Discord server up and running again soon, I intend to take the community with me through the entire process. And while I may only be relieved at getting the roadmap video out, I'm excited for a new beginning and the renewed community spirit.

Pledged To the Continued Development of the Soulborn Engine and the Chronicles of Elyria,

Caspian