News for hackers. Stuff that matters.
Re:Unreal Engine 4.26 by mhh__ on Thursday December 03, 2020 @12:14PM (#25291347)
> Is networking support for multiple players something that works out of the box? Or do you have to hand roll this and the server code?

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.

Re:Unreal Engine 4.26 by aerovistae on Thursday December 03, 2020 @12:51PM (#25291963)
I've always wondered this-- in the game dev field, what're the standard options for server frameworks? Are Unity/Unreal the major players there too?

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.

Re:Unreal Engine 4.26 by Impossible on Thursday December 03, 2020 @01:33PM (#25292603)
The Call of Duty, Destiny (and I believe Overwatch and some other Activision games) backend is written by Demonware, which was acquired by Activision years ago. According to their website (https://demonware.net/)

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.

Re:Unreal Engine 4.26 by balaam on Thursday December 03, 2020 @01:21PM (#25292427)
In most cases the server code is home rolled, especially for realtime networked games. Handling multiplayer at scale is hard to solve in house, especially for popular titles and that's usually handled by third parties such as Multiplay (https://multiplay.com/about/)
Re:Unreal Engine 4.26 by pjmlp on Friday December 04, 2020 @03:02AM (#25300103)
Most game servers are a flavour of C++, Java or .NET.