Steam Workshop SDK/Third Party Integration - Final phase

Reporter: k0T0z  |  Status: open  |  Last Modified: March 19, 2024, 01:49:48 am

ENIGMA currently lacks third party integration with various digital distribution platforms such as Steam, Xbox, or Origin. First class support for these services would make it easier for Indie developers to publish ENIGMA created games. Developers would like for it to be easier to monetize their games and enable them to release bigger and better updates to their users. Compatibility with existing GameMaker API would be a secondary priority, as GameMaker only supports Steam officially.

Impact

This part will allow developers to create a multiplayer games that can be saved on cloud using Steam features.

Milestones

This is the second part of #1881, where you will complete the implementation of Steamworks extension to give ENIGMA's users full integration of Steamworks SDK into their games. Main PRs: #2343 and #2350 (check the work done in there).

Note that the contributor will need this previous work for Dhruv Chawla (here) and this PR #2361. The buffer work is merged into AST-Generation, which means most of the work will be in there. Also, you will have to refactor the whole demo game as it's not created for AST-Generation branch but for master.

The contributor should build ENIGMA on Linux first. You can then build the extension after following instructions inside this README.md file. Currently, no other OS is supported as the binder only supports Linux. DON'T forget to work on top of this PR #2363, until it's merged.

The contributor will need to work on RGM to implement the required UI for the extension. Example: the app_id textEdit widget.

  1. The contributor may warm up by implementing the json_encode() in this PR: #2358 or by implementing a new draw function for viewing a nice leaderboard and populate it with the already implemented leaderboard API in GSoC'23, or do both 😅.
  2. Implement the authentication capabilities.
  3. Implement the Lobbies API.
  4. Implement the Cloud API.
  5. Implement the Inventory API.
  6. Implement the Networking API.
  7. After each API is implemented, you will need to write tests and implement the Fake SDK.
  8. There are a bunch of other APIs, but I mark them as stretched goals for now as the above APIs will require a proper testing approach without the need for uploading a game onto Steam store.

Mentors: Robert, Josh
Difficulty: Medium - Hard
Expected size: 350h
Skills required: C++ fundamentals, Web/HTTP API, JSON, testing fundamentals, and Qt.
Skills preferred: Knowledge of batch API requests and Steam Workshop profile is ideal.

Please sign in to post comments, or you can view this issue on GitHub.