Coder Social home page Coder Social logo

xyzz / openmw-android Goto Github PK

View Code? Open in Web Editor NEW
322.0 36.0 87.0 50.59 MB

OpenMW for Android

Home Page: https://omw.xyz.is/

License: GNU General Public License v3.0

Java 56.05% CMake 3.20% Shell 3.48% Perl 8.00% Kotlin 24.02% Python 4.55% C++ 0.70%

openmw-android's Introduction

No longer under development

You can download one of the old builds from the Releases tab.

OpenMW for Android

Google Play | Google Play (Nightly)

F-Droid | F-Droid (Nightly)

FAQ & Info

Building

There are two steps for building OpenMW for Android. The first step is building C/C++ libraries. The second step is building the Java launcher.

Prerequisites

You will need some standard tools installed that you probably already have (bash, gcc, g++, sha256sum, unzip).

CMake 3.6.0 or newer is required, you can download the latest version here (and place in your PATH) if your distro ships with an outdated version.

Additionally, to build the launcher you will need Android SDK installed, it is suggested that you use Android Studio which can set it up for you (see step 2).

Step 1: Build the libraries

Go into the buildscripts directory and run ./build.sh. The script will automatically download the Android native toolchain and all dependencies, and will compile and install them.

Step 2: Build the Java launcher

To get an APK file you can install, open the openmw-android directory in Android Studio and run the project.

Alternatively, if you do not have Android Studio installed or would rather not use it, run ./gradlew assembleDebug from the root directory of this repository. The resulting APK, located at ./app/build/outputs/apk/debug/app-debug.apk, can be transferred to the device and installed.

Notes for developers

Debugging native code

You can debug native code with ndk-gdb. To use it, once you've built both libraries and the apk and installed the apk, run the application and let it stay on the main menu. Then cd to app/src/main and run ./gdb.sh [arch]. The arch variable has to match the library your device will be using (one of arm, arm64, x86_64, x86; arm is the default).

This also automatically enables gdb to use unstripped libraries, so you get proper symbols, source code references, etc.

Running Address Sanitizer

To compile everything with ASAN:

# Clean previous build
./clean.sh
# Build with ASAN enabled & debug symbols
./build.sh --ccache --asan --debug
# Or: ./build.sh --ccache --asan --debug --arch arm64

Then open Android Studio and compile and install the project.

To get symbolized output:

adb logcat | ./tool/asan_symbolize.py --demangle -s ./symbols/armeabi-v7a/
# Or: adb logcat | ./tool/asan_symbolize.py --demangle -s ./symbols/arm64-v8a/

Credits

Source code

Original Java code written by sandstranger. Build scripts originally written by sandstranger and bwhaines.

openmw-android's People

Contributors

docent27 avatar licaon-kter avatar poussinou avatar psi29a avatar sandstranger avatar sisah2 avatar terabyte25 avatar xyzz 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  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  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  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

openmw-android's Issues

Expose settings-default.cfg file to the user

settings-default.cfg file is rather important and mentions settings that are useful to the user that there's no way of finding them other than searching on the internet.

So it should be extracted to the openmw folder that's in the internal storage.

No gamma slider?

0.46.0-26 introduced gamma for GLES2. But there is no way to control it through app or ingame settings.

Build 23 - memory leak with FPS on

Local build, arm64, Mate 9 stock Pie

Steps, clean install:

  • start app
  • allow storage
  • select game folder
  • enable "enable FN keys"
  • start game
  • load savegame/new game

Expected:

  • press FN -> F3
  • game runs
  • see framerate

Actual result:

  • press FN -> F3
  • game runs
  • see framerate
  • after a while it exits
  • see that other apps (eg. Conversations) have been killed and they need to reconnect

Triggered faster with texture mods and more "cells" loaded.

Worked fine on build 22.

the game crashes when the log file overflows with errors.

