Hey community, Rick here (Lead Game Dev). Let’s get straight into it. This week has been particularly challenging.
Continuing from last week’s update, I have been adding more and more of the multiplayer system, and foundational components from the “Shiryo_Core” into the latest build of Shiryo.
Now a particularly interesting “Issue” that emerged involved significant portions of the designed “Community” functionality. While with the (30PersonAlphaTest) we can get away with using a more modest list of multiplayer functionality. Core Shiryo functionality, in particular, cannot just be thrown together, it needs to be considered in its implementation from a wide perspective otherwise the “butterfly effect” of future consequences could be problematic.
This leads me to the “Issue” — the removal of “Community” functionality within “Shiryo_Core”.
The full list of (community*) functionality that we have designed to include in the full build of Shiryo is simply outstanding.
(The “community” aspect in video games cannot be understated. Everything from general competition, to the sharing of knowledge, techniques, and experiences between gamers (In-house called “talking around the water cooler moments”). Shared, fun and memorable gaming encounters, are THE desirable player experience that Shiryo has been designed to produce. This is what generates that sense of pride and accomplishment for a gamer and brings about a game’s replayability. This in a major way is what’s driving this booming video game industry that Shiryo is going to be a part of.)
Now Shiryo is heavily designed for “Community”, but the creation of the associated functionality, that also works optimally within the constraints of Shiryo’s unique features (Dynamically scalable servers, Integration with the Blockchain, Anonymity/Security/AntiCheat…etc) requires significantly more designing and testing to ensure that it “remains” securely within the design constraints.
The “Shiryo_Core” test build was expedited without this functionality.
So as I got closer to “completion” of integrating the AWS backend of (30PersonAlphaTest), more and more of these “community” features kept presenting themselves and the “expedited” framework that I was using was diverging further away from the “desired” design of Shiryo. I realised I could choose to continue and complete the backend for the (30PersonAlphaTest) but it would be a development build that would eventually reach a dead-end. Or.. I could preemptively cut my losses and all the “community” features that had emerged, rework them into the “Core” design to encompass these features, therefore finding a middle ground between “Expediting” the (30PersonAlphaTest) build while also not creating significant rework in the future.
I am happy to share that I have completed the “rework”. The multiplayer framework is now capable of supporting the planned “Community” functionality as is, avoiding the expected future problem.
In addition to this, further functionality that has also been implemented includes;
-Default creation of your own lobby (Versus) (Enabling you to invite friends, show off your prized NFT collections, create and join matches…. etc).
-The GameSession manager (Handling the termination of a GameSession including the different states that could result in this outcome (no players joining in (x) time, endgame condition player connections, Infrastructure issues (networking issues, disconnects, power cuts, being able to rejoin from a “disconnected” game…etc)
-Plus many other quality of life improvements.
I hope you find these BTS peeks informative, or perhaps at least provide you a wider perspective of the development of Shiryo. I will always endeavour to convey our processes/decisions in a comprehensive way that will include the “why” and not just the “how”. With that, I look forward to bringing you next week’s update.