{"id":20279702,"url":"https://github.com/figurestudios/skygamesdk","last_synced_at":"2025-03-04T02:41:05.254Z","repository":{"id":51519673,"uuid":"356346797","full_name":"figurestudios/SkyGameSDK","owner":"figurestudios","description":"SkyPeers was developed for the ENCODE and the Built to Explore hackathon.","archived":false,"fork":false,"pushed_at":"2021-05-18T16:25:20.000Z","size":8525,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-14T07:12:24.764Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/figurestudios.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-09T17:14:24.000Z","updated_at":"2023-04-13T08:47:55.000Z","dependencies_parsed_at":"2022-08-02T23:15:36.878Z","dependency_job_id":null,"html_url":"https://github.com/figurestudios/SkyGameSDK","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figurestudios%2FSkyGameSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figurestudios%2FSkyGameSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figurestudios%2FSkyGameSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/figurestudios%2FSkyGameSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/figurestudios","download_url":"https://codeload.github.com/figurestudios/SkyGameSDK/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241773256,"owners_count":20018064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T13:32:18.840Z","updated_at":"2025-03-04T02:41:05.237Z","avatar_url":"https://github.com/figurestudios.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SkyGameSDK\n\u003e developed for the ENCODE and the Built to Explore hackathons.\n\n\u003e With SkyGameSDK, you can easily add tons of features to Unity WebGL games; multiplayer, screenshots, leaderboards, achievements, etc,,,\n\n# Inner workings\nThe cross-communication between the browser and Unity works through the PluginJS.jslib file in Unity's Assets/Plugins/WebGL file and the SendMessage() function in the game instance.\n\nDACs will currently only be implemented to send entries to the leaderboard. Will use it for a lobby system/screenshot feed/etc in the future once those added features come.\n\nGetting/setting MySky data can be used for something suchas stats, names or any other mutable data that should persist through multiple games.\n\n# Planned features [similar to the roadmap](https://github.com/figurestudios/SkyGameSDK/wiki/Roadmap)\nScreenshots will be implemented by using the passthrough using the Plugin.jslib, which will get the data for the screenshot and then get uploaded to Skynet.\n\nLeaderboards will work through publishing a feed to a DAC, although there will be obvious problems with trusting that leaderboard as there's no way to verify how legitimate it is.\n\nRealtime multiplayer will work through WebRTC, but since I can't add a decentralized TURN/STUN server I don't know how to make it acccessible to everyone, might work with websockets if those get added to Skynet.\n\nA friendlist could be added with MySky, adding all friends to a path and then looping through them to see if they've done the same.\n\nLobbies could be built with DAC feeds once those are added, but might be hacky with unresponsive clients.\n\nChess can be built from the demo below right now, just needs to pass either moves or full states of the game and add a chess engine to the project and it should basically be working.\n\n# Setup (check open-source examples for inspiration)\n[VIDEO GUIDE HERE](https://www.youtube.com/watch?v=QqZqeWKEqoo)\n\nFork this project\n\nDownload version 2019.3.9f1 for Unity or a similar version(WebGL differs a lot from version to version);\n\nIn Unity, make sure platform is set to WebGL. You can access all functions through the SkyGame class, running for example \"SkyGame.SetFastData(\"test\")\".\n\nThen press \"Build\" and once that's completed, run $ serve in your commandline\n\nLastly, swap the index.html file to the one in this repo\n\nJoin this [discord server](https://discord.gg/fpqXNtFepM) for 1-on-1 support.\n\n# License\nThis is covered by the MIT license. Feel free to use it almost however you like ;)\n\n# Demos\n* [Color-Sharing Demo](https://abughadiyah.hns.siasky.net/)\n* [Polished Connect-4](https://skorn.hns.siasky.net/)\n\n# Community projects\n\u003e If you want to be seen here, just push an edit with your project linked =) Ideas? Tic-tac-toe, rock-paper-scissors, anything luck-based using [this](https://entropybeacon.hns.siasky.net/), etc...\n* [Army Clash](https://github.com/mikopeck/ArmyClash) - a simple turn-based multiplayer game you can [play here](blakerasor.hns.siasky.net).\n\n# Potential additions // TODO(partly)\n* Integrate to webapp(right now having CORS issues, as I had been loading it as an \u003ciframe\u003e) [develop branch](https://github.com/figurestudios/SkyGameSDK/tree/develop)\n* Real-time connections(might require websockets, as not everyone can connect with P2P without TURN/STUN servers)\n* Screenshots (possible in Unity, and can then communicate to the browser with the WebGLPluginJS library)\n* Lobbies(done via mysky, host whitelists friends, friends posts publickey to skydb,,,)\n* Extrapolation parameters in networking to simulate sync? (inclusion of time on send)\n* Make it work as a .js import to .html \u0026 .ts\n* [Roadmap](https://github.com/figurestudios/SkyGameSDK/wiki/Roadmap)\n\n# Special Thanks \u003c3\n\u003e Thanks to ChrisChrisChris#7003 for helping me for massively with the develop branch and further motivating me with this project\n\u003e \n\u003e Thanks to Froggy#3210 for being the first person to use SkyGameSDK\n\u003e \n\u003e Thanks to redsolver#0372 for helping me pitch ideas \u0026 make use of the registry\n\u003e \n\u003e Thanks to dghelm#8125 and pjbrone#3584 for helping me with their API\n\u003e \n\u003e Thanks to everyone else who's helped me \u0026 given suggestions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffigurestudios%2Fskygamesdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffigurestudios%2Fskygamesdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffigurestudios%2Fskygamesdk/lists"}