the game log file overflows with an error message, and after some time crashes:
[14:24:56.018 W] Warning: detected OpenGL error 'invalid enumerant' at after RenderBin::draw(..)
Version APK: 0.47-41

  • Device: Asus ROG phone 3 12/256
  • OS: Android 10
  • Version: ww_phone-17.0823.2012.122
  • App source: Google Play store, F-Droid

Chromebook Controller Support - Joysticks work, but none of the buttons do

I have connected and Xbox One controller, a PS4 controller, and a Stadia controller to my Chromebook running OpenMW for Android, but none of them appear to control correctly. I can use the left and right joysticks to move and look around, and interestingly the left trigger causes the player to jump. None of the face buttons or other triggers seem to do anything.

This is running on a Lenovo Flex 5 13" Chromebook with a 10th gen i3 processor and 8 GB of RAM.

Feel free to let me know if you have any other questions or have any suggestions! Thanks.

Crash on "Loading content file Morrowind.esm"...

Last log entry... Nightly builds 28 and 29... Galaxy J3 Orbit (Mali GPU)... Android 8.0.0... Vanilla GoG...

Anyway, I've been enjoying this, immensely. I'll just go back to build 27, until the matter irons out.

need a button for "physics fps 40 or 50".

It's not a bug (I'm sorry, I don't know where to put this ...)

I have problems with 30 and 60 fps physics.
when it is at 30 fps I start to lag inside but on the outside I get more fps.

when the game is 60 fps, i get more fps inside but i lose performance outside.

Screenshot_2020-01-06-21-56-09

Beginning without intro

Hi, first of all thanks for your huge work.
In 46.0.27 nightly, I have no introduction video when I run a new game, and nobody talks. I have the French version of the game, maybe the problem ?
Android 9, Samsung galaxy A6

Quest dialogue cannot give items with GLESv2

