Technical Questions on Ren'Py Android and x86 Linux

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Post Reply
Message
Author
SvenTheViking
Regular
Posts: 65
Joined: Thu Dec 29, 2011 4:19 am
Projects: Chronicles of the Timetraveler's Wars
Organization: ProgMan Productions; Polymorphic Games
Location: Oregon
Contact:

Technical Questions on Ren'Py Android and x86 Linux

#1 Post by SvenTheViking »

So, I've been wondering, why are there apparently major differences in the capabilities of the Android version and the x86 version of Ren'Py? Is it simply because of a lack of support on the Android end of things (meaning a lack of required features in the Android OS itself) that seems to be limiting it? Also, does the Android version support the same keyboard input as the x86 version (would it work if I were to, say, build an adapter which let me plug a keyboard into my Android device (which will work on the OS end of things, I've been assured by many people))?

From what I know of Android and of Linux in general, it shouldn't be too terribly impossible to build a secondary package that contains a number of the features which may not exist on Android. Unfortunately, I won't be able to test this theory until I get an Android device, hopefully within the next two weeks.

I ask mostly because I'm insane (I've considered making a C# version for deploying Ren'Py games on the XNA framework, so you can play them on your Windows Phone, Zune, or Xbox 360) and want to start tinkering about with things to see what I can get working, and while I may be able to find the answers by digging through the documentation (which I'll do anyway), I'd start this thread eventually, anyway, so I'd like to get the most up-to-date answer possible.

Thanks in advance.
"Be not afraid of greatness: some men are born great, some achieve greatness, and some have greatness thrust upon them."
William Shakespeare, "Twelfth Night"

User avatar
DaFool
Lemma-Class Veteran
Posts: 4171
Joined: Tue Aug 01, 2006 12:39 pm
Contact:

Re: Technical Questions on Ren'Py Android and x86 Linux

#2 Post by DaFool »

The current state is as follows:
*Imagedissolves and some other fancy effects disabled on Android.
*AFAIK most input functionality is preserved (not sure about joystick though).
*You have a Launcher that can play any simple Ren'Py game as long as you grab the /game directory and stuff it into your SD card; however
*to make a purpose-built APK, you'll need to go through a few device certification hoops, and PyTom is working on some service that does that. Right now, all the custom Android renpy builds are made with special request.

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Technical Questions on Ren'Py Android and x86 Linux

#3 Post by PyTom »

SvenTheViking wrote:So, I've been wondering, why are there apparently major differences in the capabilities of the Android version and the x86 version of Ren'Py? Is it simply because of a lack of support on the Android end of things (meaning a lack of required features in the Android OS itself) that seems to be limiting it?
It depends on the feature.

Non-fullscreen movies will be difficult to get working. On a slow device like an Android device, we want to use hardware acceleration for movies. I don't think there's a way to get the raw video playing and combine it with the usual output, so we'll likely never have a sprite overlaying a movie. Fullscreen video is possible - I need to program it at some point.

ImageDissolve isn't possible, right now, since we're using OpenGL ES 1. OpenGL ES 1 requires only a small number of texture environments - IIRC, 2 - and we need 3 or 4 for ImageDissolve to work. We do have an OpenGL ES 2 renderer, but right now there isn't code to set up an OpenGL ES 2 environment - the environment setup code is in Java, which only has access to ES1 at the moment. ES 2 is doable, though, so imagedissolve will happen eventually.
Also, does the Android version support the same keyboard input as the x86 version (would it work if I were to, say, build an adapter which let me plug a keyboard into my Android device (which will work on the OS end of things, I've been assured by many people))?
I haven't tried it, but I think it should. If not, it would be easy to make it work.
I ask mostly because I'm insane (I've considered making a C# version for deploying Ren'Py games on the XNA framework, so you can play them on your Windows Phone, Zune, or Xbox 360) and want to start tinkering about with things to see what I can get working, and while I may be able to find the answers by digging through the documentation (which I'll do anyway), I'd start this thread eventually, anyway, so I'd like to get the most up-to-date answer possible.
A C# port would be very difficult. Android works because the NDK lets you run C code - Python is written in C, Cython code compiles to C, and Ren'Py is written in Python, Cython, and C. I don't know how to make a C# port work without rewriting everything.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Post Reply

Who is online

Users browsing this forum: Google [Bot]