My previous post was too verbose, so I’ve shortened it: Any thoughts on interfacing the Quixe interpreter with a hybrid HTML5 display layer for mobile device deployment?
You want to run a game via an executable instead of as a web page? Most likely possible - but why?
I guess I don’t understand the question. What is a hybrid HTML5 display layer? All the mobile browsers are standard HTML5 (via Webkit, mostly).
If you want to create a mobile app that is Quixe in a thin native-code shell, that should be easy. I’m doing that with Electron for desktop.
The one caveat is that Quixe can be uncomfortably slow on mobile.
In a nutshell, I guess I was thinking about what it would take to use only the Quixe interpreter code inside an optimized, mobile device oriented, front end.
@Spoff, one aspect was to be able to distribute IF works without the need to connect to the 'net other than to download it. Like installing an .apk file for Android. Also, I was thinking that using a display layer based on HTML5 might circumvent some of the bugaboos with trying to get consistent display results across a wide variety of devices. It might be possible to dispense with a browser component altogether. Ionic: ionicframework.com/ has a very well developed hybrid HTML5 UI API than might ease some of those display issues for instance.
I’ve been researching various methods for distributing a mobile application I’m working on and I thought about how it might benefit Inform IF gaming too. It seems that when it comes to getting IF out into the mobile market, efforts generally wax and wane and then blink out of existence. (The native Android port is dead AFAIK) I could be entirely wrong about the need for doing it, but better to ask questions than to leave doubts …
And … I hadn’t thought about speed. I can imagine a fairly large IF work might be simply too slow on a mobile device. The bottleneck is in the interpreter?
A lot of people like putting their websites into ‘apps’, but I never really understood what should be gained. That said, I must admit that I don’t understand the concept you are describing at all, so please, don’t take what I write too seriously!
Still - most online IF i have seen has shown little interest in interface design, so maybe it’s overkill to put effort into getting ‘consistent display results’ when the authors don’t care much about the appearence in the first place?
But I think putting if-games out on various platform-specific ‘Stores’ could potentially open up to an entirely new audience! Also, there is a great deal of mental difference between having the game as a real program, versus “just” playing it in a browser.
No worries. I don’t know if what I’m after is serious either. Sometimes I’m just struck with an idea …
Part of me sees a potential “renaissance” for IF. I remember the “good old says” of text based adventuring, first on my C64, then my PC. I think IF would be more accessible to new players if they could simply download and install games on their mobile devices. While a lot of games can be played in the browser while they are connected to the 'net I’d like to see a “download and play” (client-side) alternative. I guess if a person makes a few $$$ along the way, that’s not a bad thing either.
I’m wondering if Quixe could be pared down to it’s essential file handling and interpreter components, to be used as a plugin within other display frameworks. According to the Github page, yes it can but it would take some work.
Yeah, just to add on to the OP’s question/response.
Ionic is a very popular cross-platform delivery system for mobile apps. It uses Angular and allows you to create a web-based mobile app and deploy it to any target device/OS and have it all look and feel the same and work the same. We use it extensively at my client and have had a lot of success.
Then again, it’s not trivial to work with. You need to be a fairly savvy programmer to work through some of the greater challenges, like integrating Quixe into Ionic.
It may be that glulx-typescript is more appropriate for this work than Quixe.
@David, I’m glad to hear about your success with Ionic. I’ve been researching some mobile UI APIs and it’s on my short list for a couple of projects.
My testing on Android’s Google Chrome browser shows it to be pretty fast. I used Inform 7 to build Bronze and tried it with Parchment and it was faster than the Java code in Android-native Incant engine on Android 7.0 device. When you first start Bronze it asks if you are new to interactive fiction and there is a pause as it does some processing before the prompt. Quixe seemed to run this in just a few seconds on a two year old Android phone. Not sure how much faster things can get without resorting to using native C/C++ compiled code.
Since we are talking pure Glulx - Android is pretty weak from reading here. Twisty doesn’t seem to get polished in Glulx form. I found Incant, but it seems to have gotten little attention. It does run a lot of Glulx games I tried.
I did experiment with your general idea. I shoved Quixe via Parchment into a internal WebView of Android on the latest Android 7.0 release. It runs plenty fast, much faster than Incant on testing Bronze’s startup game code. Other complex games, such as Rover’s Day Out work equally well on Incant as they do with Quixe on Android - so it’s a matter of how CPU intensive the engine is. But pulling HTML5 out of Quixe does work based on testing I have done.
If your desire is to be strong on iPhone - you might want to make it specific to that platform due to exclusive Glulx options.