At the end of last week, Metaworld’s first multiplayer and stability test took place. Considering how an important step it is, I will take some time to talk about it, and will try to be as transparent as possible regarding its results. If you would like to hear more about some details, feel free to ask about them in the comments.
These were the initial goals I set for this first test session:
– check the server stability,
– check the client stability,
– test the combat system and have some feedback on it,
– have some graphical feedbacks,
– find as much bugs as possible.
– 5 concurrent uers,
– ~16 square kilometers (~6.2 square miles) map,
– 40 mobs on a restricted area
– ~2 hours long test
The good surprise was that the stability of the game server was great. Not only did it never crashed, but it never entered a deadlock or any kind of blocking state, and all of its task were properly done with a low impact on resources consumption – to be expected considered the low scale of the test. I initially thought it had a major network blocking issue, but later debug proved that the source of it was actually the client.
The chat server being a chat server for a game with all players on TeamSpeak, it was idle most of the time, but did its job when needed.
Contrary to the server, the client proved to be quite unstable in some cases. Drag-and-drop of skills or items to the hotbar was the source of most crashes. The other source being the swap from the fullscreen game to desktop + swap back to the fullscreen game. Indeed, I wasn’t handling lost graphical devices yet, and was developing in windowed mode, so, obviously, it became quite apparent in this test.
Another issue was the one I talked about previously: some kind of (apparent) network blocking was randomly occuring.
Practically, players were rolled back to earlier positions, some attacks weren’t landing, players were disconnected for inactivity, etc, it really felt like messages weren’t reaching the server when they should, similarly to what can cause an heavy latency.
It was actually due to multiple causes. The first was that the player’s position timer (currently, this information is sent every 20 ms) was not precise enough, and if the time between each send was exactly 20 ms, it would just never send the information due to a poorly placed modulo operation making the timer go back to 0. The other reason was – bash me – that the client was sending to the server the position information for every single movable entity it knew about. Basically: 40 mobs + 5 players. The server had no problem dealing with this situation, and discarded the unauthorized messages (a good test in itself), but the client was occasionally struggling when it was trying to send data for 45 characters at the same time.
The combat system was in a pretty rough state, and it totally felt like it. It was riddled with minor bugs (dead people could resurrect other dead people, some damage numbers weren’t shown, people could attack when flying or sailing, etc), but the biggest problem was a gameplay one, with the lack of a zero-cooldown or automatic attack, forcing players to wait for 2~5s cooldowns between each skill, making the combat quite slow (as you can see in the video below). Otherwise, it felt very classical to the testers (that are used to play MMORPGs). Some remarks done on the vocal server we were on, like “the skill is not working” or “I die when I use a life consuming skill”, made it clear that the combat needed better feedbacks, both graphical and audio, to make it clearer when the player can or can’t/shouldn’t do something.
Overall, the feedback was quite positive regarding graphics, especially characters and the view range, with an exceptions being the sea details – the lack of feedback when sailing made it hard to tell where you are when no land was at the horizon, and if you’re even moving in the first place.
Some testers were also worried that using cubes could make the game too close to Minecraft. Note that amongst the testers only one knew and played to Cube World, so let’s guess that the worries would have gone towards the resemblance with this game instead, should have they know about it.
The day after the tests, I uploaded a 5 minutes video on YouTube with some sequences from the test. No sound for now, not that there aren’t any in-game, but voices from the testers were on the video. Keep in mind that this is still a work in progress. Enjoy:
At the time I’m writing this post, all of the technical issues and found bugs have been dealt with, what means that the game in its current state is quite stable. Something that will need to be proven in a future test.
I’m now working on the combat, that needs to be improved, before developing anything new.
As previously said, if you have any question, go for it! See you next time.