Bragi is an application which enables the usage of ODIN via a local websocket interface. Bragi opens a websocket server which can be used by your application.
If possible, try to avoid using Bragi if your application is capable of integrating ODIN on it's own. If your application lacks the privileges and requirements to integrate ODIN, e.g. by being sandboxed, Bragi can help you offering ODIN to your players / clients. This comes with the downside that all clients need to have Bragi running in the background while using your application.
Bragi itself doesn't do anything on his own. Everytime the application is started, a complete setup has to be performed, setting the Instruments (Audio Devices) etc.
An example how to use Bragi in a project will follow.
ODIN is a cross-platform software development kit (SDK) that enables developers to integrate real-time chat technology into multiplayer games, apps and websites. It is maintained and developed by 4Players. This project is based using the Unity SDK of ODIN.
If you want to help / improve Bragi, please read the First Steps. If you encounter an error, feel free to open an issue.
You can use any websocket client, e.g. Browser extensions, to connect to Bragi.
Please read documentation.
It seemed fun to use norse mythology for this project, but don't worry, only the GUI side is affected by this. Here is an explanation if necessary:
- Bragi (Application): God of poetry (and music) - is a son of Odin. He greets heroes in Valhalla upon arrival.
- Valhalla (Websocket Server)
- Hero (Client): The hero enters valhalla (establishes connection)
For additional points: Iðunn
is the wife of Bragi, also a fitting name for the websocket client side in your application
Name | Progress | Description |
---|---|---|
Submoduling |
(Halted) Make the odin-wrapper-csharp a submodule from here or if there is a common C# SDK. |
Name | Progress | Description |
---|---|---|
Event Broadcast |
Broadcast all ODIN Events to the websocket | |
Room Methods |
Wrap room methods in commands | |
Peer Methods |
Wrap peer methods in commands |
Since this is my first real C# project, feel free to contribute via pull requests, especially in regards to build or assembly things.
When doing a commit or pull request a similiar convention like in Karma is used:
<type>: <scope>: <message>
<Description>
Type could be tech
, fix
, feat
, chore
.
Scope could be Bragi
, ODIN
, Util
...
Example Commit Message:
tech: ODIN: Update wrapper version to 1.2.1
Updated the used version in the odin-wrapper-csharp to the newest version. No changes required
We are using code from the following open source projects (in no particular order):
- ODIN Unity SDK
- NAudio - Capturing audio input and playing audio to set devices
- Newtonsoft.Json - Parsing commands received by the websocket client
- Websocket-Sharp - Communication between applications