More actions
StackFault (talk | contribs) |
StackFault (talk | contribs) No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 24: | Line 24: | ||
* Multi-game chess room | * Multi-game chess room | ||
* Allows async games with up to 7 days between moves | * Allows async games with up to 7 days between moves | ||
* Ability to play in multiple games | * Allows limited commands via DM (play while in other rooms) | ||
* Bot will DM you when it's you're turn and you are connected | |||
* Ability to play in multiple games (can only have 1 open game at a time) | |||
* Using the python-chess module for simplicity | * Using the python-chess module for simplicity | ||
* Scores reporting into central scoring | * Scores reporting into central scoring | ||
| Line 95: | Line 97: | ||
* Visibility into <code>MRC Trust</code> status | * Visibility into <code>MRC Trust</code> status | ||
** This allow the developer to decide whether users without MRC Trust can do certain things or not (bank operation, etc) | ** This allow the developer to decide whether users without MRC Trust can do certain things or not (bank operation, etc) | ||
* Control local room echo (if MRC send the message or only the connector, so | * Control local room echo (if MRC send the message to the room or only to the connector, so it can handle it) | ||
** No need to only use direct messages | ** No need to only use direct messages anymore | ||
* Configurable command prefix (must be different than <code>/</code> or <code>!</code>, by default it will be <code>.</code>) | * Configurable command prefix to "swallow" (must be different than <code>/</code> or <code>!</code>, by default it will be <code>.</code>) | ||
* Central scores reporting | * Central scores reporting | ||
** A central <code>!games</code> helper will be present | ** A central <code>!games</code> helper will be present | ||
Latest revision as of 17:34, 11 April 2026
Intro
April 11th 2026
Today will mark the release of a huge milestone in the life of MRC. For the past few years, I have been working on a connector protocol (initially I called it services) to allow custom creators to create content for MRC, like bots, games, apps, etc.
In the past, creators had to go thru protocol documentation, dissect packet structure and have limited access to MRC feature-set, restricting the richness of the content they could create.
A new connector system will be pushed in beta today to greatly enhance the features available to content creators.
Live test content (deployed at beta)
I have created 2 games with this Content Creator Building Pack in order the test the feature-set.
Texas Hold'em
- Live multiplayer Texas Hold'Em poker
- Up to 8 players can seat at the table
- Others can watch the game
- Features a bank and everything you need to play
- Scores reporting into central scoring
- Requires MRC Trust to play, anyone can watch
Chess
- Multi-game chess room
- Allows async games with up to 7 days between moves
- Allows limited commands via DM (play while in other rooms)
- Bot will DM you when it's you're turn and you are connected
- Ability to play in multiple games (can only have 1 open game at a time)
- Using the python-chess module for simplicity
- Scores reporting into central scoring
- Requires MRC Trust to play, anyone can watch
Multiple modes
Mode 1
- Room interaction bot (like any other user)
- This allows a bot to connect via the connectors port
- Interact with users in a defined room
- Send/recv broadcasts, set topic, send/recv direct messages, etc
- Same features as a user, but without the issues.
- Good for bots and simple helpers
Mode 2
- This is the game changer
- Full-room context and control, the room becomes an app
- This mode allows to create individual sessions for each users in a room
- Maintain chat ability between users if desired
- Each user have it's own session with the connector engine
- This is the mode used for the 2 games (Texas Hold'em and Chess) deployed at beta
- Allows the creation of a game on your own server, hosted in an MRC room.
- MUD
- Trading game
- Trivia
- etc
Mode 3 (still under development)
- Outbound connection
- Each users connecting to the room can have an established session using Telnet, RLogin or SSH
- Connects to a pre-defined host/port
- Support login recipes
- Pre-feed user/passwords
- Certain restrictions apply
- Remote service must not have client paging ("More" prompts)
- No screen positioning
- ANSI colors are translated to MCI, everything else is stripped
- UTF-8 is translated to ASCII or stripped
- This mode can only be configured by the administrator
Authentication
- Connectors have to be pre-configured
- Requires TLS 1.2+
- Authenticated using an individual token
- Connectors needs to be tested in dev first, dev token and required information will be provided.
Permissions available
- All of these are set by the admin
- Permissions are provided per connector, these permissions set:
- Connector name
- Connector slug or id if you wish
- Room to connector can interact with
- MRC rights
- Send PM
- Recv PM
- Send Broadcast
- Recv Broadcast
- Set Topic
- Kick user (future)
- Interact with room (default for all connectors)
Other features
- Visibility into
MRC Truststatus- This allow the developer to decide whether users without MRC Trust can do certain things or not (bank operation, etc)
- Control local room echo (if MRC send the message to the room or only to the connector, so it can handle it)
- No need to only use direct messages anymore
- Configurable command prefix to "swallow" (must be different than
/or!, by default it will be.) - Central scores reporting
- A central
!gameshelper will be present - Games connectors can submit scores to central scoreboard
- Scores are then available via the
!gameshelper
- A central
Developers and SDK
I went the extra mile of creating it as simple as possible using an easy to use python module.
No need to dissect protocol, just call the functions with the right decorators and you're good.
Built-in functions for all the commands, final tweaks pending.
In a few days, I will make this package available for testing,
Next steps
In the next few weeks, any bots will have to migrate to this new controller protocol.
After the migration is complete, any new bot connecting without this connector will get disconnected.