Upcoming BabylonJS-powered MMORPG Closed Beta! [heroboundgame.com]

Thanks for the kind words, @cyborg_ean!

Impressive numbers, what are the server specs?

Interestingly enough, the game server chosen for the beta and initial launch is a Mac Mini. It sounds strange, especially since there is no headless version of MacOS (anymore), but because of the way the server is implemented (using lots of RAM and focusing on single-thread performance), it runs MUCH faster on Apple’s ARM architecture than even the best commercial x64 server hardware, due almost entirely to the unbeatable access speeds of its shared memory.

Clearly this option wouldn’t work for everyone, but already being equipped with the necessary network bandwidth to host thousands of connected users, and Apple’s 0% financing, it made more sense to just buy a mac mini outright for the initial launch than to pay to host it elsewhere, for now, at least. Obviously this won’t scale, but if there are too many players for this one server to handle, or enough interest from other locations in the world that I need to host servers offsite, that’s not a bad problem to have! It also won’t be a very hard one to solve since the CI/CD tools are already in place.

[Edit: Forgot to mention that another consideration that lead to this choice was that the low power consumption. Only uses around 40w on average – with a max of 185w. So very cheap to run.]

It’s also worth noting that we’re using Cloudflare to relay connections, so we don’t have to worry about a ddos attack taking down the server. At most, they’ll be able to take down one relay node, causing anyone else who happens to be connected through the same node to experience a 5-10 second hiccup as they reconnect through a different one. This is another benefit of the mechanical tradeoff of using point-and-click grid movement – the slight increase in ping from using commercial ddos protection isn’t even noticeable. If the game had free movement with WASD keys, for example, which would already feel sluggish since the web does not support UDP sockets (yet), adding the additional proxy could be a game-killer.

I’ll also give a shot at baking VATs in game

Absolutely do this (but don’t actually bake them in game, bake them externally and import the baked animations). The complexity only comes into play if you need to attach to bones of the skeleton. Which is still doable, but just requires a bit more thought to implement properly. This thread was very helpful for getting started with the VAT baking: Baked Texture Animations with Animation Groups? - #38 by Evgeni_Popov

If you run into the same issues I did when it comes to managing baked animations (playing in sequence, stopping when it’s complete, etc.), find me in the HeroBound discord and I can help you out.

1 Like