If you are interested in what main technology we use in the game – here’s a post for you! Let’s start with some history, however.
The first version of the game was made many years ago. In those ancient times there wasn’t much choice of network technologies. As the game was to run in a browser, you had to use something that not only supported this case but was also available from hosting providers. In practice, this meant using PHP, whether you wanted it or not. The result was not satisfactory – quite a few errors (often only detected by you) and low performance. Since then, whenever the topic of resurrecting the game appeared, we knew that it was necessary to approach the problem differently.
The first decision was to abandon PHP and create a dedicated game server from scratch. The original choice fell on C++ (maturity and multitude of libraries) and for a long time Vis Arcana was created in this technology. Initially, the progress was quite good – the code grew quite quickly, the performance was at a high level and new opportunities for interaction between players appeared. Unfortunately, over time, progress began to decrease, and various types of bugs began to appear more and more. When we realized we must first resurrect the previous version of the game, instead of going into a full revolution, we had to verify the technologies used again.
This time Rust won – a future-oriented language focused on performance and a high level of code safety. What did this mean in practice? Of course, starting over with the hope that the advantages of the new technology will outweigh the costs of starting from scratch. Rust advertises as a very productive language in which most errors (apart from logical ones) are caught at the compilation stage. After more than a year of working with it, I must admit that it’s absolutely correct – new game modules are added extremely quickly, and the number of errors has dropped to practically zero. Thanks to this, I can focus on adding real gameplay elements instead of debugging for hours. Rust’s philosophy is simple – once the game is built, it works 👍
Relatively recently the built-in asynchronous language feature has been stabilized, which has had a positive impact on the game. Thanks to this, we can serve even more players without having to invest in better equipment. All this will ultimately translate into you – the entire community. We can spend more time developing the game and coming up with further improvements instead of fighting with technology. Therefore, to anyone who works with native languages, I highly recommend switching to Rust – after crossing the entry threshold, productivity shoots up with a level of confidence that everything works as it should. And the game goes forward thanks to this.