{"id":23127745,"url":"https://github.com/daniele-rapagnani/alephone-android","last_synced_at":"2025-08-17T05:31:16.674Z","repository":{"id":38411927,"uuid":"199529853","full_name":"daniele-rapagnani/alephone-android","owner":"daniele-rapagnani","description":"Port of the AlephOne engine on Android","archived":false,"fork":false,"pushed_at":"2024-07-18T10:26:39.000Z","size":21557,"stargazers_count":47,"open_issues_count":21,"forks_count":4,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-05T01:24:46.418Z","etag":null,"topics":["android-game","android-port","bungie","fps","fps-shooter","game","hacktoberfest","marathon","marathon-infinity","marthon2","raycasting"],"latest_commit_sha":null,"homepage":"","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/daniele-rapagnani.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}},"created_at":"2019-07-29T21:36:17.000Z","updated_at":"2025-03-18T17:38:50.000Z","dependencies_parsed_at":"2022-08-25T02:50:50.200Z","dependency_job_id":null,"html_url":"https://github.com/daniele-rapagnani/alephone-android","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/daniele-rapagnani/alephone-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniele-rapagnani%2Falephone-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniele-rapagnani%2Falephone-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniele-rapagnani%2Falephone-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniele-rapagnani%2Falephone-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daniele-rapagnani","download_url":"https://codeload.github.com/daniele-rapagnani/alephone-android/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniele-rapagnani%2Falephone-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270810838,"owners_count":24650002,"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-17T02:00:09.016Z","response_time":129,"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":["android-game","android-port","bungie","fps","fps-shooter","game","hacktoberfest","marathon","marathon-infinity","marthon2","raycasting"],"created_at":"2024-12-17T09:14:39.817Z","updated_at":"2025-08-17T05:31:12.385Z","avatar_url":"https://github.com/daniele-rapagnani.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AlephOne for Android\n\n## What is this?\nThis is a port of the [AlephOne](https://alephone.lhowon.org/) engine to Android.\nYes, this means you can now play the Marathon saga on your Android phone! :robot:\nYou can even play online!\n\n## How to run\nDownload the APK of the desired chapter from the [releases](https://github.com/daniele-rapagnani/alephone-android/releases) page from your phone and install it.\nYour phone may complain about the APKs signature as it is not registered with the Google Play Store, simply ignore the warnings. Enjoy!\n\n## How to play\n\nThe game supports playing with a bluetooth keyboard and/or a bluetooth **joystick** (such as a PS4 controller).\nIn both cases you can configure your input from the preferences screen.\n\nIf you want you can also play using touch controls.\nThere are no on-screen controls for now, here's how they work:\n\n![AlephOne Android Touch Controls](touch_controls.png)\n\nYou can find some options in the preferences to tune your touch experience by adjusting dead zones and the virtual stick size.\n\n## Scenarios\n\nThe game supports playing scenarios but you have to do a bit of work by following these instructions:\n- Place a file called `AlephOneScenario.txt` in the root of your phone's storage.\n- Place the scenario you want to play somewhere on your phone.\n- Write the path to the root folder of the scenario as the first line of `AlephOneScenario.txt`, such as `/sdcard/Evil`. If you are not sure what your path is, try `/sdcard/Your Scenario Folder` or `/mnt/sdcard/Your Scenario Folder`\n- Make sure the AlephOne you are going to use **is authorized** to access storage. Considering that the app is not signed some phones will deny access to storage without asking. Check in your phone's settings.\n- Run any of the games (M1/M2/MI), the scenario should run instead.\n\nAt the moment be sure to put your scenarios in your phone's memory. Putting them on an SD card will probably not work because the app has no write access to the SD card. This maybe confusing because the path to your phone's **internal** storage will probably still be `/sdcard`. Don't worry about that.\n\nSave games for the scenario will be placed inside the scenario's folder and will be separate from the main game(s).\n\nIf you want to go back to playing the bundled game you don't need to delete the `AlephOneScenario.txt` file, you can simply put a `#` in front of the scenario path to disable it, such as: `#/sdcard/Evil`.\n\n## Contributing\n\n### Dependencies\nAll dependencies are included in this project. \nThe only requirement is that you probably want to use the __Android NDK 18b__ or lower to build the project because of a bug in newer versions. If you don't do this the game will crash on startup complaining about not finding the main `.so` library (in the adb log).\n\nYou can still build the project with the latest NDK version but you'll need to patch it.\nYou can find the patch [here](https://android-review.googlesource.com/changes/platform%2Fndk~1318770/revisions/1/patch?zip.).\nFor further information on the issue take a look at [this issue](https://github.com/android/ndk/issues/929). The issue seems fixed in the latest NDK 22 but the project doesn't support it at the moment.\n\n### Compiling\nJust clone the repository with:\n\n```sh\ngit clone --recursive git@github.com:daniele-rapagnani/alephone-android.git\n```\n\nThen import the project in Android Studio or run the assemble task with:\n\n```sh\n# Use app:assembleRelease instead if you want the release build\n./gradlew app:assembleDebug\n```\n\nThis will build all three chapters of the game.\nIf you want just one you can build the corresponding flavor:\n\n```sh\n./gradlew app:assembleMarathon2Release\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniele-rapagnani%2Falephone-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaniele-rapagnani%2Falephone-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniele-rapagnani%2Falephone-android/lists"}