12 September

CoE Development Update: September 2023

By Caspian

Greetings Elyrians!

I hope each and every one of you is having a fantastic Q3 so far. As we enter the "back to school" season in the northern hemisphere, it's also a time for many of us who work from home with teenagers to get back into the swing of things. I returned to work a couple of weeks ago, and I'm super excited about what's coming up between now and January! But no spoilers - yet - those are coming next month. For now, let's take a quick look at what I've been up to since my return.

As always, feel free to use the outline below to jump to the section that interests you the most, or simply continue reading to get the complete picture.

  1. Network Research & the Spirit Protocol
  2. Soulborn Engine Licensing
  3. Extended Alpha Test
  4. What's Next?

Network Research & the Spirit Protocol

Upon resuming work after my time off, I immediately jumped back into making progress on the CoE Server Platform through the development of the Spirit Protocol. If you caught last month's Development Update, you're already aware that the Spirit Protocol serves as the new transport layer network protocol for all current and future games built on the Soulborn Engine. That makes it a critical part of our server platform. It needs to be both scalable, performant, and extensible.

Now, I have to be honest here. While I've been a software engineer, an application/service developer, and a game developer, network programming has never been my area of expertise. After struggling with it for a bit, I decided to spend some time in research mode rather than development mode, learning as much as possible about the various transport, pseudo-transport, and application layer protocols. My goal was to better understand the full set of responsibilities of the transport layer and what optimizations I needed to make to create a future-proof protocol.

While I read several RFCs (internet standards) and technical specifications end-to-end, I started by sitting down and writing out what I was trying to accomplish with this protocol. I also wrote down what makes the environment it will run in unique and any problems I knew we'd need to solve. After all, several well-known, well-established protocols already exist, so why create a new one? You can see an image of that document here:

Image-1

With a good understanding of what problems I was trying to solve, I started researching several existing protocols: some well-established, some that failed to take off, and some that are just getting started. From that, I ended up with the following list:

Image-2

Next, I dove into the various RFCs and technical documents and summarized them in my own journal for easy reference. You can see some examples of my SCTP and XTP overviews here:

Figure 1: Snippet from my SCTP write-up
Image-4

Figure 2: Snippet from my XTP write-up
Image-5

After reviewing the various existing protocols, I found several features that needed to be added to my planned and implemented protocol thus far. So it was time well spent. I also discovered that there were a few protocols that were close to what I wanted but didn't work for one reason or another. Either it didn't support multiplexing, was secure by default, and required fully encrypted messages, or was a pure transport protocol that routers and middleboxes on the internet would never support.

Consequently, it became apparent that developing our own protocol was still the best way forward. So last week, I resumed iterating on the Spirit Protocol, which aims to integrate the best elements from existing protocols with additional application-layer configurations, and then tailored to best suit an environment with 15-120 messages per second, such as in a simulation. If you're interested in learning more about the features I landed on and the technical details of the Spirit Protocol, check out my next developer journal coming in two weeks.

While work on the Spirit Protocol continues, and I wasn't quite able to get to the point of showing the shiny stuff this month, it's worth noting that it hasn't been the sole focus since my return.

Soulborn Engine Licensing

Exciting news! I've just completed negotiations with the first game company to license the Soulborn Engine for use in their games! It's not for me to say who it is - that's up to them to disclose they are using the Soulborn Engine, but what I can say is that the company is focused primarily on Mobile MMOs.

This partnership marks a significant milestone for us. While I anticipate this taking only a little of my time away from CoE/KoE, it's our first licensee, so there will be some adjustments as we navigate through any initial challenges together. It also means I'll need to wrap up work on the Server Platform and Server-Side Game Engine while I make forward progress on KoE. So, if you've been wondering why I haven't switched back to gameplay mechanics yet, now you know why.

It's worth noting that this license agreement follows an open-source approach. In exchange for access to the source code, the company must submit pull requests for any changes or additional functionality they introduce to the engine. This arrangement not only provides an alternative revenue stream for Soulbound Studios but also accelerates the evolution and development of the engine itself.

Extended Alpha Test

Now that I'm back from my break, there's one other important matter I'd like to address. As we've observed from the recent release of Baldur's Gate 3, players appreciate a polished and rock-solid experience out of the gate (pun intended). With our first license agreement in place, the financial pressure on the studio has eased somewhat, so we have some new flexibility. As we enter the final trimester of 2023, I have a decision to make regarding the release strategy for KoE.

While pushing for a release this year was already looking unlikely, I have come to recognize that rushing the launch wouldn't be in the best interest of the players or the studio. My focus this year has been primarily on the server platform and server-side game engine, leaving little time to refine the gameplay mechanics and enhance the overall player experience. Additionally, with the new license agreement, I'll need to dedicate some extra time to support our licensee fully.

Hence, I've revised my plans. Instead of aiming for a quick release, I'm opting for an extended Alpha testing phase. This change in approach will allow us to gather valuable feedback from our backers and ensure that KoE: Settlements reaches its full potential before making its way to Steam. While I can't provide an exact timeline for how long the Alpha and Beta tests will last, I'm still planning to launch the Alpha test by the end of the year. I'm committed to delivering the best possible player experience to the public in collaboration with our backers, and I'm so excited for the opportunity to engage with them again in that way.

What's Up Next?!

With the licensing deal now ready to be inked, the coming month will primarily revolve around bridging the gap between our current state and meeting the needs of our licensee. Once I have that squared away, I'll shift focus to support systems like AI, animation, and physics triggers. After completing the necessary AI work, I can dive headfirst into gameplay mechanics, leading to the Alpha test.

That's all for now! In just two weeks, I'll be releasing the next installment of the developer journal for this month. This time, we'll take a closer look at the transport layer I've been diligently working on. If you are interested in the technical aspects, be sure to mark your calendars and check it out!

Pledged to the Development of the Soulborn Engine and the Chronicles of Elyria,

Caspian