Hey everyone - I'm Ethos, the creative director of Samurai Zero and welcome to Dev Log for March 2020.
Today, I wanted to share with you guys a little bit of what we have been working on over the past month. Unfortunately due to the current Covid-19 health crisis, we were kind of limited and unable to complete every goal we wanted to accomplish this month, however we are pretty happy with the progress we have made.
Let's start with the big focus of this month, multiplayer networking. Being that Samurai Zero is a multiplayer game we found it very important to nail arguably the most important system of the entire game. To that end we started working on a networking system to allow players to connect to one another and see and interact with each other.
This undertaking is a massive one and actually ate up a majority of our development time this month. One may ask, why focus on this first over other possible mechanics like combat.
Well it's pretty simple. Think of it like building a house. If the foundation of your house is not solid, the house will be built on shaky ground and overtime become more and more prone to falling down. It's the same idea with Samurai Zero. We can add the coolest gameplay mechanics to the game, but if the tech can't hold it up, the experience will not be enjoyable.
Networking is a very complex topic that I don't want to dig too far into in this dev log because it would end up being a much longer video. Our first test case was creating a ip connect system where you can connect to a friends IP and actually join a session together. This is obviously not how the full game's multiplayer system will function and is just being used right now for internal testing and demo purposes. Later on in development we plan on creating an in depth matchmaking and party system that you should expect as standard of any multiplayer game.
But for now as a tool for debugging, it gets the job done. Once we got that up and running we were able to connect two people from different locations to one instance and be able to see each other. The next stage came in the form of replicating our characters' movements on the server and clients. When dealing with networking, one of the trickiest aspects of it is making sure that every player can see exactly what other players are doing every single moment while connected. As a player, anytime you input anything, movement or action, you send a ping to the server alerting the server as to your intention and then it's the server's job to mark that action and inform all other players of that action visually.
Add on top of that, ping differences, and latency, you have a perfect recipe for disaster. I'm sure you all have experienced it. Characters suddenly teleporting on the screen or that feeling of you lagging. These are symptoms of the player not being in sync with where the server expects you to be and as a result the server forcing some corrections on your end and other players screens.
This is just a very high level explanation of networking as of course like everything in game development, its even more complicated during implementation. Now if you will for a moment imagine what I just explained and replicate it so, works with every single gameplay mechanic in your game. That is what we have focused on this entire month. Once we got our basic movement working online we then moved to our advanced movement like the jumps and wall running and that's when things got really tricky.
Here's some indie dev advice that isn't really well known. It's hard and I mean hard to find good documentation about multiplayer systems. Don't get me wrong, there is a good amount of devs that have done it and tutorials on youtube, but this information never truly will contain everything you need in order to make a good networking system for every type of game.
Multiplayer games are not simple feats that can be done by watching a couple of tutorials. Lucky, our amazing programmer Reid, has been doing a great job of figuring out the unknowns and forging a strong foundation for Samurai Zero's multiplayer component.
I am proud to announce that we have been able to sucesfully implement a listen server system for testing our gameplay mechanics in a online environment. It was our hardrest obstable to date, but we have so far very promising results. I know some of you may be asking what exactly is a listen server, so today I have brought Reid here to explain a little bit about networking and listen servers. <Highlight from tutorial>
We have been testing our networking code under extreme scenarios such as playing with a high ping of 500. This is actually what other multiplayer devs have done like the coalition for gears of war when testing their multiplayer's netcode.
Our programmer Reid has discovered alot of gems when developing this system and we felt that after finally getting it to work, this information is way too important to keep hidden. That is why we are happy to share with anyone interested, an almost hour long in depth tutorial and discussion about listen servers and setting up networked character movement.
Reid has spent an immense amount of time working on this system and we hope the information we can share with the greater dev community may help a developer not suffer through the same pains we had to last month. If you are a developer interested in this information or just curious, the link to the full tutorial is located in the description below.
While we still have to finish hooking up networking for all variations of Samurai Zero's jumps, we are confident as we move into this month and start working on the system everyone wants to know the most about...Combat.
I previously brought up how we set up a basic way for players to connect to each other for testing. in order to do this we had to create some sort of menu ui to allow players to host and join each other. So, I took initiative on this and first took a trip to the unreal engine marketplace.
The marketplace is an awesome place full of free and purchasable assets created by other awesome UE4 developers for anyone to use for their games.
I was in the market for a nice clean menu system framework that I could use as a placeholder for early testing and demo purposes and came upon this awesome menu system. While Samurai Zero uses original custom made assets, in game development there is always the need for rapid creation when testing new features and systems.
The menu being one of them. I wanted the menu to be simple, but still nice on the eyes. After a little bit of searching and weighing the different options on the marketplace, I went with this battlefront 2 inspired pro main menu asset.
I believe that this is a great example of using store assets. Some gamers look down on games who grab assets from a store and just put it all together without barely any changes and try to sell it as a brand new game on the market. That in my opinion, is not the purpose for these marketplace assets. They are to help developers budget, learn, improve and even shorten development on any aspect of their game so they can continue to work on the hardest and most important areas at that time in development.
I started early this month with barely any knowledge of UE4's ui widget system and by the end of this month, I was able to create a fully functional ui system outfited to work with our game and systems, in part to reverse engineering this awesome pro menu asset.
I even did a fun surprise for those who followed me on twitch, by live streaming a bit of me developing this menu system. I worked on a cool samurai customization menu area where you can select one of the current samurai in the game and learn a bit about their stats and abilities.
If you missed it, I have attached a link in the description below. It was awesome and all the people who were there really enjoyed the entire stream. I am hoping that the team and I can do more of them as development continues on.
The team really loves the UI and we plan on expanding on it a bit, using it as a placeholder if we decide on remaking it later into development, but for right now, it fits our needs perfectly!
There's still a lot more we actually were able to do on the art side of things, but we aren't ready to publicly reveal them here yet. However, if you are a patreon backer, you can go ahead and check out the extended dev log and get an early peek at them. I think you guys are gonna love what you see.
I think that pretty much covers it for this dev log. Sorry we didn't have more to share with you for this month. The Coronavirus has caused a couple of plans we had to be delayed, but we have adjusted and are still working hard on Samurai Zero.
This video wouldn't have been possible without the support of our Patreon, you all are amazing for supporting us, especially during these times. If you would like to support the development of Samurai Zero and see some additional content not yet shown to the public, consider backing us and joining our discord.
Thanks for watching, please #stayhomestaysafe and remember, always forward.