https://github.com/2004seraph/monogamewebgui
Currently a work in progress. Experiments with embedding a cross platform web engine in a monogame app to achieve cross platform UI.
https://github.com/2004seraph/monogamewebgui
demo-app experimental gui monogame webrender xna
Last synced: 7 months ago
JSON representation
Currently a work in progress. Experiments with embedding a cross platform web engine in a monogame app to achieve cross platform UI.
- Host: GitHub
- URL: https://github.com/2004seraph/monogamewebgui
- Owner: 2004seraph
- License: mit
- Created: 2023-12-02T23:13:04.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-05T16:23:06.000Z (about 1 year ago)
- Last Synced: 2025-01-26T15:32:28.106Z (9 months ago)
- Topics: demo-app, experimental, gui, monogame, webrender, xna
- Language: C#
- Homepage:
- Size: 2.72 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cross Platform UI in Monogame
An example project using [Puppeteer Sharp](https://github.com/hardkoded/puppeteer-sharp) to achieve cross platform UI in [Monogame](https://github.com/MonoGame/MonoGame). This allows websites to render on top of the game, so you could in theory make your game's UI in HTML/CSS/JS or whichever framework you use (really anything that works on the web). This is what we are currently trying to achieve in Contraband Software's planned Rock Engine.
Currently it can render everything correctly, but many features are still missing (listed below).

Originally I planned to use cefSharp, but the project is pretty much Windows-only, making it useless for cross platform development.
## Missing Features
- it currently is loading a file from a server, we need it to load locally, this is non-trivial due to security policies of chromium
- no events are piped to the web-side of things
- it is not continuously rendering (too slow)
- it currently dynamically downloads chromium based on the platform, we need to bundle a chromium
- It needs to be wrapped in a packaging class for integration with