Like in web dev of course we have a million frameworks like Springboot, Rails, Django, Flask, Express, etc, but those aren't used for games like Call of Duty and Destiny and Fortnite etc-- they use something else and we never hear about that stuff at all in the "mainstream" software discussions.
Really interested in what's used there.
We have a commitment to open source. Our core technologies are Python, Erlang, C++, and MySQL.
Epic Games has Epic Games services, which is a set of backend services that includes matchmaking, achievements, peer to peer networking, lobbies, etc. Apparently Fortnite runs on Epic Games services. Consoles and Steam have similar backends.
All of these backend services use variations on standard web stacks that, from what I can tell, don't look radically different than the variance you'd see among startups or big tech. Here is a postmortem of a Fortnite outage that talks about some of their tech stack, for example https://www.epicgames.com/fortnite/en-US/news/postmortem-of-.... They use MongoDB, Java, JAXRS, Redis, AWS, etc. All tech familiar to "mainstream" (web) software engineers.
One thing that is different is game clients (which are obviously real-time 3D engines), and specifically game servers, which are either peers or headless server versions of the game. These run game sessions once matchmaking is resolved and connect to a fixed (usually 4-128) number of players in that given session. Sometimes the backend and game server code is more tightly intertwined, for example in an MMORPG or a Destiny style "shared world" game where matchmaking happens on the fly based on the player's location in the world. There are a variety of services that will help manage hosting game servers (Multiplay, Playfab, etc.) but most of them end up running on "standard" Cloud compute providers (Azure, AWS, GCP). Ultimately the only non "mainstream" thing about running large multiplayer games is the game engine piece.
Yes, it's not too simple, but replication is at very least tried and tested.
> Are there tools for integrating sensors like VR tracking and Kinect? What about adding real time point cloud data into the scene?
Yes, not sure about real time, but Unreal basically has support for everything somewhere.
> How do you tweak shaders? Is there a good guide to shader development that is Unreal Engine aware?
Yes. It uses a custom unreal syntax underneath, so it's not trivial but it can be done. The engine also doesn't really like you managing the shaders yourself, e.g. If you want to dynamically change/replace shaders the RHI does expose the functionality but it's buried under so many layers of abstraction it's quite painful.
> How do you delve into raw C++? Is Rust supported?
It is raw C++. I wouldn't bother trying to integrate Rust because it doesn't really like you doing your own memory management in the first place.
As a final comment, if you want to find out how something works, just read the source they give you. The documentation is genuinely shit, and most people online (including some Epic people who don't touch the core engine) don't seem to be particularly clued in. Some flows are quite well documented, e.g. Animation, but other parts of the engine basically aren't documented at all.
Also, don't implement anything complicated in blueprints. They're written once, read never.