{"id":17011804,"url":"https://github.com/superzazu/smgf","last_synced_at":"2026-05-04T14:42:30.603Z","repository":{"id":224217288,"uuid":"762740221","full_name":"superzazu/SMGF","owner":"superzazu","description":"A small framework to make crossplatform (web, macOS, Linux, Windows) 2D games in Lua.","archived":false,"fork":false,"pushed_at":"2024-04-13T14:40:23.000Z","size":1419,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-11T18:09:45.216Z","etag":null,"topics":["2d","2d-game-engine","framework","game","lua"],"latest_commit_sha":null,"homepage":"https://superzazu.github.io/SMGF/","language":"C","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/superzazu.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-24T15:04:04.000Z","updated_at":"2025-01-10T14:50:44.000Z","dependencies_parsed_at":"2024-03-03T17:25:17.573Z","dependency_job_id":"bbd79c9f-a807-43c9-b033-ab76475c53d9","html_url":"https://github.com/superzazu/SMGF","commit_stats":null,"previous_names":["superzazu/smgf"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superzazu%2FSMGF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superzazu%2FSMGF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superzazu%2FSMGF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/superzazu%2FSMGF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/superzazu","download_url":"https://codeload.github.com/superzazu/SMGF/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393539,"owners_count":20931810,"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":["2d","2d-game-engine","framework","game","lua"],"created_at":"2024-10-14T06:08:05.249Z","updated_at":"2026-05-04T14:42:30.597Z","avatar_url":"https://github.com/superzazu.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SMGF\n\nSMGF is a small framework to make 2D games in Lua for the web, macOS,\nLinux and Windows.\n\nFeatures:\n\n- minimal Lua (5.5) API, with exports for the web, macOS, Linux and Windows\n- LSP annotations available for the whole API\n- a simple hardware-accelerated 2D API powered by the SDL3\n- streamed and static audio sources from multiple sound formats (ogg and wav by default, others formats such as mp3, flac, and tracker formats can be configured on build)\n- inputs from mouse, keyboard and game controllers\n- sandboxed IO environment to save/load data on the player computer, which\n  allows for game modding out of the box\n- open source under the zlib license, which means you can use it and\n  distribute your games freely and free of charge\n\n[Get started here!](https://superzazu.github.io/SMGF/docs/getting-started/)\n\n## examples\n\nDisplay an image on screen:\n\n```lua\nfunction smgf.init()\n  my_texture = smgf.graphics.new(\"my_image.png\")\nend\n\nfunction smgf.draw()\n  smgf.graphics.clear()\n  smgf.graphics.draw(my_texture, 5, 5)\nend\n```\n\nPlay a sound on key press:\n\n```lua\nfunction smgf.init()\n  sound = smgf.audio.new(\"sfx.wav\")\nend\n\nfunction smgf.key_down(key)\n  if key == \"return\" then\n    sound:play()\n  end\nend\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuperzazu%2Fsmgf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuperzazu%2Fsmgf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuperzazu%2Fsmgf/lists"}