Oct 13, 2023, 7:28:10 PM10/13/23
I would like to start a discussion about a pattern that I have used and seen several times in the video game industry, and that I wish to be able to use in web development: embedding the window of a process as a visual component of another process's window. This is used to embed the game runtime window as a viewport inside the game editor window.
On Windows, the Desktop Window Manager lets you nest any window of any process as a child window of any other process's window, as long as you know the handle to those windows. In practice, I have used this pattern in two game engines where the editors were written in WPF with a viewport running the actual runtime executable embedded as a child window. Both processes were communicating using RPC.
Sometimes I consider the benefits of using web technologies to write game editor GUIs. The game editor could be an Electron application. And ideally, I would like to distribute the editor as a regular website. But today, this direction is stuck because I have not found any way to embed the game runtime window as a visual component of a web page.
I hope that one day there will be an API that makes it possible to embed an external process's window inside a web page. I wrote this post to inform the Chrome community about this use case.