{"id":20235711,"url":"https://github.com/a1studmuffin/cataclysm-dda-android","last_synced_at":"2026-02-28T10:05:13.374Z","repository":{"id":114805557,"uuid":"86967477","full_name":"a1studmuffin/Cataclysm-DDA-Android","owner":"a1studmuffin","description":"An unofficial Android port of Cataclysm: Dark Days Ahead.","archived":false,"fork":false,"pushed_at":"2018-10-15T03:52:44.000Z","size":884881,"stargazers_count":60,"open_issues_count":1,"forks_count":12,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-08-02T10:04:07.462Z","etag":null,"topics":["android","c-plus-plus","cpp","game","java","roguelike","sdl2"],"latest_commit_sha":null,"homepage":"https://play.google.com/store/apps/details?id=com.MichaelDavies.CataclysmDDA","language":"C","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/a1studmuffin.png","metadata":{"files":{"readme":"README-cdda.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2017-04-02T06:16:32.000Z","updated_at":"2024-09-22T17:23:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"d3b2ff92-8194-4aa5-b564-06f58b055bc1","html_url":"https://github.com/a1studmuffin/Cataclysm-DDA-Android","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/a1studmuffin/Cataclysm-DDA-Android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a1studmuffin%2FCataclysm-DDA-Android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a1studmuffin%2FCataclysm-DDA-Android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a1studmuffin%2FCataclysm-DDA-Android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a1studmuffin%2FCataclysm-DDA-Android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a1studmuffin","download_url":"https://codeload.github.com/a1studmuffin/Cataclysm-DDA-Android/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a1studmuffin%2FCataclysm-DDA-Android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29929621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T09:58:13.507Z","status":"ssl_error","status_checked_at":"2026-02-28T09:57:57.047Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["android","c-plus-plus","cpp","game","java","roguelike","sdl2"],"created_at":"2024-11-14T08:17:23.308Z","updated_at":"2026-02-28T10:05:13.356Z","avatar_url":"https://github.com/a1studmuffin.png","language":"C","readme":"# Cataclysm: Dark Days Ahead (Android Port)\n\nThis is an unofficial port of [Cataclysm: Dark Days Ahead](https://github.com/CleverRaven/Cataclysm-DDA/) (0.C Experimental) for Android.\n\nFeatures:\n- Tilesets, sound, localization, lua mod support\n- Backwards compatible with desktop 0.C save games\n- Stores game data in a publicly writeable location:  \n`/sdcard/Android/data/com.MichaelDavies.CataclysmDDA/files/`\n- Supports installation of custom tilesets, mods, soundpacks, and save games\n- Works with a physical keyboard or virtual keyboard \u0026 touchscreen\n- Auto-saves when the app loses focus (screen locked, switched apps etc.)\n- Highly customizable touch controls and  automatic in-game contextual shortcuts\n\nIt uses the [Android NDK](https://developer.android.com/ndk/index.html) to compile the game's C++ source code as a native library, with some Java glue to hold everything together.\n\nThe Cataclysm-DDA version number used by this port can be found here: [version.h](https://github.com/a1studmuffin/Cataclysm-DDA-Android/blob/master/jni/src/version.h).\n\n## Download\n\nGet it on [Google Play](https://play.google.com/store/apps/details?id=com.MichaelDavies.CataclysmDDA), or download an APK from the [releases](https://github.com/a1studmuffin/Cataclysm-DDA-Android/releases) section.\n\n## Overview\n\nSince Cataclysm-DDA supports a graphical tiles build using the [SDL](https://www.libsdl.org/) graphics library, this project is unsurprisingly based on SDL's [Android project template](https://github.com/a1studmuffin/Cataclysm-DDA-Android/tree/master/jni/SDL2/android-project). For more information see the SDL docs [README-android.md](https://github.com/a1studmuffin/Cataclysm-DDA-Android/blob/master/jni/SDL2/docs/README-android.md).\n\nHere's a rundown of what's in each folder:\n\n\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD\n`assets/android` - Android-specific game assets.  \n`assets/data` - An exact copy of Cataclysm-DDA's [data](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/data) folder.  \n`assets/gfx` - An exact copy of Cataclysm-DDA's [gfx](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/gfx) folder.  \n`assets/lang` - An exact copy of Cataclysm-DDA's [lang](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/lang) folder.  \n`assets/lua` - An exact copy of Cataclysm-DDA's [lua](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/lua) folder.  \n`jni/` - C/C++ source code for all native libraries. Includes modified versions of external libraries `SDL2-2.0.5`, `SDL2_image-2.0.1`, `SDL2_mixer-2.0.1`, `SDL2_ttf-2.0.14`, `lua5.1.5`, and `libintl-lite-0.5` (a lightweight `gettext` replacement). Also includes `src` which is a modified version of Cataclysm-DDA's [src](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/src) folder. All changes are guarded with `__ANDROID__` preprocessor defines.  \n`res/` - Android app resources (icons etc.)  \n`src/` - Java app source code. Note that some changes have been made to [SDLActivity.java](https://github.com/a1studmuffin/Cataclysm-DDA-Android/blob/master/src/org/libsdl/app/SDLActivity.java) from the original SDL Android project template's [SDLActivity.java](https://github.com/a1studmuffin/Cataclysm-DDA-Android/blob/master/jni/SDL2/android-project/src/org/libsdl/app/SDLActivity.java).\n=======\nPlease read [COMPILING.md](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/COMPILING.md) - it covers general information and more specific recipes for Linux, OS X, Windows and BSD. We also have an \"unofficial\" guide on building with `cmake` at [COMPILING-CMAKE.md](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/COMPILING-CMAKE.md). See [doc/COMPILER_SUPPORT.md](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/doc/COMPILER_SUPPORT.md) for details on which compilers we support. And you can always dig for more information in `doc/`.\n\u003e\u003e\u003e\u003e\u003e\u003e\u003e cdda-upstream/master\n\n## Compiling\n\n### Dependencies\n\nThis port was developed under Windows using:\n\n- Java JDK 1.8.0\n- Apache Ant 1.10.0\n- Android SDK 24\n- Android NDK r10e\n\nIt compiles via the Android command line tools (as opposed to Android Studio).\n\nIt should also compile under Linux or Mac OS if your environment is set up correctly, though this is untested.\n\nYou'll need commands `ndk-build` and `ant` to build the APK, as well as `adb` to deploy the APK to a device. \n\n\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD\nFor more information see the relevant platform installation guide for each dependency above.\n=======\nWiki:\nhttp://tools.cataclysmdda.com/wiki\n\u003e\u003e\u003e\u003e\u003e\u003e\u003e cdda-upstream/master\n\n### Steps\n\nThis modified Cataclysm source code comes with [version.h](https://github.com/a1studmuffin/Cataclysm-DDA-Android/blob/master/jni/src/version.h) and Lua [catabindings.cpp](https://github.com/a1studmuffin/Cataclysm-DDA-Android/blob/master/jni/src/lua/catabindings.cpp) pre-generated, so there's no need to run those steps before compiling.\n\nFirst, use Android Tools to update the project. From the command line in the project folder, run:\n\n    $ android update project -p .\n\nThen compile the C/C++ source code into debuggable native shared libraries:\n\n    $ ndk-build\n    \nor to build release libraries, run:\n\n    $ ndk-build NDK_DEBUG=0 APP_CFLAGS+=-DRELEASE=1\n\nFinally, build the APK with:\n\n    $ ant debug\nor\n\n    $ ant release\n    \nNote: The release APK will be unsigned. To sign it, you need to generate a keystore and point to it within `ant.properties`. More info on that [here](http://shallowsky.com/blog/programming/android-ant-build.html).\n\n## Maintenance\n\nTo keep maintenance simple, there are a few policies I'm adhering to:\n\n1) No changes should ever be made to Cataclysm-DDA's original data files under `assets`, except when updating the full app (code and data) to a newer Cataclysm-DDA version.\n\n2) All modifications to Cataclysm's C/C++ source code under `jni/src` must be guarded with `__ANDROID__` preprocessor defines, and must only address Android-specific issues. This simplifies the process of updating the app to newer Cataclysm-DDA versions.\n\n3) Updating the build to a newer Cataclysm-DDA version must always be done as an atomic operation. Specifically this means I won't be accepting pull requests for spot fixes to code or data from newer versions of the game. Instead everything must come at once, including merging/updating all game code (`jni/src`) and assets (`data`, `gfx`, `lang`, `lua`), regenerating `version.h` and lua bindings (`catabindings.cpp`), updating the assets file count in `SplashScreen.java`, and ticking `AndroidManifest.xml` with a new version code + name. This ensures the Android build is always at parity with the desktop build for the same version as shown in the main menu.\n\n## Contributing\n\nYou're welcome to report an issue or submit a pull request with Android-specific bugfixes and features, as long as it falls within the policies above. If it's a large change you might want to ping me first.\n\nIf you'd like to contribute to the actual game itself (not the Android port), please do this upstream at the [Cataclysm-DDA](https://github.com/CleverRaven/Cataclysm-DDA/) GitHub page and I'll (eventually) pull their fixes downstream when I update versions periodically.\n\nIf I get lazy and stop updating, I'm totally cool with someone else forking the project and continuing to work on it. Again, it's probably best to ping me in this situation due to the Google Play app store listing, but I'm happy to do whatever is best for the game and the community.\n\nYou can reach me at m@michaeldavies.com.au.\n\n## Frequently Asked Questions\n\nPlease see the [Google Play app description](https://play.google.com/store/apps/details?id=com.MichaelDavies.CataclysmDDA) for common questions and answers.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa1studmuffin%2Fcataclysm-dda-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa1studmuffin%2Fcataclysm-dda-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa1studmuffin%2Fcataclysm-dda-android/lists"}