https://wccftech.com/intermediate-script-language-unreal-engine-4/
No idea if this interests anyone here, but I figured that I'd mention it, in case anyone wanted to chime in over on the Reddit for this.
https://www.reddit.com/r/unrealengine/comments/aezhdv/it_seems_people_at_epic_are_considering_adding/
____________________________________________________________________________________________________
"TimSweeneyEpic
Epic Staff
122 points ·
3 days ago
We’re discussing this a lot internally. We like the idea. We see the introduction of another programming layer as a decision that’s binding on everything we do for a decade or more so we are cautious about quick patchy decisions.
We like the simplicity of C# but we don't like the impedance mismatch between C#'s containers and managed runtime and C++ data structures. This makes it tough to share data between the C# and C++ world. UnrealScript had a much more direct mapping between the two worlds, yet still the burden of mirroring data was significant.
We love the even greater simplicity of Python but see similar issues there and are wary of dynamic typing. Lua is nice too.
We are generally scared of JavaScript.
There is also the possibility of a custom language, as UnrealScript was, that's carefully crafted to interoperate with the engine and solve game focused problems.
We welcome all of your thoughts."
___________________________________________________________________________________________________
TimSweeneyEpic
Epic Staff
67 points ·
3 days ago
A big question in all of this is: What problems are we trying to solve?
One problem is qualify-of-life issues such as the ease of typing in code, iteration times for code changes, and helpful tooling. Most of the scripting languages do well on this front.
Another problem is building bigger worlds and simulations. This is where things become very interesting, and the possibilities are less explored. Part of this is performance; if we can run gameplay code with higher performance then we can update more objects per frame.
UE4 addresses performance with high-efficiency C++ code, and constraints its complexity by running it all in a single thread.
Frostbite goes a step further by multithreading gameplay code, thus more scalability, but that exposes gameplay programmers to all of the data races and synchronization complexity that comes with shared memory multiprocessing.
Unity is exploring an interesting direction with their ECS (Entity-Component System), which aims to escape the overhead of C# by moving data away from high-level objects linked by pointers to much tighter data layout, as is commonly seen in graphics programming and particle systems, and is less explored in gameplay programming. What's unknown is the productivity cost of recasting gameplay programming problems within the more constrained data model, and whether it would scale to e.g. a triple-A multiplayer game developed by a large team.
Another possible direction for scaling is message-passing concurrency in the Erlang style, running a simulation across nodes in arbitrarily large data centers, in a model where multithreading and distributed computing fall out of the same framework. Much of Improbable's early work was along these lines. The challenge is that messages are too low-level of primitive for high-level interactions; often gameplay outcomes will need to be negotiated atomically, such as whether a player on one machine successfully hit a player on another machine, with the player gaining points and the other losing health. Negotiating all of these atomic interactions between machines require ever more elaborate protocols, which can be hard to debug. Remember all of those MMO object duplication bugs?
Of course, databases have enabled simple query-and-update languages like SQL to scale to high concurrency for decades. Their strategy? Transactions. By guaranteeing all individual queries are ACID (Atomic, Consistent, Isolated, and Durable), the programmer doesn't have to worry about data races. The database sorts that out using its own internal logic. Can we extend transactions to general purpose programming as early Haskell research has suggested? Can they scale to tens of millions of concurrent users at 60Hz?
Finally, there's the question of what the ultimate usage scenario is. Is it a single team building a game, and generally knowing and trusting each other? Or is it something like the metaverse, with a million programmers each building independent components that are expected to interact together under a sandboxed framework where they can't interfere with each other?
Each of these strategies has a pretty sweeping impact on the nature of a scripting language. The directions that would 2x ease-of-use differ from those that would 4x performance in a single-player game or 1000x server scalability in a multiplayer game.
_____________________________________________________________________________________________________
Be sure to join the discussion over at Reddit if interested
https://www.reddit.com/r/unrealengine/comments/aezhdv/it_seems_people_at_epic_are_considering_adding/
"TimSweeneyEpic
Epic Staff
122 points ·
3 days ago
We’re discussing this a lot internally. We like the idea. We see the introduction of another programming layer as a decision that’s binding on everything we do for a decade or more so we are cautious about quick patchy decisions.
We like the simplicity of C# but we don't like the impedance mismatch between C#'s containers and managed runtime and C++ data structures. This makes it tough to share data between the C# and C++ world. UnrealScript had a much more direct mapping between the two worlds, yet still the burden of mirroring data was significant.
We love the even greater simplicity of Python but see similar issues there and are wary of dynamic typing. Lua is nice too.
We are generally scared of JavaScript.
There is also the possibility of a custom language, as UnrealScript was, that's carefully crafted to interoperate with the engine and solve game focused problems.
A big question in all of this is: What problems are we trying to solve?
One problem is qualify-of-life issues such as the ease of typing in code, iteration times for code changes, and helpful tooling. Most of the scripting languages do well on this front.
Another problem is building bigger worlds and simulations. This is where things become very interesting, and the possibilities are less explored. Part of this is performance; if we can run gameplay code with higher performance then we can update more objects per frame.
UE4 addresses performance with high-efficiency C++ code, and constraints its complexity by running it all in a single thread.
Frostbite goes a step further by multithreading gameplay code, thus more scalability, but that exposes gameplay programmers to all of the data races and synchronization complexity that comes with shared memory multiprocessing.
Unity is exploring an interesting direction with their ECS (Entity-Component System), which aims to escape the overhead of C# by moving data away from high-level objects linked by pointers to much tighter data layout, as is commonly seen in graphics programming and particle systems, and is less explored in gameplay programming. What's unknown is the productivity cost of recasting gameplay programming problems within the more constrained data model, and whether it would scale to e.g. a triple-A multiplayer game developed by a large team.
Another possible direction for scaling is message-passing concurrency in the Erlang style, running a simulation across nodes in arbitrarily large data centers, in a model where multithreading and distributed computing fall out of the same framework. Much of Improbable's early work was along these lines. The challenge is that messages are too low-level of primitive for high-level interactions; often gameplay outcomes will need to be negotiated atomically, such as whether a player on one machine successfully hit a player on another machine, with the player gaining points and the other losing health. Negotiating all of these atomic interactions between machines require ever more elaborate protocols, which can be hard to debug. Remember all of those MMO object duplication bugs?
Of course, databases have enabled simple query-and-update languages like SQL to scale to high concurrency for decades. Their strategy? Transactions. By guaranteeing all individual queries are ACID (Atomic, Consistent, Isolated, and Durable), the programmer doesn't have to worry about data races. The database sorts that out using its own internal logic. Can we extend transactions to general purpose programming as early Haskell research has suggested? Can they scale to tens of millions of concurrent users at 60Hz?
Finally, there's the question of what the ultimate usage scenario is. Is it a single team building a game, and generally knowing and trusting each other? Or is it something like the metaverse, with a million programmers each building independent components that are expected to interact together under a sandboxed framework where they can't interfere with each other?
Each of these strategies has a pretty sweeping impact on the nature of a scripting language. The directions that would 2x ease-of-use differ from those that would 4x performance in a single-player game or 1000x server scalability in a multiplayer game.
Digital humans: 3Lateral cracks the code for real-time facial performance
https://www.unrealengine.com/en-US/blog/digital-humans-3lateral-cracks-the-code-for-real-time-facial-performance
"There’s a good chance you’ve already seen 3Lateral’s work in action. The company was behind the facial capture and animation for AAA games like Marvel's Spider-Man, Activision’s Call of Duty, and Rockstar Games’ Grand Theft Auto and Red Dead Redemption. With Epic Games, 3Lateral has worked on real-time digital humans in projects such as Siren, Hellblade, and Osiris Black with Andy Serkis."
https://www.youtube.com/watch?v=3kxZPyUPtIc
https://www.youtube.com/watch?v=9owTAISsvwk
"There’s a good chance you’ve already seen 3Lateral’s work in action. The company was behind the facial capture and animation for AAA games like Marvel's Spider-Man, Activision’s Call of Duty, and Rockstar Games’ Grand Theft Auto and Red Dead Redemption. With Epic Games, 3Lateral has worked on real-time digital humans in projects such as Siren, Hellblade, and Osiris Black with Andy Serkis."
Ncam helps deliver seamless integration of live action and real-time 3D graphics in UE4
https://www.unrealengine.com/en-US/blog/ncam-helps-deliver-seamless-integration-of-live-action-and-real-time-3d-graphics-in-ue4
Integrating CG elements with Real Depth
"The other huge benefit of Ncam is depth understanding. When elements are combined in UE4, the engine knows where the live action is relative to the UE4 camera, thanks to Ncam’s “Real Depth”. This allows someone to be filmed walking in front or behind UE4 graphical elements or virtual sets. Without the depth information, any video can only sit like a flat card in UE4. With Ncam, as the actor walks forward on set, they walk forward in UE4, passing objects all at the correct distance. This adds enormous production value and integrates the live action and real-time graphics in a dramatically more believable way. This one feature completely changes Ncam’s use in motion graphics, explanatory news sequences, and narrative sequences.
blog_body_img5.jpg“Game engine integration has always been very important to us,” says Hatch. “At a tradeshow in 2016 we showed I think the first prototype of this kind of live action integrated with the Unreal Engine, so we have a pretty close relationship,” The company has doubled staff in the last year and the biggest proportion of Ncam’s staff are involved in R&D. A key part of their development effort is building APIs and links into software, such as UE4, for the most efficient virtual production pipeline. “The complexity of what we are doing requires a large amount of R&D,” he adds."
https://www.youtube.com/watch?v=ETTrc2DyKdU
"The other huge benefit of Ncam is depth understanding. When elements are combined in UE4, the engine knows where the live action is relative to the UE4 camera, thanks to Ncam’s “Real Depth”. This allows someone to be filmed walking in front or behind UE4 graphical elements or virtual sets. Without the depth information, any video can only sit like a flat card in UE4. With Ncam, as the actor walks forward on set, they walk forward in UE4, passing objects all at the correct distance. This adds enormous production value and integrates the live action and real-time graphics in a dramatically more believable way. This one feature completely changes Ncam’s use in motion graphics, explanatory news sequences, and narrative sequences.
blog_body_img5.jpg“Game engine integration has always been very important to us,” says Hatch. “At a tradeshow in 2016 we showed I think the first prototype of this kind of live action integrated with the Unreal Engine, so we have a pretty close relationship,” The company has doubled staff in the last year and the biggest proportion of Ncam’s staff are involved in R&D. A key part of their development effort is building APIs and links into software, such as UE4, for the most efficient virtual production pipeline. “The complexity of what we are doing requires a large amount of R&D,” he adds."
Regardless if Epic has their own digital game distribution store, they sure do offer a lot of support for Steam features in their engine.
https://www.unrealengine.com/en-US/blog/steam-support-in-unreal-engine-4
• Online sessions and invites.
• Matchmaking via peer-to-peer lobbies or dedicated servers
• Firewall/NAT negotiation for peer-to-peer multiplayer via Steam Networking
• Player authentication - new in 4.20
• Rich presence - new in 4.19
• Voice chat
• Friends lists
• Stats and leaderboards
• Achievements
In addition, UE4 supports additional Steam features outside of the online subsystem:
• Steam Audio
• Steam VR
• Steam Controllers
• Online sessions and invites.
• Matchmaking via peer-to-peer lobbies or dedicated servers
• Firewall/NAT negotiation for peer-to-peer multiplayer via Steam Networking
• Player authentication - new in 4.20
• Rich presence - new in 4.19
• Voice chat
• Friends lists
• Stats and leaderboards
• Achievements
In addition, UE4 supports additional Steam features outside of the online subsystem:
https://www.youtube.com/watch?v=c_N7A_1lnvs
The footage at 4:22 is not part of Embark Studios [url=https://medium.com/embarkstudios/an-update-from-embark-5f7a58ff1551]game[/url] that is currently in development, but a test of Unreal 4 potential using real world scan data and procedural based objects.
"Our goal with this terrain test was to see how far we could push visual fidelity on a large scale (256 square kilometers), with a completely dynamic weather & lighting system, and without having to be a huge team. Everything in this clip was created by three people over three weeks, using real-world scanned data, procedurally placed objects, and some great tools."
The same footage, but in a standalone video with developer commentary
https://vimeo.com/318171409
The footage at 4:22 is not part of Embark Studios game that is currently in development, but a test of Unreal 4 potential using real world scan data and procedural based objects.
"Our goal with this terrain test was to see how far we could push visual fidelity on a large scale (256 square kilometers), with a completely dynamic weather & lighting system, and without having to be a huge team. Everything in this clip was created by three people over three weeks, using real-world scanned data, procedurally placed objects, and some great tools."
The same footage, but in a standalone video with developer commentary
The Farm 51 on using photogrammetry in their upcoming game, Chernobylite.
Also by The Farm 51... Get Even and World War 3
https://www.youtube.com/watch?v=558Z37p7Bi4
In Polish or Russian? but the images tell the story
https://www.youtube.com/watch?v=GrGK6KL2c1w
Game Trailer
https://www.youtube.com/watch?v=A0AxALRWDkE
https://store.steampowered.com/app/1016800/Chernobylite/ (Autumn 2019)
New in-house Physics Engine in Unreal 4
https://www.youtube.com/watch?v=fnuWG2I2QCY
Ray Tracing implementation
https://www.youtube.com/watch?v=EekCn4wed1E
Two videos showcasing cutscene/movie technology
https://www.youtube.com/watch?v=9fC20NWhx4s
https://www.youtube.com/watch?v=Qjt_MqEOcGM
No idea if this interests anyone here, but I figured that I'd mention it, in case anyone wanted to chime in over on the Reddit for this.
https://www.reddit.com/r/unrealengine/comments/aezhdv/it_seems_people_at_epic_are_considering_adding/
____________________________________________________________________________________________________
"TimSweeneyEpic
Epic Staff
122 points ·
3 days ago
We’re discussing this a lot internally. We like the idea. We see the introduction of another programming layer as a decision that’s binding on everything we do for a decade or more so we are cautious about quick patchy decisions.
We like the simplicity of C# but we don't like the impedance mismatch between C#'s containers and managed runtime and C++ data structures. This makes it tough to share data between the C# and C++ world. UnrealScript had a much more direct mapping between the two worlds, yet still the burden of mirroring data was significant.
We love the even greater simplicity of Python but see similar issues there and are wary of dynamic typing. Lua is nice too.
We are generally scared of JavaScript.
There is also the possibility of a custom language, as UnrealScript was, that's carefully crafted to interoperate with the engine and solve game focused problems.
We welcome all of your thoughts."
___________________________________________________________________________________________________
TimSweeneyEpic
Epic Staff
67 points ·
3 days ago
A big question in all of this is: What problems are we trying to solve?
One problem is qualify-of-life issues such as the ease of typing in code, iteration times for code changes, and helpful tooling. Most of the scripting languages do well on this front.
Another problem is building bigger worlds and simulations. This is where things become very interesting, and the possibilities are less explored. Part of this is performance; if we can run gameplay code with higher performance then we can update more objects per frame.
UE4 addresses performance with high-efficiency C++ code, and constraints its complexity by running it all in a single thread.
Frostbite goes a step further by multithreading gameplay code, thus more scalability, but that exposes gameplay programmers to all of the data races and synchronization complexity that comes with shared memory multiprocessing.
Unity is exploring an interesting direction with their ECS (Entity-Component System), which aims to escape the overhead of C# by moving data away from high-level objects linked by pointers to much tighter data layout, as is commonly seen in graphics programming and particle systems, and is less explored in gameplay programming. What's unknown is the productivity cost of recasting gameplay programming problems within the more constrained data model, and whether it would scale to e.g. a triple-A multiplayer game developed by a large team.
Another possible direction for scaling is message-passing concurrency in the Erlang style, running a simulation across nodes in arbitrarily large data centers, in a model where multithreading and distributed computing fall out of the same framework. Much of Improbable's early work was along these lines. The challenge is that messages are too low-level of primitive for high-level interactions; often gameplay outcomes will need to be negotiated atomically, such as whether a player on one machine successfully hit a player on another machine, with the player gaining points and the other losing health. Negotiating all of these atomic interactions between machines require ever more elaborate protocols, which can be hard to debug. Remember all of those MMO object duplication bugs?
Of course, databases have enabled simple query-and-update languages like SQL to scale to high concurrency for decades. Their strategy? Transactions. By guaranteeing all individual queries are ACID (Atomic, Consistent, Isolated, and Durable), the programmer doesn't have to worry about data races. The database sorts that out using its own internal logic. Can we extend transactions to general purpose programming as early Haskell research has suggested? Can they scale to tens of millions of concurrent users at 60Hz?
Finally, there's the question of what the ultimate usage scenario is. Is it a single team building a game, and generally knowing and trusting each other? Or is it something like the metaverse, with a million programmers each building independent components that are expected to interact together under a sandboxed framework where they can't interfere with each other?
Each of these strategies has a pretty sweeping impact on the nature of a scripting language. The directions that would 2x ease-of-use differ from those that would 4x performance in a single-player game or 1000x server scalability in a multiplayer game.
_____________________________________________________________________________________________________
Be sure to join the discussion over at Reddit if interested
https://www.reddit.com/r/unrealengine/comments/aezhdv/it_seems_people_at_epic_are_considering_adding/
https://www.unrealengine.com/en-US/blog/digital-humans-3lateral-cracks-the-code-for-real-time-facial-performance
"There’s a good chance you’ve already seen 3Lateral’s work in action. The company was behind the facial capture and animation for AAA games like Marvel's Spider-Man, Activision’s Call of Duty, and Rockstar Games’ Grand Theft Auto and Red Dead Redemption. With Epic Games, 3Lateral has worked on real-time digital humans in projects such as Siren, Hellblade, and Osiris Black with Andy Serkis."
https://www.unrealengine.com/en-US/blog/ncam-helps-deliver-seamless-integration-of-live-action-and-real-time-3d-graphics-in-ue4
Integrating CG elements with Real Depth
"The other huge benefit of Ncam is depth understanding. When elements are combined in UE4, the engine knows where the live action is relative to the UE4 camera, thanks to Ncam’s “Real Depth”. This allows someone to be filmed walking in front or behind UE4 graphical elements or virtual sets. Without the depth information, any video can only sit like a flat card in UE4. With Ncam, as the actor walks forward on set, they walk forward in UE4, passing objects all at the correct distance. This adds enormous production value and integrates the live action and real-time graphics in a dramatically more believable way. This one feature completely changes Ncam’s use in motion graphics, explanatory news sequences, and narrative sequences.
blog_body_img5.jpg“Game engine integration has always been very important to us,” says Hatch. “At a tradeshow in 2016 we showed I think the first prototype of this kind of live action integrated with the Unreal Engine, so we have a pretty close relationship,” The company has doubled staff in the last year and the biggest proportion of Ncam’s staff are involved in R&D. A key part of their development effort is building APIs and links into software, such as UE4, for the most efficient virtual production pipeline. “The complexity of what we are doing requires a large amount of R&D,” he adds."
https://www.unrealengine.com/en-US/blog/steam-support-in-unreal-engine-4
• Online sessions and invites.
• Matchmaking via peer-to-peer lobbies or dedicated servers
• Firewall/NAT negotiation for peer-to-peer multiplayer via Steam Networking
• Player authentication - new in 4.20
• Rich presence - new in 4.19
• Voice chat
• Friends lists
• Stats and leaderboards
• Achievements
In addition, UE4 supports additional Steam features outside of the online subsystem:
• Steam Audio
• Steam VR
• Steam Controllers
The footage at 4:22 is not part of Embark Studios game that is currently in development, but a test of Unreal 4 potential using real world scan data and procedural based objects.
"Our goal with this terrain test was to see how far we could push visual fidelity on a large scale (256 square kilometers), with a completely dynamic weather & lighting system, and without having to be a huge team. Everything in this clip was created by three people over three weeks, using real-world scanned data, procedurally placed objects, and some great tools."
The same footage, but in a standalone video with developer commentary
https://vimeo.com/318171409
Also by The Farm 51... Get Even and World War 3
In Polish or Russian? but the images tell the story
Game Trailer
https://store.steampowered.com/app/1016800/Chernobylite/ (Autumn 2019)
Ray Tracing implementation
Two videos showcasing cutscene/movie technology