Posted March 17, 2024 by marcomeijer
#mmo #crystal realms #bevy #rust
I decided I would start experimenting with a new format of the devlogs. Previously I posted screenshots with explanation of new features in our discord. But now I will give updates on what I have been up to in the past week. Let me know if you like this new format or how I should change it. This weeks might be a little bit longer though because of some important changes.
New client
I have been mostly working on rewriting the actual game in rust. The server has always been written in rust, but the client was written in Kotlin. Though the client works great, there are a few issues that are hard to solve with Kotlin. The biggest one has to due with security reasons, and the second one is performance. Because I want to release the game on android some day, the game should ideally also run smoothly on bad mobile devices. Luckily most of the code is on the server side, so rewriting the client isn't as big a task as it might sound like.
I knew for a while that I would have to rewrite the game because of these reasons, but I had a hard time choosing what language and framework I should use. One option was c/c++ with sdl, the benefit of this choice was that I could even release the game to consoles. And I also had some experience with making games in c++ with sdl. But I ended up choosing for rust with bevy. The biggest reason is that the server also uses rust and some parts of bevy. It generally is a good idea to have both the server and client written in the same programming language and framework.
Android version
I already got most of the important stuff working this week. You can log in, download the assets, see the world list, join worlds and even walk around in worlds. But most importantly, I added android support for the new client. The android version will be officially released whenever the alpha releases. But if you are interested in being a tester for this new android version, you can fill out this form.
Faster block rendering
Another change this new client is faster rendering. This is due to two reasons.
Future plans
I am planning to release the first build of this android version before the next pre-alpha release. But there are still a few important features missing. The goal is to make it playable in the first build, without the sandbox features. So you are not able to place blocks, break blocks, craft things or edit blocks. But you are able to chat, see other players and walk around in worlds.