Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steam Workshop SDK/Third Party Integration - Final phase #2377

Open
k0T0z opened this issue Feb 6, 2024 · 0 comments
Open

Steam Workshop SDK/Third Party Integration - Final phase #2377

k0T0z opened this issue Feb 6, 2024 · 0 comments
Labels
GSOC Google Summer of Code GSOC-Long

Comments

@k0T0z
Copy link
Contributor

k0T0z commented Feb 6, 2024

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: json_encode() needs recursive algorithm #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.

@JoshDreamland JoshDreamland added GSOC Google Summer of Code GSOC-Long labels Feb 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GSOC Google Summer of Code GSOC-Long
Projects
None yet
Development

No branches or pull requests

2 participants