Bushi
At a Glance
Summary

Bushi is a "Third-Person Arena Brawler", focusing on dynamic parkour and reactionary gameplay as you weave between bows and swords. Our initial team began with only five members, and despite not having a budget we held strong for two years as we polished our skills by working on the project. As of now, the core team sits at eight members with over $350,000 having been raised via sales and investments. Bushi is still in its Alpha phase, which means that there is much more room for growth.

Details

Bushi began as a simplistic prototype that was presented to me in 2020 by some close friends. It was there when I began working on the game as the other software engineer was busy with other aspects of the project. Bushi then went through multiple iterations until I was contracted to develop the release version on Unreal Engine 5.


Netcode & Optimization

Developing the netcode for Bushi proved to be an arduous task due several factors. With a lack of server infrastructure, it became imperative to develop seamless peer to peer gameplay. On top of that, it was also necessary to keep most of the logic server-sided in order to prevent cheating and to future-proof for dedicated servers. These two issues alone weren't the crux of the problem, rather it was the fast-paced nature of the gameplay that complicated things. This essentially created a scenario where I would have to make Bushi server-sided, yet still responsive without any delay-based techniques. Such a dilemma resulted in developing robust roll-back netcode to keep client inputs instantaneous, while verifying such inputs on a server level.

Optimization was another important factor in development with competitive gaming and ESports being one of our major focuses. To ensure that the game was performant on a CPU level, especially for the client acting as the server, I heavily used hashmaps and caching techniques to reduce casts and other redundant calls. While this does take addional RAM, the trade-off in performance proved to be worthwhile with memory usage remaining low overall despite such a direction. On the GPU side of things, we ensured that Bushi could be played on older generation hardware such as a NVidia 860GTX which produced an average framerate of 60 and above. We accomplished this by using older techniques that have been abandoned in place for more dynamic solutions in today's market. Although this slows development down, the processing power that you save with techniques such as Cascaded Shadow Maps is more than worth it.


The Need for Speed

Our "Momentum And Speed System" or MASS took several months to create and was born out of necessity when the prototype for Bushi was made. The initial iterations of Bushi were fast and snappy to the point that the gameplay wasn't coherent even at a high skill level. It was here when we realized that what makes "fast" games fun isn't the inherent speed, but rather the build-up and preservation of speed. This led to me rewriting all of Bushi's movement and combat code to where it is today. Such improvements allowed Bushi's overall gameplay to slow down to a more understandable pace, while keeping the top-end speed of the game at the same level if not higher than what it was before. MASS accomplishes this by retaining velocity across all movement actions, while also providing ways to redirect or conserve that velocity via gameplay mechanics. This can be easily seen through Bushi's sliding and dynamic parkour mechanics that allow you to procedurally traverse any terrain. Thanks to sub-stepping netcode, all of this logic is able to perform on a server level as well with little to no desync between the client.