{"id":13560553,"url":"https://github.com/alemart/opensurge","last_synced_at":"2026-01-28T06:02:45.907Z","repository":{"id":36177283,"uuid":"136194837","full_name":"alemart/opensurge","owner":"alemart","description":"Surge Engine: a 2D retro game engine for making your dreams come true!","archived":false,"fork":false,"pushed_at":"2024-04-29T23:23:57.000Z","size":120255,"stargazers_count":285,"open_issues_count":0,"forks_count":32,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-05-02T04:09:12.802Z","etag":null,"topics":["allegro","game-development","game-engine","platformer-game","retro-games"],"latest_commit_sha":null,"homepage":"http://opensurge2d.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alemart.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":"alemart","patreon":null,"open_collective":null,"ko_fi":"alemart","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2018-06-05T15:04:31.000Z","updated_at":"2024-05-04T02:33:16.712Z","dependencies_parsed_at":"2023-01-16T23:45:56.538Z","dependency_job_id":"1ff502fd-43ed-486e-8e15-e2245bf2dfe2","html_url":"https://github.com/alemart/opensurge","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemart%2Fopensurge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemart%2Fopensurge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemart%2Fopensurge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alemart%2Fopensurge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alemart","download_url":"https://codeload.github.com/alemart/opensurge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247427006,"owners_count":20937201,"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":["allegro","game-development","game-engine","platformer-game","retro-games"],"created_at":"2024-08-01T13:00:46.406Z","updated_at":"2026-01-28T06:02:45.900Z","avatar_url":"https://github.com/alemart.png","language":"C","readme":"\u003cdiv align=\"center\"\u003e\u003cbr\u003e\n\u003cimg src=\"https://opensurge2d.org/img/surge_profile.webp\" height=\"256\"\u003e\n\n\u003ch1\u003eSurge Engine\u003c/h1\u003e\n\u003ch3\u003eMake your dreams come true!\u003c/h3\u003e\n\u003cbr\u003e\n\n[![Latest release](https://img.shields.io/github/v/release/alemart/opensurge?color=blue)](https://github.com/alemart/opensurge/releases)\n[![License](https://img.shields.io/github/license/alemart/opensurge?color=brightgreen)](#license)\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/alemart?logo=github)](https://github.com/sponsors/alemart)\n[![Discord server](https://img.shields.io/discord/493384707937927178?color=5662f6\u0026logo=discord\u0026logoColor=white)](https://discord.gg/w8JqM7m)\n\n\u003cimg src=\"https://opensurge2d.org/surge-demo.gif\" alt=\"Demo\" height=\"360\"\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n## Overview\n\n**Make your dreams come true!** Open Surge Engine is an open-source 2D retro game engine designed to make your dreams come true!\n\n**It's a ton of fun!** Surge the Rabbit is a featured jump 'n' run created with the Open Surge Engine. It's made in the spirit of classic 16-bit Sonic platformers of the 1990s. Play as Surge in fun and exciting levels filled with challenges!\n\n**Unleash your creativity!** Create your own amazing games and play them on your PC and on your mobile device! Share your games with your friends! It's limitless fun!\n\n**A powerful engine for retro games!** One of the core elements of the engine is [SurgeScript](https://github.com/alemart/surgescript), a scripting language for games. Use it to create new gameplay mechanics, characters with special abilities, bosses, and much more! The sky is the limit!\n\nOpen Surge Engine is an amazing tool for learning game development, programming, digital art, and the nature of free and open-source software in a playful way.\n\nOfficial website: \u003chttps://opensurge2d.org\u003e\n\n## Download\n\nBy purchasing your copy, you can show your appreciation and support future development, user assistance and teaching with our game engine.\n\n[\u003cimg src=\"https://opensurge2d.org/img/badge_itchio.png\" height=\"120\" alt=\"Get it on itch.io\"\u003e](https://alemart.itch.io/opensurge)\n\n## Packaging\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/opensurge.svg?columns=3\u0026minversion=0.6.1.0)](https://repology.org/project/opensurge/versions)\n\n## Documentation\n\n* [SurgeScript documentation](https://docs.opensurge2d.org)\n* [Open Surge Wiki](https://github.com/alemart/opensurge/wiki)\n* [How to contribute](https://github.com/alemart/opensurge/blob/master/CONTRIBUTING.md)\n\n## Modding\n\n### Where do I find MODs?\n\n[Here](https://www.youtube.com/playlist?list=PLbPToEpHpU2dkXfNGn6aFc5RzM103DC5l).\n\n### How do I play a MOD?\n\n1. Download the MOD\n    - Windows / Android users: just download it\n    - Flatpak users: download it to `~/Downloads` (`$XDG_DOWNLOAD_DIR`)\n    - Snap users: download it to your home folder\n    - Other \\*nix users: preferably download it to your home folder\n2. Load the game\n    - Windows users: extract the package and launch the executable\n    - Android users: load the .zip file via options screen\n    - Other users: load the game via options screen (or via [command line](#command-line-options))\n\n\u003e By default, the Flatpak edition (Linux) cannot access your home folder. You may give it permission by running the following command:\n\u003e\n\u003e `flatpak override --user --filesystem=$HOME org.opensurge2d.OpenSurge`\n\u003e\n\u003e You will be able to load MODs from your home folder then.\n\n### How can I create a MOD?\n\nRead [Introduction to Modding](https://github.com/alemart/opensurge/wiki/introduction) at the Wiki.\n\n## About\n\nThe project is written from the ground up in C language, using the [Allegro game programming library](http://liballeg.org). It has been started by [Alexandre Martins](http://github.com/alemart), a computer scientist from Brazil. Nowadays, it has contributors all over the world!\n\n## License\n\n[GPLv3](https://github.com/alemart/opensurge/blob/master/LICENSE)\n\n## Advanced\n\n### Command-line options\n\nRun `opensurge --help`\n\n### Paths\n\nCheck the *Engine information* at the options screen to see where the files are.\n\nContent is distributed in the following locations:\n\n- `bin`: executable file\n- `share`: game assets (images, audio, levels, scripts, etc.)\n- `user`: user-modifiable data (preferences, logs, screenshots, additional assets such as user-made levels)\n\nThe default paths of these locations vary according to the platform:\n\n- Windows (.zip package):\n    * `bin`: `./opensurge.exe`\n    * `share`: `.`\n    * `user`: `.` or `%OPENSURGE_USER_PATH%`\n\n- Linux:\n    * `bin`: `/usr/games/opensurge`\n    * `share`: `/usr/share/games/opensurge/`\n    * `user`: `~/.local/share/opensurge/` or `$XDG_DATA_HOME/opensurge/` or `$OPENSURGE_USER_PATH`\n\n- Linux (Flatpak):\n    * `bin`: `flatpak run org.opensurge2d.OpenSurge`\n    * `share`: `/var/lib/flatpak/app/org.opensurge2d.OpenSurge/current/active/files/share/opensurge/`\n    * `user`: `~/.var/app/org.opensurge2d.OpenSurge/data/opensurge/` or `$OPENSURGE_USER_PATH`\n\n    If you use `$OPENSURGE_USER_PATH`, make sure it points to a subdirectory of `~/Downloads` (`$XDG_DOWNLOAD_DIR`).\n\n- Linux (Snap):\n    * `bin`: `snap run opensurge`\n    * `share`: `/snap/opensurge/current/share/games/opensurge/`\n    * `user`: `~/snap/opensurge/current/.local/share/opensurge/` or `$OPENSURGE_USER_PATH`\n\n    If you use `$OPENSURGE_USER_PATH`, make sure it points to a subdirectory of your home folder.\n\n- macOS:\n    * `bin`: `Contents/MacOS`\n    * `share`: `Contents/Resources`\n    * `user`: `~/Library/Application Support/opensurge/` or `$OPENSURGE_USER_PATH`\n\nIf you intend to hack the game, it's easier to have all files in the same place (read-write), because some of the above folders are read-only. Download the sources (use the same engine version), extract them to your filesystem and use the `--game-folder` command-line option.\n\nTip: you can also use the command-line option `--verbose`. The directories will appear at the beginning of the output.\n\n### Compiling the engine\n\nDependencies:\n\n| | Recommended | Minimum |\n|-|-------------|---------|\n| [Allegro](http://liballeg.org) | 5.2.11 | 5.2.7 \\* |\n| [SurgeScript](http://github.com/alemart/surgescript) | 0.6.1 | 0.6.1 |\n| [PhysicsFS](https://github.com/icculus/physfs) | 3.2.0 | 3.0.2 |\n\n\\* Minimum version on Android: 5.2.10\n\nCompile as usual:\n\n```\ncd /path/to/opensurge/\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake -j`nproc`\nsudo make install\n```\n\nUse `cmake-gui` or `ccmake` to tweak the compile-time options.\n","funding_links":["https://github.com/sponsors/alemart","https://ko-fi.com/alemart"],"categories":["Applications"],"sub_categories":["Games"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falemart%2Fopensurge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falemart%2Fopensurge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falemart%2Fopensurge/lists"}