Native Android port of OpenXRay engine for S.T.A.L.K.E.R.: Call of Pripyat using OpenGL ES 3.0 and Mali GPU acceleration.
- ✅ Native ARM64 (aarch64) build for Android
- ✅ OpenGL ES 3.0 rendering with Mali GPU support
- ✅ Android Bionic libc compatibility
- ✅ Full LuaJIT scripting support
- ✅ Direct access to Mali-G710 hardware acceleration
- 🔄 Automatic APK builds via GitHub Actions
- Android Version: 7.0 (API 24) or higher
- Architecture: ARM64-v8a (64-bit ARM)
- GPU: Mali GPU with OpenGL ES 3.0+ support
- RAM: 4GB+ recommended
- Storage: 3GB+ for game data
- Fork this repository
- Push to
mainordevbranch - GitHub Actions will automatically build the APK
- Download the APK from Artifacts or Releases
# Install dependencies
pkg install openjdk-17 gradle
# Clone repository
git clone https://github.com/Standoff2bot/Stalker_android.git
cd Stalker_android
# Build APK
./gradlew assembleDebug- Download the APK from Releases
- Install on your Android device
- Copy S.T.A.L.K.E.R.: Call of Pripyat game data to:
/sdcard/Android/data/com.openxray.stalker/files/ - Launch the app
Required files structure:
/sdcard/Android/data/com.openxray.stalker/files/
├── fsgame.ltx
├── gamedata/
│ └── shaders/
│ └── gl/ # OpenGL shaders (required!)
├── resources/
│ ├── configs.db
│ ├── resources.db0-4
│ └── ...
├── levels/
├── localization/
└── patches/
Important: Original game uses DirectX shaders. You must use OpenGL shaders for Android build!
- Engine: OpenXRay (X-Ray Engine 1.6)
- Renderer: OpenGL ES 3.0 (native Mali GPU)
- Scripting: LuaJIT 2.1.0-beta3 (Lua 5.1 API)
- Audio: OpenAL Soft
- Physics: ODE (Open Dynamics Engine)
- Input: SDL2 touch/gamepad support
- Mali-G710 MC10: 60 FPS (native hardware acceleration)
- Mali-G52+: 30-45 FPS (OpenGL ES 3.0)
- Software rendering: Not recommended
- OpenGL ES 3.0 instead of OpenGL 4.5/DirectX
- Touch controls and gamepad support
- Optimized shaders for mobile GPUs
- Android-specific file paths
Stalker_android/
├── app/
│ ├── src/main/
│ │ ├── java/com/openxray/stalker/
│ │ │ └── MainActivity.java # GLSurfaceView activity
│ │ ├── cpp/
│ │ │ ├── jni_bridge.cpp # JNI native methods
│ │ │ ├── android_engine_wrapper.cpp
│ │ │ └── CMakeLists.txt # NDK build config
│ │ ├── AndroidManifest.xml
│ │ └── assets/ # Game data (optional)
│ └── build.gradle
├── .github/workflows/
│ └── build-apk.yml # CI/CD automation
└── README.md
- MainActivity.java - Creates OpenGL ES 3.0 surface and handles lifecycle
- jni_bridge.cpp - JNI layer between Java and C++ engine
- android_engine_wrapper.cpp - OpenXRay engine initialization wrapper
- CMakeLists.txt - Links OpenXRay libraries with Android NDK
This port uses the OpenXRay engine from:
- Repository: https://github.com/OpenXRay/xray-16
- Branch: xd_dev
- Commit: 29030f81b (Aug 14, 2026)
- OpenXRay Team - X-Ray Engine 1.6 development
- GSC Game World - Original S.T.A.L.K.E.R. series
- Standoff2bot - Android port and Mali GPU optimization
OpenXRay engine is licensed under the Modified BSD / 3-clause BSD license. See OpenXRay LICENSE for details.
S.T.A.L.K.E.R. game content is property of GSC Game World.
For issues and questions:
- Open an issue on GitHub
- Check OpenXRay wiki: https://github.com/OpenXRay/xray-16/wiki
Good hunting, Stalker! 🎮📱