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

GSoC Final Evaluation: Steam Workshop SDK/Third Party Integration #2350

Merged
merged 215 commits into from Oct 11, 2023

Conversation

k0T0z
Copy link
Contributor

@k0T0z k0T0z commented Aug 3, 2023

Closes #1881. This is the second part of my first PR #2343.

This PR is part of the Google Summer of Code 2023 program.

I will be updating my Logs inside my domain.

Note: ✔️ means that SOG/unit tests for the corresponding function are provided.


Leaderboards API

  • ✅ steam_create_leaderboard();
  • ✅ steam_upload_score();
  • ✅ steam_upload_score_ext();
  • ⬜ steam_upload_score_buffer();
  • ⬜ steam_upload_score_buffer_ext();
  • ✅ steam_download_scores();
  • ✅ steam_download_scores_around_user();
  • ✅ steam_download_friends_scores();
  • LeaderboardEntry data type
  • LeaderboardDisplayType constant
  • LeaderboardSortOrder constant

Social API

  • ✅ steam_set_rich_presence();
  • ✅ steam_set_clear_presence();
  • ✅ steam_user_set_played_with();
  • ⬜ steam_get_friends_game_info();
  • ✅ steam_get_user_avatar();
  • ✅ steam_image_get_size();
  • ✅ steam_image_get_rgba();
  • ✅ steam_image_get_bgra();
  • ✅ steam_image_get_argb();
  • ✅ steam_image_create_sprite();

Cloud API

  • ⬜ steam_is_cloud_enabled_for_app();
  • ⬜ steam_is_cloud_enabled_for_account();
  • ⬜ steam_get_quota_total();
  • ⬜ steam_get_quota_free();
  • ⬜ steam_file_exists();
  • ⬜ steam_file_size();
  • ⬜ steam_file_persisted();
  • ⬜ steam_file_write();
  • ⬜ steam_file_write_file();
  • ⬜ steam_file_read();
  • ⬜ steam_file_share();
  • ⬜ steam_file_delete();

Must Be Done Before Merging:

✅ Adding support for other platforms in the Makefile file.
✅ Switching the Default property in the Steamworks & Json extensions YAML file to false.
✅ Switching the cxxflags property in Compilers/Linux/gcc.ey to -fdiagnostics-color=always.
⬜ Reviewing all error messages and documentation in newly added files.
✅ Adding the license to all newly added files.
✅ Providing installation instructions for all platforms.
✅ Modifying the extension to call steam_init(); automatically when enabled.
✅ Match all naming conventions with GMS's Steamworks extension.
⬜ Testing the APIs with the latest version of Steamworks SDK, Steam, OS version, etc.
⬜ Must test all EDL scripts in the example game provided.
⬜ Providing SOG/unit tests for all functions written (this need to be studied carefully as in order to test the C++ wrapper tester must have steam installed and running or I may use mocks).
✅ Clearing garbage files.
DEBUG_MESSAGE() must exist only in APIs files. Try to remove it from wrapper files. Try to make the wrapper independent on ENIGMA.
✅ Fix example game background design.
⬜ Update the example game to match the latest version of GMS Steamworks extension.

✅ The compiler must write a file next to the exe.
⬜ Review includes.

✅ Commit the example game again and remove it from .gitignore file.
⬜ The extension and the example must be compatible with GameMaker.
⬜ Set the title for Steamworks demo to Created with ENIGMA.
⬜ Monitor GMS's terminal behavior.


Dependencies:


Good to have:

⬜ Test the changes with RGM.
⬜ Solve all build warnings.

k0T0z and others added 30 commits April 2, 2023 14:34
…ted more user functions, and achieved some wrapper progress (not working)
…nux, windows will be portponed, fixed the example game
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
…nd fixed location switching depending on library existance for the CI

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
@k0T0z k0T0z marked this pull request as ready for review September 29, 2023 13:02
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Copy link
Contributor

@RobertBColton RobertBColton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The set of features introduced in this pull request will greatly help our end users. The changes here will also benefit the longterm health of the project and allow us to accomplish our bigger goals with respect to serialization and runtime.

A job well done @k0T0z!

@RobertBColton RobertBColton merged commit 3918af3 into enigma-dev:master Oct 11, 2023
2 of 10 checks passed
@k0T0z
Copy link
Contributor Author

k0T0z commented Oct 11, 2023

@RobertBColton Thank you so much

@k0T0z k0T0z deleted the steam-sdk-integration-final branch October 12, 2023 08:21
JoshDreamland pushed a commit that referenced this pull request Mar 19, 2024
The next PR after #2350 and #2343.

This PR contains the following changes:

 1. Update SDK from v1.57 to v1.58a.
2. Improved the Shell Makefile (the part related to the Steamworks
extension).
- Moved building the fake API process inside a separate Makefile
specific to the fake API.
 3. Cleaned some comments including flushing the Steamworks Makefile.
 4. Fixed the README.md file.
 5. Improved documentation.
 6. Created a separate Makefile for the fake Steamworks API.
 7. Added v1.58a official headers.
 8. Fixed .gitignore file.

---------

Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Steam Workshop SDK/Third Party Integration
2 participants