{"id":28824125,"url":"https://github.com/finochiom/s2d","last_synced_at":"2025-08-18T05:12:43.119Z","repository":{"id":296396303,"uuid":"993204584","full_name":"FinochioM/S2D","owner":"FinochioM","description":"A 2D game programming library written in and for Scala Native.","archived":false,"fork":false,"pushed_at":"2025-06-29T21:12:05.000Z","size":1120,"stargazers_count":43,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T01:08:11.787Z","etag":null,"topics":["library","s2d","scala","scala-native","videogames"],"latest_commit_sha":null,"homepage":"https://finochiom.io/","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FinochioM.png","metadata":{"files":{"readme":"Readme.md","changelog":"Changelog.txt","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"finochiom","thanks_dev":null,"custom":null}},"created_at":"2025-05-30T11:48:22.000Z","updated_at":"2025-07-25T21:16:38.000Z","dependencies_parsed_at":"2025-06-24T01:20:56.264Z","dependency_job_id":"2b03e303-1d42-42a8-904c-2e113081fb15","html_url":"https://github.com/FinochioM/S2D","commit_stats":null,"previous_names":["finochiom/s2d"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/FinochioM/S2D","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FinochioM%2FS2D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FinochioM%2FS2D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FinochioM%2FS2D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FinochioM%2FS2D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FinochioM","download_url":"https://codeload.github.com/FinochioM/S2D/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FinochioM%2FS2D/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270946068,"owners_count":24672890,"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","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["library","s2d","scala","scala-native","videogames"],"created_at":"2025-06-19T01:04:59.307Z","updated_at":"2025-08-18T05:12:43.099Z","avatar_url":"https://github.com/FinochioM.png","language":"Scala","funding_links":["https://buymeacoffee.com/finochiom"],"categories":[],"sub_categories":[],"readme":"\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/FinochioM/S2D\"\u003e\n    \u003cimg src=\"images/S2D-Logo.svg\" alt=\"Logo\" width=\"270\" height=\"270\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eS2D\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    A simple 2D graphics library for Scala-Native, built on top of SDL2 and OpenGL. S2D provides an easy-to-use API for creating 2D games and graphics applications.\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## Changelog \u0026 TO-DO\nYou can take a look at what packages/functions I will add in the future in the _[LIBRARY_EXPANSION.TXT](https://github.com/FinochioM/S2D/blob/master/LIBRARY_EXPANSION.txt)_ file.\n\u003c/br\u003e You can also take a look at the _[Changelog.TXT](https://github.com/FinochioM/S2D/blob/master/Changelog.txt)_ file, where I will keep track of all the changes made to the different versions of the library.\n\n## Contributing\nContributions are welcome and really appreciated! The project will always remain open source for anyone that wants to either add new things to the library or just take a look at the source code.\n\nIf you have a suggestion that would make the library better, please fork the repo and create a pull request.\nDon't forget to give the repo a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n_**Go to the _[CONTRIBUTING](https://github.com/FinochioM/S2D/blob/master/.github/CONTRIBUTING.md)_ file to see what are the requirements of building and running the project.**_\n\n## Examples\n**Basic example of S2D**\n\n```scala\nimport S2D.core.{Drawing, Window}\nimport S2D.shapes.Basics\nimport S2D.types.*\n\n@main\ndef main(): Unit =\n  // Create a window\n  Window.create(800, 600, \"My S2D App\")\n\n  // Set up a camera\n  val camera = Camera2D(\n    offset = Vector2(0.0f, 0.0f),\n    target = Vector2(0.0f, 0.0f),\n    rotation = 0.0f,\n    zoom = 1.0f\n  )\n\n  // Main game loop\n  while !Window.shouldCloseWindow() do\n    Drawing.beginFrame()\n    Drawing.clear(Color.Blue)\n\n    Drawing.beginCamera(camera)\n      // Draw a red rectangle\n      val rect = Rectangle(200.0f, 200.0f, 200.0f, 100.0f)\n      Basics.rectangle(rect, Color.Red)\n      \n      // Draw a white circle\n      Basics.circle(Vector2(400.0f, 300.0f), 50.0f, Color.White)\n    Drawing.endCamera()\n\n    Drawing.endFrame()\n\n  Window.close()\n```\nS2D does not have an official documentation at the moment, so I have written some examples based on the `RAYLIB` library. \u003cbr\u003e\nInside the folder you will also find a `README.md` file that explains the structure of the folder more in depth.\u003cbr\u003e\n**You can find these examples in the _[s2d_examples](https://github.com/FinochioM/S2D/tree/master/s2d_examples)_ folder.**\n\n## Installation\nS2D has a custom CLI Tool that lets you create a new template project with either SBT or Scala CLI.\u003cbr\u003e\nHere is a step-by-step guide (You need Coursier installed on your machine):\n\n**The fastest way to set up a new project is running this command in your terminal:**\n\n```\ncs launch io.github.finochiom:s2d-cli_3:0.1.0 -- --generate\n```\n\n_This command will launch S2D_CLI with the `--generate` command directly. **(Please take into account you will need to manually change the version of the CLI to the latest one)**_\n\n**If you want to install the CLI locally on your machine you can follow these steps:**\n1. Run the following command:\n```\ncs install s2d --contrib\n```\n_This will install the s2d-cli application in your machine. \u003cbr\u003e**Refer to the coursier documentation to see where the applications are installed.**_\u003cbr\u003e\n2. After that you can run the CLI Tool like this:\n```\ns2d --\u003ccommand\u003e\n```\n_You can run the `--help` command to see the commands available_\n\n_**NOTE 1: The CLI Tool has its own repository where you can find the changelog and latest release (The `install` command automatically installs the latest version)** **https://github.com/FinochioM/S2D_CLI**_\n\u003cbr\u003e\n\u003cbr\u003e\n_**NOTE 2: Version** `1.0.1` **uses the wrong version scheme. S2D will be using the** `early-semver` **scheme, starting from** `0.1.2-SNAPSHOT`_\n\u003cbr\u003e\n\u003cbr\u003e\n_**NOTE 3: If you don't want to use the CLI you will need to manually link the libraries, headers and dlls. If you don't do this the library will not work. You can go to the _[CONTRIBUTING](https://github.com/FinochioM/S2D/blob/master/.github/CONTRIBUTING.md)_ file for more information.**_\n## License\nS2D is licensed under the *zlib* license. Read the [LICENSE](https://github.com/FinochioM/S2D/blob/master/LICENSE) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffinochiom%2Fs2d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffinochiom%2Fs2d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffinochiom%2Fs2d/lists"}