Frameworks Overview
Overwolf currently offers two similar, yet vastly different frameworks (Overwolf Platform & Overwolf Electron/ow-electron). Both frameworks currently offer:
- A web-development approach to desktop Apps
- Access to the Overwolf Ads stack, with full GDPR compliance
- Anonymous App analytics (can be disabled in ow-electron)
- Built-in In-game overlay capabilities
- Live game events on Windows OS (ow-electron currently supports only select games, and the roadmap for future supported games is flexible)
- A complete deployment & distribution framework, complete with a customizable installer
That being said, there are also many differences between the two:
Overwolf Platform
The Overwolf Platform is a direct wrapper around the Chromium Embedded Framework project, which itself is a wrapper around the Chromium project. Overwolf Apps are then "extensions" run by this platform, with a basic sandboxing around them, and APIs exposed by this platform.
Every app then declares an App manifest.json file, defining general App properties, as well as the windows* that run its actual code. One of these windows must also serve as the app's "root" process, and closing it will close the app itself.
* Do note that these windows can also be transparent, and even just run in the background.
The Overwolf Platform specifically supports:
- Game events for ~40 games
- Built-in video recording capabilities
- Platform-level wrappers around several Windows APIs (File access, Toast notifications, Tray icon, and many more) for significantly easier implementation
- No need for an App-specific code certificate
- Hotkey conflict resolution between Apps
- Native c# plugin support
However, it does also mean that:
- Your App will always require the Overwolf Platform to run
- The Overwolf Platform only supports the Windows OS
- The relevant code ecosystem only includes other Overwolf Apps
- Most new platform-level features/bug-fixes are rolled out over time as Platform versions, so even hotfixes can sometimes take a few days to be approved for roll out to all users
Overwolf Electron (ow-electron)
In comparison, Overwolf Electron is a direct fork of the Electron.js project, which itself is another wrapper around the Chromium project. While similar to CEF, Electron's biggest difference is that it is entirely built using the Node.js framework. Overwolf Electron Apps are full, standalone applications, running on their own, with Overwolf APIs baked in.
As these Apps are fully fledged standalone Electron Apps, they do require more work to get started. However, in turn, they also allow you far greater control over all of your App's functions, with the Overwolf APIs simply added on top.
As such, Overwolf Electron comes with its own set of advantages:
- Full support for native node.js modules
- Support for Windows OS, Mac OS, and several Linux flavors
- The ability to run in parallel to base Electron in the same codebase (while simply disabling ow-electron related features for “vanilla” builds), giving you even greater control of your project
- A large code ecosystem and knowledgebase, including all other Electron Apps out in the market (Discord, VsCode, GitHub Desktop, just to name a few)
- The App is installed as is, and runs on its own
- Most general features/bug-fixes are released as package versions when ready, with updating/rollout schedules left entirely up to the App’s discretion
However, this does also mean that:
- Currently, only select game events are supported, with more event support to come over time
- Recording capabilities are not yet built-in, but development for it is planned
- The framework is still in relatively early development stages. While the underlying Electron framework is well-established, the Overwolf features are still undergoing active development, and are subject to small changes.
- App-specific code certificates are not provided, and are (highly recommended)[https://codesigningstore.com/what-certificate-is-used-to-sign-apps] for proper App distribution
- Getting started with Electron has a steeper learning curve, involving topics such as process separation and isolation, as well as a more intridcate project setup and building
- However, we are here to assist you with any questions or issues you may encounter during this process.