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 Midterm Evaluation: Steam Workshop SDK/Third Party Integration #2343
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
k0T0z
changed the title
GSoC: Steam Workshop SDK/Third Party Integration
GSoC Midterm Evaluation: Steam Workshop SDK/Third Party Integration
Jun 4, 2023
…ted more user functions, and achieved some wrapper progress (not working)
…ma-dev into steam-sdk-integration
…nux, windows will be portponed, fixed the example game
…ore user functions
k0T0z
commented
Jul 18, 2023
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
k0T0z
commented
Jul 19, 2023
ENIGMAsystem/SHELL/Universal_System/Extensions/Steamworks/game_client/c_leaderboards.cpp
Outdated
Show resolved
Hide resolved
k0T0z
commented
Jul 19, 2023
k0T0z
commented
Jul 19, 2023
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>
…umntation is done Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
@RobertBColton please remove |
Ok, I have done so. |
RobertBColton
added a commit
that referenced
this pull request
Oct 11, 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](https://k0t0z.github.io). #### Note: ✔️ means that SOG/unit tests for the corresponding function are provided. --------------------------------------------------------------------------------------------------- ✅ [Leaderboards API](https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Leaderboards) - ✅ 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](https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Social) - ✅ 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](https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Cloud) - ⬜ 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](https://marketplace.yoyogames.com/assets/10709/steamworks-ext). :white_check_mark: The compiler must write a file next to the exe. :white_large_square: Review includes. :white_check_mark: Commit the example game again and remove it from ``.gitignore`` file. :white_large_square: The extension and the example must be compatible with GameMaker. :white_large_square: Set the title for Steamworks demo to ``Created with ENIGMA``. :white_large_square: Monitor GMS's terminal behavior. --------------------------------------------------------------------------------------------------- ## Dependencies: - [Social API](https://github.com/YoYoGames/GMEXT-Steamworks/wiki/Social) depends on this #2309 (#2361). --------------------------------------------------------------------------------------------------- ## Good to have: :white_large_square: Test the changes with [RGM](https://github.com/enigma-dev/RadialGM). :white_large_square: Solve all build warnings. --------- Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com> Co-authored-by: saifkandil <saifsaalaheldeen2002@gmail.com> Co-authored-by: = <=> Co-authored-by: --replace-all <--replace-all> Co-authored-by: Robert Colton <robertbcolton@gmail.com>
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #1881. 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.
Steps To Run The Code In This PR (Ubuntu Linux 64-bit Only) (
Working perfectly
):.bashrc
and add these two important exports:Steps To Run The Code In This PR (Windows 64-bit Only) (
Working perfectly
):steam_api64.dll
fromenigma-dev\ENIGMAsystem\SHELL\Universal_System\Extensions\Steamworks\gameclient\steambinder\Steamv157\sdk\redistributable_bin\win64
(this is for 64-bit Windows so choose the one for your version) and then paste it intomsys64\tmp
directory. This must be done as LGM exports the executable in that location and we need that DLL to be with the executable.Steps To Run The Example (Ubuntu Linux 64-bit Only) (
Working perfectly
):.bashrc
and add the two important exports mentioned above in the Linux section.Steps To Run The Example (Windows 64-bit Only) (
Currently crashes
):steam-sdk-integration
branch so you need only Steam to be running. Don't forget to log in with your Steam account.Important Changes To My Plan:
Done Before Coding Period:
User Functions Progress (EDL Scripts Implemented):
✅ Management API
✅ General API
✅ Overlay API
OverlayType
constantOverlayNotificationPosition
constant✅ Stats & Achievements API
⬜ Leaderboards API
LeaderboardEntry
data typeLeaderboardDisplayType
constantLeaderboardSortOrder
constantMust Be Done Before Merging:
✅ Adding support for other platforms in the Makefile file.
✅ Switching the
Default
property in the Steamworks & Json extensions YAML file tofalse
.✅ Switching the
cxxflags
property inCompilers/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 needs 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.Differences With GMS:
steam_activate_overlay_user();
functionsteam_activate_overlay_user(string dialog_name, int64 steamid);
bool
void
lb_max_entries
Troubleshooting:
steam_appid.txt
file fails, just run the following commands for Linux:For Windows:
Create a file
steam_appid.txt
and place it insidemsys64\tmp
directory. Don't forget to write480
in that text file. IMPORTANT: This text file must be namedsteam_appid.txt
and has480
- which is the default App ID - inside it. Note: This file also must be placed with the executable.