OpenXRay / xray-16

Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)
https://discord.gg/sjRMQwv
Other
3.06k stars 457 forks source link

Android port? #643

Open merpysoup opened 4 years ago

merpysoup commented 4 years ago

After project s.t.a.l.k.e.r died this is the biggest hope for an android port, which would be awesome. Morrowind has had an Android port for a very long time, so I believe that an android port will create plenty of publicity and allow more people to start working on OpenXRay.

Android runs on opengl and vulkan mostly, right? and plenty of Linux operating systems are ARM based so I think an Android port would be very awesome.

Android port will create more publicity and supporters for the project, and will give windows users a reason to check this out.

ghost commented 4 years ago

Morrowind exists as open source projects with many coders who help to implement stuff. But thinking about that, they are re implement all stuff just from scratch. For the stalker this experience doesn't work, because OpenXRay team need more programmers or something else.

Just do port on this engine can't be real at this point. Someday and someone...

lonelyfootpad commented 4 years ago

I've tested Morrowind on android but I can't say I've played it. I doubt I'd play something like this on android either. I don't know if it is even feasible to port something like this. It'd probably have to be a separate project that is a dedicated build from scratch to recreate the game for android rather than trying to port this codebase.

kotleni commented 3 years ago

I'm working on it. I managed to run the engine to the main menu.

kotleni commented 3 years ago

После смерти проекта stalker это самая большая надежда на порт для Android, и это было бы здорово. В Morrowind уже очень давно есть порт для Android, поэтому я считаю, что порт для Android создаст много рекламы и позволит большему количеству людей начать работать над OpenXRay.

Android в основном работает на opengl и vulkan, верно? и многие операционные системы Linux основаны на ARM, поэтому я думаю, что порт Android был бы очень крутым.

Перенос Android повысит популярность проекта и поддержит его, а также даст пользователям Windows повод проверить это.

That's right, Android works with OpenGL - but its mobile version (OpenGLES). Moving from OpenGL to OpenGLES rendering is not an easy task. If you make it work on a smartphone, then only write your own implementation.

Nobody wants to do this for free.

Xottab-DUTY commented 3 years ago

I'm gradually working on refactoring renderers for unifying, modernizing (e.g. getting rid of D3DX) and improvement (e.g. proper frame graph instead of CRenderTarget class) purposes. Someday, I'll get to OpenGL ES as a consequence of these refactorings...

By the way, a man from our discord managed to run the game on ARM tablet. That tablet had Linux installed, not Android, but it's still a huge progress!

kotleni commented 3 years ago

Я постепенно работаю над рефакторингом рендереров для унификации, модернизации (например, избавления от D3DX) и улучшения (например, правильного графа кадра вместо CRenderTargetкласса) целей. Когда-нибудь я доберусь до OpenGL ES в результате этих рефакторингов ...

Кстати, человеку из нашего раздора удалось запустить игру на планшете ARM. На этом планшете был установлен Linux, а не Android, но это все еще огромный прогресс!

Насчет arm сборки, можешь связать меня с этим человеком?

Xottab-DUTY commented 3 years ago

By the way, a man from our discord managed to run the game on ARM tablet. That tablet had Linux installed, not Android, but it's still a huge progress!

Насчет arm сборки, можешь связать меня с этим человеком?

Screenshot by @KiralyCraft, he is the person who managed to run the engine :)

OpenXRay on ARM Linux (link to the message)

GerKaYZeR commented 2 years ago

Доброго времени суток Товарищи! Проект жив? Я просто хотел бы примкнуть к вашей команде в программировании я конечно слаб но в дизайне что то и могу просто стоит показать что надо делать и я справлюсь. Кто то говорил что нужно конвертировать с OpenGL в OpenGLES так я могу бесплатно свободного времени у меня каждый вечер.

Godlux commented 7 months ago

https://www.youtube.com/watch?v=HiikRqjkhdE

Can we do something with this to make this port happen?

Xottab-DUTY commented 7 months ago

youtube.com/watch?v=HiikRqjkhdE

Can we do something with this to make this port happen?

With this – nothing. The video just shows the original game being run in some kind of emulator. (technically it's not, but for simplicity I'll call it an emulator) To make it "not emulated", we need to port the code to Android and implement proper touch screen support and proper input controls. That's a bunch of programming work.

Godlux commented 7 months ago

Yeah, part of "not emulator" means that maybe we can use this like a docker (environment to run OpenXRay). There is a arm wine, OpenXRay can be built for arm64 (i've done this for my NS). So the question is "can we using this tools create environment to run OpenXRay as native as possible, avoiding bunch of programming work?"

Xottab-DUTY commented 7 months ago

Yeah, part of "not emulator" means that maybe we can use this like a docker (environment to run OpenXRay). There is a arm wine, OpenXRay can be built for arm64 (i've done this for my NS). So the question is "can we using this tools create environment to run OpenXRay as native as possible, avoiding bunch of programming work?"

Weell! That's interesting!

I think this should be possible then. But I have no experience with Docker and Android overall. Maybe there's someone lurking around for an interesting challenge to do... :D

strikersix23 commented 2 months ago

I was just reading through this and saw the opengl part for that there's gl4es which as an wrapper library. Source code is here

https://github.com/ptitSeb/gl4es

It's just a suggestion to use it as an alternative to fully porting the renderer to opengl

tudor07 commented 1 week ago

The engine uses DirectX, wouldn't it be easier to use something like DXVK to target Vulkan? Vulkan already works on Android. Wouldn't this be easier than re-writing the engine to use OpenGL ES instead of OpenGL?

kotleni commented 1 week ago

The engine uses DirectX, wouldn't it be easier to use something like DXVK to target Vulkan? Vulkan already works on Android. Wouldn't this be easier than re-writing the engine to use OpenGL ES instead of OpenGL?

You're right! It's true, and useful not only for Android port :)

strikersix23 commented 1 week ago

The engine uses DirectX, wouldn't it be easier to use something like DXVK to target Vulkan? Vulkan already works on Android. Wouldn't this be easier than re-writing the engine to use OpenGL ES instead of OpenGL?

The issue is it's going to be converting an older version not to mention dxvk is an native adaptation to windows/pe librarys and can use dolls to link to wine. The issues with dxvk would be an an rewrite to the dxvk itself even with with the steam sniper build(native library and headers) but you would most likely be running on an unsupported Vulcan version dxvk requires 1.3 while most androids use 1.1 unless would have an adreno gpu which thanks to adreno tools would be possible to run 1.3 Vulkan without su. Which means using a dynamic driver interface for android

It would take a lot either way

strikersix23 commented 1 week ago

The engine uses DirectX, wouldn't it be easier to use something like DXVK to target Vulkan? Vulkan already works on Android. Wouldn't this be easier than re-writing the engine to use OpenGL ES instead of OpenGL?

You're right! It's true, and useful not only for Android port :)

Basic level yes. Actually implementation no