Git Product home page Git Product logo

daniele-rapagnani / alephone-android Goto Github PK

View Code? Open in Web Editor NEW
38.0 9.0 3.0 21.05 MB

Port of the AlephOne engine on Android

License: GNU General Public License v3.0

CMake 0.03% Makefile 0.01% Java 0.01% CSS 0.01% C++ 99.42% C 0.04% Perl 0.01% HTML 0.16% M4 0.01% Batchfile 0.01% Shell 0.01% Python 0.01% SourcePawn 0.31%
fps marathon marthon2 bungie marathon-infinity game fps-shooter raycasting android-game android-port

alephone-android's Introduction

AlephOne for Android

What is this?

This is a port of the AlephOne engine to Android. Yes, this means you can now play the Marathon saga on your Android phone! 🤖 You can even play online!

How to run

Download the APK of the desired chapter from the releases page from your phone and install it. Your phone may complain about the APKs signature as it is not registered with the Google Play Store, simply ignore the warnings. Enjoy!

How to play

The game supports playing with a bluetooth keyboard and/or a bluetooth joystick (such as a PS4 controller). In both cases you can configure your input from the preferences screen.

If you want you can also play using touch controls. There are no on-screen controls for now, here's how they work:

AlephOne Android Touch Controls

You can find some options in the preferences to tune your touch experience by adjusting dead zones and the virtual stick size.

Scenarios

The game supports playing scenarios but you have to do a bit of work by following these instructions:

  • Place a file called AlephOneScenario.txt in the root of your phone's storage.
  • Place the scenario you want to play somewhere on your phone.
  • 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
  • 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.
  • Run any of the games (M1/M2/MI), the scenario should run instead.

At 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.

Save games for the scenario will be placed inside the scenario's folder and will be separate from the main game(s).

If 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.

Contributing

Dependencies

All dependencies are included in this project. The 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).

You can still build the project with the latest NDK version but you'll need to patch it. You can find the patch here. For further information on the issue take a look at this issue. The issue seems fixed in the latest NDK 22 but the project doesn't support it at the moment.

Compiling

Just clone the repository with:

git clone --recursive [email protected]:daniele-rapagnani/alephone-android.git

Then import the project in Android Studio or run the assemble task with:

# Use app:assembleRelease instead if you want the release build
./gradlew app:assembleDebug

This will build all three chapters of the game. If you want just one you can build the corresponding flavor:

./gradlew app:assembleMarathon2Release

alephone-android's People

Contributors

daniele-rapagnani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

tcely immsl datarank

alephone-android's Issues

Mouse Control Not Supported

While most things as far as using a controller or keyboard are supported, it appears as though the mouse I have connected to this tablet is not producing camera movement. Tried enabling and turning off mouse control in settings but it does not seem to have resolved the issue.

Add support for OpenGL

Supporting OpenGL seems to be challenging.

The following issues must be addressed first:

  • There is no GLU for Android
  • The way OpenGL was used in Aleph One is not totally compatible with OpenGL ES, some tweaking is probably inevitable.

The Launcher: Cannot export scenario data/settings.

When attempting to use the Export Data option on the Launcher, the process never actually starts, leaving a "corrupt" zero=byte .ZIP archive lying around inside whatever directory I set as the destination.

Look Inversion with Controller?

Aside from the HUD issue in the first Marathon, the only other request I could possibly suggest would be look inversion support added for the controller. Amazing work, cannot wait to lay down in bed and play these games!!!

Add control graphics & touch control editor

While the title says it all I'd also like to state that it would be neat if, instead of having different applications for each game there could be single application that contains a menu that allows the loading of either mods or any of the three games. if you uhh, get what I mean.

The Port Itself: Gamepad Look settings are not respected.

When configuring gamepad controls for A1, the game almost always insists that the look stick be treated like a D-Pad, despite me trying again and again to get it to treat it like the analog stick that it is. The only game where this didn't happen was Marathon 2, though I attibute that more to sheer dumb luck.

