> Rust is too constrained without [unsafe blocks] to get any useful work done.

Just saw this in the wild again.

@veloren has about 330,000 lines of Rust code today. It's a networked, multi-threaded, 3D, portable game and game engine played by thousands of people. Very much not a contrived example. Name any sort of code and you'll find it in there: GUI, packet parsing, physics, DSP, decision trees, database calls, ECS, procgen, audio. It's all in there.

It has 12 instances of `unsafe`:

(1/2)

@jsbarretto @veloren

Your open-source projects are truly impressive — Veloren in particular is amazing.
If you were to release a commercial game at a game studio, I’m curious whether you would still choose Rust for both the client and the server.
Imagine a WoW-like MMORPG, where player-versus-player content is the main focus, including large-scale RvR battles such as castle sieges.

Also, I’d love to study the Veloren codebase. Where would you recommend starting?

@lastcoder Thanks, although as time goes on increasingly little of Veloren was written by me!

I would choose Rust, but that's primarily due to personal familiarity and skillset: I'm more at home screwing around with low-level graphics APIs and writing physics engines than I would be with a modern engine. I don't think most prospective gamedevs fall into this category though, although @bevy is making the domain much more approachable!

@lastcoder If you *enjoy* using Rust, then I recommend at least trying: the language has a lot of features that make it really well-suited to gamedev, especially gamedev-at-scale (MMOs) or unique requirements (retro console dev, unusual rendering architecture, or anything else that goes against the grain of a traditional engine). But if it's a language you find yourself struggling with, you might be better off looking at something like Godot instead.

@lastcoder For Veloren, there are a few places:

The 'project architecture' section in the book: https://book.veloren.net/contributors/developers/codebase-structure.html

The docs: https://docs.veloren.net/

Existing MRs (especially merged ones in a similar area to the thing you're interested in): https://gitlab.com/veloren/veloren/-/merge_requests

OIder versions of the game. Most of the really key concepts have been around for a while, but appear in a form that's much easier to understand as a coherent whole. Here's v0.2 (2019): https://gitlab.com/veloren/veloren/-/tree/v0.2.0

Project Architecture - Veloren: An Owner's Manual