{"id":15142291,"url":"https://github.com/suve/ld25","last_synced_at":"2025-10-23T19:31:27.088Z","repository":{"id":20095168,"uuid":"23364588","full_name":"suve/LD25","owner":"suve","description":"Colorful - Ludum Dare 25 (December 2012) entry","archived":false,"fork":false,"pushed_at":"2025-01-11T20:19:24.000Z","size":2383,"stargazers_count":28,"open_issues_count":2,"forks_count":10,"subscribers_count":4,"default_branch":"trunk","last_synced_at":"2025-01-30T20:40:19.480Z","etag":null,"topics":["android-app","f-droid","fdroid","game","game-jam","linux-app","ludum-dare","pascal","retro","sdl","sdl2","windows-app"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/suve.png","metadata":{"files":{"readme":"README.md","changelog":"change.log","contributing":null,"funding":".github/FUNDING.yml","license":null,"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":"suve","liberapay":"suve"}},"created_at":"2014-08-26T19:48:04.000Z","updated_at":"2025-01-22T14:16:56.000Z","dependencies_parsed_at":"2024-06-14T21:27:50.011Z","dependency_job_id":"aefdbc4e-2911-4b70-9a9e-4ff233afafe2","html_url":"https://github.com/suve/LD25","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suve%2FLD25","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suve%2FLD25/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suve%2FLD25/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suve%2FLD25/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suve","download_url":"https://codeload.github.com/suve/LD25/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237882170,"owners_count":19381176,"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":["android-app","f-droid","fdroid","game","game-jam","linux-app","ludum-dare","pascal","retro","sdl","sdl2","windows-app"],"created_at":"2024-09-26T09:40:22.637Z","updated_at":"2025-10-23T19:31:26.333Z","avatar_url":"https://github.com/suve.png","language":"Pascal","funding_links":["https://github.com/sponsors/suve","https://liberapay.com/suve"],"categories":[],"sub_categories":[],"readme":"# Colorful\n\nColorful is a simple 2D side-shooter game, originally created in 48 hours\nfor the [Ludum Dare](https://ldjam.com) event, 25th edition (December 2012).\n\nThis is the \"post-compo\" version of the game - it has received numerous\nenhancements and bug fixes.\n\n\n## Screenshots\n\n\u003cimg src=\"https://github.com/suve/LD25/raw/trunk/.github/screenshot0.png\" height=\"320\" width=\"320\" alt=\"First\"\u003e    \u003cimg src=\"https://github.com/suve/LD25/raw/trunk/.github/screenshot1.png\" height=\"320\" width=\"320\" alt=\"Second\"\u003e\n\n\n## Download\n\n\u003ca href=\"https://repology.org/project/colorful/versions\"\u003e\n\t\u003cimg src=\"https://repology.org/badge/vertical-allrepos/colorful.svg?exclude_unsupported=1\" alt=\"Packaging status\" align=\"right\"\u003e\n\u003c/a\u003e\n\nYou can download the game from\n[Itch.io](https://suve.itch.io/colorful),\n[Flathub](https://flathub.org/apps/pl.suve.colorful),\n[F-Droid](https://f-droid.org/en/packages/pl.suve.colorful.android/),\nor from the [Releases tab](https://github.com/suve/LD25/releases/latest) here on GitHub.\n\nThe game is available for Linux, Windows, and Android.\n\n\u003ca href=\"https://flathub.org/apps/pl.suve.colorful\"\u003e\u003cimg src=\"https://github.com/suve/LD25/raw/trunk/.github/flathub.png\" alt=\"Get it from Flathub\"\u003e\u003c/a\u003e\n\u003ca href=\"https://suve.itch.io/colorful\"\u003e\u003cimg src=\"https://github.com/suve/LD25/raw/trunk/.github/itch.png\" alt=\"Get it on Itch.io\"\u003e\u003c/a\u003e\n\u003ca href=\"https://f-droid.org/packages/pl.suve.colorful.android/\"\u003e\u003cimg src=\"https://github.com/suve/LD25/raw/trunk/.github/fdroid.png\" alt=\"Get it on F-Droid\"\u003e\u003c/a\u003e\n\n## Build it yourself\n\nTo build Colorful, you'll need the following dependencies:\n\n- [Free Pascal Compiler](https://freepascal.org)\n- [Make](https://www.gnu.org/software/make/)\n- [optipng](https://optipng.sourceforge.net/) - for optimizing images\n- [oggenc](https://github.com/xiph/vorbis-tools) - for encoding `.wav` sound effects to `.ogg`\n- [SDL libraries](https://libsdl.org): SDL2, SDL2\\_image, SDL2\\_mixer\n- Pascal units for SDL2\n\n\n### Getting the SDL2 units\n\nBefore you can build, you need to get a copy of Pascal SDL2 units.\nThe recommended version to use can be found in the\n[PGD SDL2-For-Pascal](https://github.com/PascalGameDevelopment/SDL2-for-Pascal)\nrepository, although you're free to try compiling the game using any others.\n\nThe repo links to aforementioned headers by the means of a git submodule,\nso if you don't want to experiment, run the following commands:\n\n    $ git submodule init\n    $ git submodule update\n\nThis should fetch the SDL2 headers for you.\n\n\n### Configuring the build\n\nThe build process includes a custom configuration script,\nwhich can be used to tailor the build process to your needs.\nThe script takes the following options:\n\n- `--android`    \n  Controls whether Android-specific build settings are enabled.\n  The default value is `false`.\n\n- `--assets \u003cbundle, standalone, systemwide\u003e`    \n  Specifies where the game should expect asset files to be located.\n  * `bundle`: Assets are expected to be found two directory levels\n    above the executable, like in the following structure:\n    - bin/linux64\n    - bin/win64\n    - gfx/\n  * `standalone`: Assets are expected to be found in the same directory,\n    right next to the executable.\n  * `systemwide`: Assets are expected to be found\n    in `${PREFIX}/share/suve/colorful`.\n\n  The default value is `standalone`.\n\n- `--compat \u003cauto, v1, v2\u003e`    \n  Controls whether the game should be built with compatibility for old config\n  files and savegames. This means that users upgrading from an old version\n  of the game will have their settings and savegames preserved.\n  * `v1`: Include compat code for v1 files.\n  * `v2`: Support only v2 files.\n\n  The default value is `auto`, which resolves to `v2` for Android builds\n  and \"v1\" otherwise.\n\n- `--debug`    \n  Controls whether debugging features are enabled.\n  The default value is `false`.\n\n- `--donate`    \n  Controls whether the \"Donate\" option appears in the main menu.\n  The default value is `true`.\n\n- `--fpc PATH`    \n  Use the Free Pascal Compiler located at `PATH`.\n  The default is to use `fpc`.\n\n- `--flags FLAGS`    \n  Pass `FLAGS` to fpc. Can be specified multiple times.\n\n- `--ogg-quality QUALITY`    \n  Encode sound effects to `.ogg` with this quality setting.\n  The default value is `10`.\n\n- `--platform \u003cauto, desktop, mobile\u003e`    \n  Controls whether the game should be built in desktop mode (keyboard focus,\n  no touch controls) or mobile mode (touch, extra menus for accessibility).\n  The default value is `auto`, which resolves to `mobile` when building\n  for Android, and `desktop` otherwise.\n\n- `--prefix PREFIX`    \n  Controls the path prefix used when installing the app and - if built with\n  `assets` set to `systemwide`- when loading assets.\n  The default value is `/usr/local`.\n\n- `--strip`    \n  Controls whether the built executable should be stripped of debug symbols.\n  The default value is `false`.\n\nThe option syntax is `--option=value`.\nPassing `--option value` will result in an error.\nFor boolean options, the value can be omitted; it will be treated as `true`.\n\nThe script generates a Makefile, so once you've configured everything\nto your liking (or just decided to go with the defaults), you can build\nthe game through the usual method:\n\n    $ make all\n\n\n### Installing the game\n\nIf you set `assets` to `standalone` (the default value) during the\nconfiguration phase, the game is ready to go. You can launch the executable\nfound at `build/colorful` and enjoy yourself. Since the game stores\nits configuration file and savestates inside the user's home directory,\nit should continue to work even if moved to a non-writeable location.\n\nIf you're trying to package the game for Linux, go back and ensure you've\nconfigured `assets` to `systemwide`, and specified the `prefix`.\nIf everything checks out, you can go ahead and use the `install` target\ndefined in the Makefile.\n\n    $ make install [DESTDIR=]\n\n\n## Building for Android\n\nAndroid is a bit of a tough cookie.\nYou can find all the extra code (Java/JNI glue, manifests, etc.)\nand build scripts inside the `android/` directory.\n\n\n## Licensing\n\nColorful is subject to two different licences.\n\n- Game code (found in the `src/` directory) is available under the terms of the\nGNU General Public License, version 3, as published by the Free Software Foundation.\nThe full text of this licence is available in the LICENCE-CODE.txt file.\n\n- Anything not covered by the point above is made available under the terms\nof the \"zlib with acknowledgement\" licence. The full text of this licence\nis available in the LICENCE-ASSETS.txt file.\n\n\n## Random rambling\n\nThe code, as you can expect from a game made for a 48h compo, is quite crappy.\nSince this is a post-compo version, some cleanup has been made,\nfunctions have been moved, comments have been added.\nBut it's still far from being state-of-the-art, so don't\nexpect me to cover the damage if you hurt your eyes looking at it.\n\nWhile getting the game to compile for Android was fairly easy, making it run\nin a sensible matter was a whole other issue. As such, the code is riddled\nwith Android-specific quirks and workarounds. Some of these should be fairly\nobvious in what they do, but some are quite literally workarounds for\nbehaviour I didn't bother to properly diagnose.\n\nSo anyway, feel free to read, observe, and despair. I mean, learn.\nLike, you know, I made a game and you didn't, so you can learn from me.\nYeah.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuve%2Fld25","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuve%2Fld25","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuve%2Fld25/lists"}