Looking Up & Down

Use the blank space at the top right of the screen for buttons for looking up & down as that is needed to complete the games from start to finish.

Perhaps just port the engine

First of all, i want to say great job on doing what the main Aleph One community won't, and that is porting it to android. I realize this is still in the early stages, but perhaps instead of porting each individual game, just port the aleph one engine. I'm thinking something similar to Delta/Quad Touch on android for Doom and Quake, where you can select the game you want to play. This also opens it up to other mods and TCs.
Not that i have played with this port much, but if it hasn't been included, contoller support would be great.

Again, great job and keep up the good work!

The Port Itself: Update to v1.6.1?

Poking the project with a stick to see if it's still alive, but Aleph One on desktops got updated to v1.6.1 a while ago. Are there any plans to bring the Android build up to date?

Scenario Downloader: Cannot install Eternal X or Rubicon X.

So I tried downloading every available Marathon scenario simultaneously, and run into a bit of a snag. When attempting to install either Eternal X or Rubicon X, I am met with the following error message shown in this screenshot. Worse still, A1 doesn't clean up after itself if an installation fails, necessitating a app-wide storage wipe ane re-installation of working scenarios, to reclaim lost space.

Screenshot_2022-01-14-03-11-44-133_com marathon alephone

Enhance sensibility for the virtual stick

The virtual stick is just triggering key events. This makes it hard to move with precision. A solution can be to support variable velocity relative to the stick's origin at least when turning.

Marathon 1, likely others too: Alien Weapon causes screen to freeze with Enhanced HUD loaded.

Major showstopper: Starting with the level "Pfhor Your Eyes Only..." equipping the Alien Weapon at any time will cause the screen to freeze unless you switch away from it. This behavior can be observed only if the Enhanced fullscreen HUD is loaded; this doesn't happen on the Default HUD. Might be having to do with how the Enhanced HUD animates its distortion effects from tying to identify this unknown technology.

Support OBB files as source for the data files

The data files must now be placed on /sdcard requiring read and write permissions. This is not the ideal solution. Ideally data files should be placed inside expansion packs and downloaded along with the app.

Touch control customization

Just discovered your work. Great job, I'm enjoying it. Are you still working on it? I was wondering about the possibility of more Enhanced touch control customization? Like flipping sides with movement and triggers.

Assets take a huge amount of time to load

When the game is started it takes a huge amount of time to load. This seems especially the case for Marathon 2 / Marathon Infinity.
I suspect the issue may be related to random file access and the fact that the assets are not physical files but are located inside the APK file (which is just a zip).
If I remember correctly this problem didn't occur when loading assets from the SD card.

Add controls for sidestepping

There's no way to sidestep at the moment even if it is critical to some parts of the game.
Sidestepping should be possible while shooting. One possible solution is to support sidestepping in the upper right quadrant which is not used at the moment.

Add a proper icon

Ideally one would have one build per chapter in the marathon series, each one with its own icon. I don't know if this is somehow possible using build variants.

HUD Not displayed in Marathon 1

Thank you for the release! The three games all run great and the initial load of the first Marathon is actually very snappy. Only issue is the HUD in M1 displays as a black bar, at least on my phone. M2 and Infinity display correctly.

Writing to files does not work

There's an issue with writing to file in general caused by the fact that we are forcing all paths to be directed to the assets folder which is read-only on android.

gamepad support?

not mentioned in the notes and would be a welcome addition, see for example xash3d, etc.

Render to the whole screen

At the moment the game is rendered preserving the 4/3 original's aspect ratio.
It should probably make use of the whole screen.

All Games: Music does not play.

Music in the entire trilogy does not play. Consists of the level music from M1A1 and the menu music from Durandal/Infinity.

Add controls for swimming

At the moment there's no way of swimming even if this is an essential action in the game.
Swimming and firing is not common in the marathon series so we may as well support this action with something like touching two quadrants at the same time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.