Hello,
I noticed that enabling GLESv2 leads to you not getting the items in the last tutorial stage (so you do not get the message for Caius Cosades, as well as the Money and whatever you get. Thus you cannot even leave the tutorial area, because you cannot get the required items.
While I haven’t tested so far, but I think GLESv2 leads (for some obscure reason) to quest dialogue not giving items.
I’m using a clean, unmodded german copy of the game, but of course it would be interesting if you guys can reproduce the issue:

Steps to reproduce:
→ For versions prior to 0.46.0-27 activate GLESv2
→ Start a new game and go through the tutorial
→ When you talk to Sellus Gravius about your tasks, you should get four notes about updating the diary, giving you instructions, giving you messages for Caius Cosades and giving you 86 draken. With GLESv2 I only get the notice about the update of the diary.
→ You end up with the instructions, but without the messages or the gold

Thus I assume that the notification of you getting the item somehow does not work and crashes the script when GLESv2 is activated.

Gamma Slider?

It is very hard to see in most of the game due to the lack of the gamma slider in the video settings. Many other video settings from morrowind are also missing that would be great to have.

Validate custom OpenMW patches

Some OpenMW patches may be not needed anymore, some may be implemented in a better way:

  1. 0001 - it does not have any explanation why it is needed and I did not see any bugreports related to setupCopyFramebufferToTextureCallback.
  2. 0002 - it is not used at all and can be removed.
  3. 0003 - a related data race is supposed to be fixed now - savegame loading does not try to sort landscape since it is static for given session.
  4. 0004 - the issue is worked around from OpenMW side, so both patches (for OpenMW and OSG) should not be needed now.
  5. 0009 - in theory, it should not be needed in 0.47. If it is still needed, it would be nice to specify such cases - maybe it would be better to fix them on OpenMW side.
  6. 0005 and 0013 - it would be better to discuss them with OpenMW developers. Probably OpenMW can define a new layer to define platform-specific default settings values (e.g. via android-settings.cfg config file).
  7. 0014 - again, it is unclear why it is needed. An only case when setting changes are not saved to settings.cfg is when OpenMW process crashed or was terminated. Such cases should be very rare, otherwise they need investigation rather than hacks.

Crash on save game (0.47.0-38-nightly)

0.47.0-38-nightly is crashing on save game

Revert to prior nightly version displays none of this behavior

App installed via Play Store

Device model is Samsung Galaxy A01 (SM-A01571)

English and Russian keyboard switch.

I really want to be able to switch the keyboard in the game from English to Russian. There are a lot of morrowind players from the former CIS countries.

Auto save and auto load quicksave

Hello. It would be awesome if there was a option to autoload the quicksave when you start morrowind, and auto quicksave when you close the application . (E.g when the game is started, it doesn't go to the main menu but automatically loads last quick save) .

This is a very small issue but it would be handy for morrowind fans that like to play the game in very short sessions.

Game files selection crash on Android 11

On Android 11 (Pixel 3XL) there appears to be a persistent crash upon clicking Game files to set the path variable. I assume it's something not playing nice with the new Android versions menu dialogue. As soon as the menu option is clicked the app closes.

I just thought y'all should be aware. Thank you!

A more modular approach to installing mods

I'd like to add UI functionality that will allow the user to specify additional data file directories (basically extra data= entries in openmw.cfg). The benefit of this is that it allows installing/uninstalling/updating mods without worrying about conflicts with other mods or the base game.

Looking at the code, this won't be a trivial change as several parts of the existing mod management code assumes only a single data file directory. So I'm opening this issue as a way to get early feedback and guidance, and also to make sure this isn't already being worked on. Here are my tentative plans:

  • Add a third tab to the "Mods" activity that will allow the user to add/remove/(enable/disable?)/reorder the extra data directories
  • DataDir will be implemented as a third value for the ModType enum
  • I will probably have to either add a database column or change the filename column to be a full path, to allow associating plugin/resource type mods with the data dir mods they come from
  • And of course the ModsCollection will have to scan all the data dirs, as well as rescanning to update the list when a data dir is added or removed.

So, any questions, comments, or suggestions?

Option to move Stealth or other buttons out of the toolbar group (feature)

Right now in the Stable release, stealth is only visible if the whole toolbar menu is visible. It looks like it used to be a dedicated touchscreen control but to conserve screen space was moved to the toolbar and replaced with the minimap.

The minimap was a great addition, but having a stealth based character quick access to the stealth button is nice too.

Touch joysticks have issues with maintaining boundaries

Describe the bug
A clear and concise description of what the bug is.

If you put your thumb down on the movement stick and move forward and then put your other thumb on the look stick, they will both register the touch, so your movement will immediately be pulled to the right (or left if sticks are reversed) but you'll keep looking forward. Adjust for it without taking thumbs off, then try to interact with an object using your right thumb (or left) and your vision will, in one frame, be immediately facing the opposite direction, the right joystick having understood your left thumb on the left joystick as being a touch on the right joystick.

Makes the game essentially unplayable with touch screen controls

To Reproduce
Steps to reproduce the behavior:

What I described.

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

I expected to be able to move and look without my movement and looking being improperly tied to the wrong joysticks

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: [e.g. Google Pixel]
    S10+ SD855
  • OS: [e.g. Android 9]
  • Android 11
  • Version: [e.g. 22]
  • The newest one out as far as my phone is aware
  • App source: [e.g. Github, Google Play store, F-Droid, self-built]
  • google play. Nightly build doesn't parse properly

Additional context
Add any other context about the problem here.

Corpses don't disposed

When I press the button to dispose of the corpses of npcs or creatures, I only collect the items, but the bodies remains in place. This happens in versions 0.47.0-38-nightly and 0.47.0-39-nightly, in version 0.47.0-37-nightly this don't happen.

  • Device: Alcatel 1C
  • OS: Android 9
  • App source: Github and Google Play store.

Add an option to walk

While playing Morrowind it is usually a good idea to keep your stamina level high, especially on low-level characters.
So, in current version of OpenMW-Android by default your character is always running. The only way to make her walk is to bind "Always Run" option in settings to some letter key and then press it on keyboard while in game. This is not very convenient.

I suggest adding to UI a new button that will behave like Caps Lock - switch between running and walking.

User openmw.cfg should be loaded second

This is the user openmw.cfg. Feel free to modify it as you wish.\n"

Ok, but...

Loading config file: /storage/emulated/0/Android/data/is.xyz.omw/config/openmw.cfg
Loading config file: /data/user/0/is.xyz.omw/files/config/openmw.cfg
OpenMW version 0.46.0

...so if I add something ( https://github.com/OpenMW/android-port/issues/71 ) or anything

data="/sdcard/openmw/mod1"
data="/sdcard/openmw/mod2"
...
content=mod3.esp
content=mod4.esm
...

...then the openmw.cfg generated by the app is concatenated overriding anything that I change, right?

Absolute Touch control is offset with most custom resolutions

4:3 Custom resolutions work with absolute touch
but most 16:9 resolutions (except 1920x1080) are offset.
Seems like the top left corner is fine but while you move to bottom right the touch is shifting further than the finger.
Haven't tested 18.5:9, 16:10 and other aspect ratios.

Level up/skill up bug

I ran into a bug related to level up/skill up in versions above 0.46.0.18

Every time I read a skill book i get audio notification (holy sound) without popup notification. I mean I can endlessly read one skills book, so I can grind skills/levels endlessly.

A similar situation occurs with manual skill up. When the skill progress reaches 100, skill does not raise, but the value grows over 100. For example I've reached 100/100 progress to level up skill and instead of advance, it's continues to progress above (xxx/100). And the same as with the skill book, I get only audio notification.

openmw.log says for every skill up
Error in frame: basic_string

I'm using the clean version of Morrowind without mods.
Device: Redmi 5
Android: 8.1.0

OpenMW Nightly insta-crashes on Android 10.

Describe the bug
The moment you try to start up Morrowind, the entire app crashes.

To Reproduce

  1. Open OMW Nightly
  2. Click on the "Play" button
  3. Crash to your device's app launcher

Expected behavior
I would have expected to actually play Morrowind with the Nightly build, but that isn't a possibility right now.

Smartphone (please complete the following information):

  • Device: Xiaomi Black Shark 2 Pro
  • OS: Android 10
  • App Version: v0.47.40-nightly
  • App source: Google Play

Direct shortcut to game

Hello. Could you add a shortcut that starts the game directly instead of first going through the options? It would be a lot appreciated if it has the morrowind logo and also named "morrowind"

Not finding gamedatas

Hello,

In the current nightly, gamedatas are not found.

When I select my folder (which one is working with last release), even if I select the good path, it's not working.
It is searching in "/emulated/0/Morrowind" instead of "/storage/emulated/0/Morrowind"

Currently using huawei p10.

Please, add the possibility to force the path, as the release. Select seem to not work properly.

Game crashes when plugging in usb-c controller

Describe the bug
If OpenMW has already loaded and I plug in a usb-c controller (Gamesir x2), OpenMW crashes to the phone's home screen. If I have the controller already plugged in and try to launch OpenMW, I'm immediately sent to the phone's home screen.

To Reproduce
Steps to reproduce the behavior:

  1. Launch OpenMW.
  2. Plug in usb-c controller (Gamesir x2).
  3. OpenMW crashes

OR:

  1. Plug in usb-c controller (Gamesir x2).
  2. Launch OpenMW
  3. OpenMW immediately crashes

Expected behavior
The Gamesir x2 controller works fine with the stable (0.46.0-38) build from the playstore.

Screenshots
Not applicable

Smartphone (please complete the following information):

  • Device: Google Pixel 4a 5g
  • OS: Android 11
  • Version: version 0.47.0-41-nightly
  • App source: Google Play store

Additional context
The Gamesir controller works fine using the 0.46.0-38 (stable) build from the playstore.

Export and import of control on-screen button settings.

I would like to be able to export and import on-screen button settings. Unfortunately, after reinstalling the APK, the settings are reset to default. I think the settings are stored in protected memory, which cannot be accessed without root rights. But it would be convenient if the on-screen button settings are stored in the same directory as other files, such as settings.cfg and openmw.cfg.

A few important notes before updating openmw

  • The new movement solver fixes MR has been merged, and OpenMW now uses bullet double precision by default because it fixes alot of physics issues and it is required for that MR changes to work more effectively, so it's a good idea to enable double precision for architectures that support it.

  • That MR makes OpenMW use simpler collision boxes by default so the android patch is no longer needed and it will cause builds to fail anyway so it's better removed.

  • With that MR changes there's a bug with 15 physics FPS where corpses slide down, so it would be a good idea to remove that option, 30 physics FPS or more doesn't have that bug, and OpenMW PC is using 60 by default anyway.

And thanks for keeping this port alive.

ffmpeg fails to build

An issue on ubuntu 18.0.4

ffmpeg and its libs fails to compile with version mismatch I will upload a text log soon I might have a fix if it works I will send it along with the original error

Long loading time on Android 11

Describe the bug
When you hit the "play" button in the bottom right of the launcher app, it takes about a minute and a half to start the game. At first I thought the app had frozen, but after waiting a long time the game does start.

Loading and saving also seem to take longer under Android 11 so I'm thinking this may have something to do with how storage is handled under Android 11.

This also happens with the stable version of OpenMW.

To Reproduce
Steps to reproduce the behavior:

  1. Open the OpenMW launcher app
  2. Click on the play button.
  3. Wait... About a minute and a half for the game to launch

Expected behavior
On an older phone running Android 10 (Pixel XL) the game loads almost instantly. No wait.

Screenshots
Not applicable

Smartphone (please complete the following information):

  • Device: Google Pixel 4a 5g
  • OS: Android 11
  • Version: 0.47.0-41-nightly and 0.46.0-38
  • App source: Google Play store

ARM + LTO = error

For F-Droid, since compiling takes ages, I've tested only the ARM64 build.

But now on the build server the LTO build of nightly 37 fails:

[100%] Linking C shared library libopenal.so
/home/vagrant/build/is.xyz.omw_nightly/buildscripts/toolchain/ndk/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.gold: fatal error: Optimization level must be between 0 and 3

I'll reverse the LTO part so at least it builds but any idea on how to fix?

Ref: android/ndk#721
Ref: https://reviews.llvm.org/D79919
Buildlog: is.xyz.omw_nightly_37.log.gz

Add gyroscopic aiming.

The game could detect rotation of the device and use it to emulate mouse movement. It would make aiming easier in my opinion and allow using the finger for other things (jumping, attacking…) while aiming. In menus, it could be helpful when the analog stick sensitivity is high, so selecting small items with it is hard. Similar controls sam be seen in Delta Touch, Quad Touch and other Android games, in many Switch games, or by searching “gyro aiming” on YouTube.

Bugs with Gravius ​​and skills

Hello. There are 2 problems in newer versions of openmw since 0.46

  1. After leaving the ship, in Seyda Nin's concession, Cellus Gravius ​​does not leave the office. When you start a dialogue with him, a message does not appear that the documents have been transferred, and the entry in the diary is not updated.
    The script does not work, during the repeated dialogue, Gravius ​​says: "Who are you, where are your documents?"
    Documents from the inventory disappear, so you cannot leave the office. This problem was observed in openmw from the Google Play Market, in versions 0.46 and 0.47

In the logs, he writes the following error:

Loading cell Seyda Neen, Census and Excise Office
Dialogue error: An exception has been thrown: basic_string
Dialogue error: An exception has been thrown: basic_string

This problem was observed not only on my device, but also among other users.

  1. In versions where there is a bug with Gravius, there are also bugs with obtaining skills.
    If you load a working save, play for a while, a bug appears.
    For example, the athletics skill should increase, when you jump, music plays about getting the skill, but nothing happens. The message about obtaining the skill is also not shown.
    A sound is heard with each jump, the skill is not counted. If after this you save the game and re-enter, then the bug will still make itself felt. The only solution is to load the previous save. But it helps until the next bug.
    Tested on GLESv2
    This problem occurs with the Russified version of Morrowind, with any assembly.

Device: Lenovo A5
OS: Android 8.1
Version: 0.46 - 0.47 (nightly & stable)
App source: Google Play, github

Can crash dumps be produced?

OpenMW on Linux has openmw-crash.log file, is it possible to have crash dumps enabled in android too?

Would be useful for debugging, and it would be nice if at least there's a tutorial on the repo for how to if possible?

implement folder-selection for data folder

the var for local path where the game data is stored shouldn't be implemented as a simple text input, but via some dedicated file-selection-input

further the var produced should be escaped and stored in quotes, to allow things like "/storage/0000-0000/Morrowind/Data Files/" to work

this currently breaks, unless the user himself enters the var including quotes (the minimal effort "solution" would be to add a help-label that explains how to enter paths with spaces and other special chars)

Antialiasing flicker with exterior cell load distance

Nightly 27 F-Droid, Xiaomi MIUI11 Android 10, SD855

With distant terrain = true

  • antialiasing = 0 or 2 or 4 and exterior cell load distance = 1 -> OK
  • antialiasing = 0 and exterior cell load distance = 2 or 3 or 4 -> OK
  • antialiasing = 2 and exterior cell load distance = 2 or 3 or 4 -> rarer, slight flickering of edges of medium to high distance objects (trees)
  • antialiasing = 4 and exterior cell load distance = 2 or 3 or 4 -> continuous flickering of edges of medium to high distance objects (trees) and even my PC in 3rd person view.

Video:
flikeringantialasoso.mp4.zip

Can't get a running build from source

I'm trying to make my own build to try some modifications, but can't get it running in my device.

It builds fine, and it loads the main menu. But as soon as I try to launch the game, I get this error:

java.lang.UnsatisfiedLinkError: No implementation found for void ui.activity.GameActivity.getPathToJni(java.lang.String, java.lang.String) (tried Java_ui_activity_GameActivity_getPathToJni and Java_ui_activity_GameActivity_getPathToJni__Ljava_lang_String_2Ljava_lang_String_2)
        at ui.activity.GameActivity.getPathToJni(Native Method)
        at ui.activity.GameActivity.onCreate(GameActivity.kt:108)
        at android.app.Activity.performCreate(Activity.java:6713)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2632)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2740)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6144)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

It seems this getPathToJni is related to TES3MP. I didn't find it anywhere in OpenMW-Android source.

Am I missing something?

Need help with something

i can't access openmw.cfg and settings.cfg using es file explorer and es file explorer pro, when i try to access it says there is nothing with cfg, i searched all my phone and i found nothing with cfg, except when I hit openmw's own app and saw that there's something like openmw.cfg inside it, but inside there's nothing and a error every time I try to touch it.
I do not know what to do, the game is working but it has a bit of lag, and I can not see the water (except when it goes all white), I wanted to try to download an optimization mod and maybe get it fixed the water
but I just can't do anything, and I don't even know what to try, can someone please help me?

User interface mod better suited for mobile use

Hi there,
Thanks for your very awesome work.
I just wanted to give an idea as feedback.
The original user interface of morrowing is not well suited for smartphone use. Text is hard to read, buttons are small and difficult to use to move, map is small and hard to navigate and so on.

A UI mod with menus/user interface made for mobile would really enhance the game experience. I don't know if such mw mod already exist, but integrating such would be really awesome.

Also suggesting a list of mod that improve the experience on mobile would be also very great!
Thanks!

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.