We are a next gen real money esports platform for PC, mobile games and more. Our goal is to provide a seamless experience for players interested in diving further into their passion and winning money by playing games, from casual private matches against friends to competitive tournaments.
Aligned with this vision we aim to provide our game partners with a low cost, no-risk channel for game discovery, user acquisition, revenue, data and increased player retention.
From this point forward, this documentation is intended to explain what it means to integrate a game with OkLetsPlay, explain our terminology and walk interested developers through all the steps in detail.
All games integrated with our platform go through a vetting process and here we outline the minimum requirements for a game to be integrated.
Matches should be consistent, reproducible and skill-based
We're dealing with real money and that means all of our matches should be fair to all parties involved; this means that:
- Game settings should be the same for all players, eg. an endless runner game should generate the same level for all players participating in a specific match.
- Usage of random elements is permitted as long as it's done deterministically so that it can be reproduced by using a shared seed for the match. Tip: use the
match-id generated by OkLetsPlay to seed your random number generator.
- No platform should have an advagntage over another, for a game that is multi-platform, eg. a player on PC should not have an advantage over a player on their mobile.
We handle the results as they are and the validation of said results is the responsibility of the game; we expect our parners to do everything in their reach to ensure that no cheating is allowed.
We ask our game partners to provide us with a few image assets so that we can properly showcase them in our platform. We present a list below of the assets we're currently using, to give partners an idea of what we expect but this list can change in the future.
- 120x120 avatar for the game listing in the sidebar.
- 2200x380 banner to be shown in the game specific page.
- 120x60 tile to be used when creating a match.
- 350x110 tile to be shown in the match and tournament tiles.
- Match: A match, as we refer for the rest of the documentation, means an entity representing the "matching" of two or more teams for a game session.
- Team: A team is a grouping of players, with the allowed sizes configured per game. While a game such as CS:GO can have teams from 1 to 5 players, a lane runner would have single player teams only.
- Platform id: Each player has their own OkLetsPlay id and we also provide the means for players to link their account with external platforms such as Steam; this provides a frictionless experience so that if your game relies on Steam ids then we will use that platform id when communicating with your game, but games without their own user system can operate in terms of OkLetsPlay ids.
- Synchronous vs Asynchronous games: We categorize games as synchronous or asynchronous in the context of integration based on how we receive the results for a match; a synchronous game is one that sends the full result of match in a single request, while an asynchronous game is one that sends us partial results with multiple requests. A game can be asynchronous from the players perspective but synchronous from an integration perspective if the game's backend collects all results and sends OkLetsPlay a complete result.
Here in this section we give a brief overview of the main points involved in the process of getting a game integrated into OkLetsPlay.
- Parse the developer configuration: This is a small configuration file containing things such as your client secret, the OkLetsPlay URLs and etc.
- Authentication: We rely on JWTs to secure our communication with games, so a game needs to handle obtaining their token and validating the one it receives from OkLetsPlay(when using the push flow).
- Match discovery: A game needs to be aware of certain events that happen in OkLetsPlay so that it can know about the matches to be played, its configuration and the participating players.
- Result reporting: Once a game has been played, our platform needs to be notified of the results for that match.
Match discovery flows
To accomodate for the particularities of each game's implementation we provide two possible flows for match discovery, it can either be push or poll based, and only one may be used at a time.
- Push: This is the prefered integration flow as it is simpler and more efficient for larger player populations. In this flow, when events happen that concern the game we push that information to the game's backend using its configured webhook URL.
- Poll: In this flow the by using the player's platform id a game can query our backend to discover matches. This is only intended to be used by games that for some reason can't receive incoming requests or lack a reliable way of persisting match information.
Each game may support a different way of referring to users. When OkLetsPlay provides ids to the game, it does so with ids which the game will know. For games on Steam, for example, the platform id will have a type
steam and the id will be the player's persistent Steam id. Some games have bespoke authentication and distribution mechanisms, so their platform id type will be different.
The platform types currently available are:
If you use another platform and would like to discuss allowing users to link their accounts then please reach out directly to us.