MobileInfocenter

webOS DOOM Paving Way For Future SDL Ports

Since its initial release less than two days ago, development has proceeded apace on the webOS port of classic FPS DOOM. The latest news, however, has implications beyond just this particular port itself. For starters, the game no longer requires any fooling around in the Terminal to get it started: you can now load it from an icon in your launcher, just like any other app. You can also fire up multiple instances of the game in multiple cards - possibly useless in of itself, but it's great for that geek cool factor.

The technology being employed to make all this possible is the interesting part. WebOS Internals is now piggy-backing on Upstart (the Ubuntu startup manager, included with webOS) to allow webOS apps to punch in (via pre-defined scripts installed by signed, trusted apps) Linux commands on their own, which is how the Terminal has been bypassed. This new method will also enable dependencies in Upstart scripts, which will help homebrewers save precious memory on their webOS devices by not requiring all the back-end services to be running all the time. But the real kicker is that this now paves the way for all manner of SDL applications to be ported to webOS with very little effort at all - and there's hundreds out there... not to mention it can also be used to control the 1600+ Optware command-line applications available for Linux.

Article Comments

 (26 comments)

The following comments are owned by whoever posted them. PalmInfocenter is not responsible for them in any way.
Please Login or register here to add your comments.

Start a new Comment Down

I haven't read anything but here, but...

SeldomVisitor @ 1/1/2010 4:51:42 PM # Q
...doesn't this Doom et al totally violate the idea of a Web-Based application? That is, Doom as we are seeing here is a =native= application and undoubtedly interferes in SOME way the normal operation of the Pre.


RE: I haven't read anything but here, but...
DarthRepublican @ 1/1/2010 7:58:49 PM # Q
SeldomVisitor wrote:
...doesn't this Doom et al totally violate the idea of a Web-Based application? That is, Doom as we are seeing here is a =native= application and undoubtedly interferes in SOME way the normal operation of the Pre.

Define "interfere." Doom starts up like any other webOS application. It runs as a card and can be swiped away like any other webOS app. About the only difference that I noticed between Doom and a normal webOS app is that you can't bring up the Quick Launcher normally. (But the regular swipe up gesture and center button work normally.)

Now as far as Doom and other games not being "web-based applications," well that's a pretty slippery term as well. webOS's built-in PIMs are coded in HTML and Javascript and would appear to fit that criteria. But they also store their information locally on the phone which is not typical web-app behavior. Yes, I realize that local storage is part of HTML 5 but I think you see my point, webOS has been a hybrid system from the very beginning using web technologies for its applications which nevertheless run locally on your phone without needing 'net connection except to synchronize and synergize.

Given that Palm never really bothered to lock down webOS I would say that a proliferation of Linux/non-web technology apps would be inevitable. And the fact that the Classic emulator (which is far less of a web-tech app than Doom) was an early third-party webOS app suggests Palm knew that it would need to allow some native app development even if they didn't want to admit it at such an early stage of their new OS's history. And in any case, graphically intensive gaming has always traditionally required lower level access to the OS so if Palm ever had any hope of building a decent gaming device, they had to realize that they would have to eventually allow for some native app development.

Palm Apologist
Shouting down the PIC Faithful Since 2009
Screw convergence
Palm III->Visor Deluxe->Visor Platinum->Visor Prism->Tungsten E->Palm LifeDrive->Palm TX->Palm Pre
Visor Pro+VisorPhone->Treo 180g->Treo 270->Treo 600->Treo 680->T-Mobile G1->Palm Pre
http://mind-grapes.blogspot.com/

RE: I haven't read anything but here, but...
LiveFaith @ 1/1/2010 9:22:10 PM # Q
+1

SV. You are correct, but you sound kinda "glass 1/2 empty" about it. This is "glass 7/8 full" news.

More and more it is becoming clear that WebOS really is going to offer the ease and commonality that html / web app development offers, but also is going to allow integrated and truly powerful Linux core programming.

This swings open the door to the massive open source world for WebOS, while having the value added low threshold for web programming to have it's way on the platform. Palm just seems to be going about it in a backward order.

Every new detail is great news for the platform IMO.
Pat Horne

RE: I haven't read anything but here, but...
poorman @ 1/1/2010 11:06:00 PM # Q
It's not for "regular" people, but it does allow some nice homebrew stuff. Palm will not use this to allow SDK created apps access in the same way.

Also, true native apps will most likely never happen, they will just keep modifying the SDK to allow more API's that ideally will allow just about anything. (Although it's not there yet, obviously.) Ideally, it will be similar to Android at some point.

RE: I haven't read anything but here, but...
SeldomVisitor @ 1/2/2010 3:51:49 AM # Q
DarthRepublican wrote:
Doom starts up like any other webOS application...

No, it doesn't. It starts up like a native Linux application run from a commandline in a shell.

It runs as a card and can be swiped away like any other webOS app...

That appears to be a sideeffect of one or more function calls it makes to get a display area. I haven't at ALL looked into the code nor the APIs it uses but I can imagine it has to "register" something to get that display area - don't confuse User Interface or "windows manager", BTW, with "operating system". Doom is a native Linux application that asks the windows manager for somewhere to perform its User Interface magic.

Now as far as Doom...not being "web-based applications," well that's a pretty slippery term as well.

No, it's in your face blatant, as a matter of fact.

And the fact that the Classic emulator (which is far less of a web-tech app than Doom)

!!!

That's all, just !!!

And in any case, graphically intensive gaming has always traditionally required lower level access to the OS so if Palm ever had any hope of building a decent gaming device, they had to realize that they would have to eventually allow for some native app development.

No, they outright advertised for and, we should hope by now, hired API developers for HTML/Javascript-based low level access. There is not yet any hint that they have conceded that native applications are going to be necessary nor welcome in any quantity. BTW, to do so violates, as noted in the first post of this thread, the whole idea behind WebOS making it a poor also-ran. Doom, of course, has been available for quite some time on a variety of other phones as a native application - G1, Nexus, iPhone, etc etc etc (it's also "out here" somewhere as a Web-based application, too - I've played it (hmm...possibly Java applet?) at some web site within the last year).

RE: I haven't read anything but here, but...
bhartman34 @ 1/2/2010 9:40:33 AM # Q
SeldomVisitor wrote:
DarthRepublican wrote:
No, it doesn't. It starts up like a native Linux application run from a commandline in a shell.

...except for the fact that you don't launch it from the command line. That's a key difference. This eliminates at least one step: running from the Terminal app. To an end user, it is indistinguishable from a WebOS app, because they click the icon, and Doom runs. But it's actually like running a DOS program by clicking on a Windows icon.


No, they outright advertised for and, we should hope by now, hired API developers for HTML/Javascript-based low level access. There is not yet any hint that they have conceded that native applications are going to be necessary nor welcome in any quantity.

Well, "in any quantity" is an interesting modifying phrase. What's "quanity" really entail? Apps like Flash and DocsToGo and, of course, Classic are examples of apps that have been granted native access. The fact that they've hired developers for HTML/Javascript low-level access says to me that they intend to add this to the API.


BTW, to do so violates, as noted in the first post of this thread, the whole idea behind WebOS making it a poor also-ran.

Not really. The idea behind WebOS is to make building apps as easy as building Web pages, so that any HTML developer well-versed in Javascript can do it. Giving low-level access to the system through WebOS doesn't violate this idea at all. The idea of WebOS isn't "you can only do what is possible on the Web". Rather, it's "You write apps like you write Web pages." The fact that it's built on Web technologies doesn't necessarily automatically limit what you can do with it.

RE: I haven't read anything but here, but...
SeldomVisitor @ 1/2/2010 10:10:54 AM # Q
Exsqueeeeeze me - do you know the difference between "native app" and "web-based app" or are you just ignoring what I've typed because you want a debate rather than a discussion? My entire set of posts in this thread is noting and discussing that Doom is a native application launched as a native application (whether or not some developer has come up with a nice UI way to do that); Darth-etc simply was wrong and I corrected him in that long reply somewhere "up there" (with, of course, the total surprise reply-part about his "Classic" aside).

Doom is not a web-based application.

Doom is not a WebOS application.

Doom is a native application using hooks provided by the nice newly-available standardized library.

A User Interface does not define the application type.

That's all - the fact that API developers are going to make lower-level graphics et al more easily doable with WebOS web-based applications is nice, is good, is expected...and is NOT what Doom uses.

Palm has allowed, kicking and screaming all the way apparently given the comments of some major native application developers who are NOT going to develop for WebOS, only a few "native" applications. A wide-open Linux box for native application development for SURE is not something Palm has even HINTED at providing anytime soon.

RE: I haven't read anything but here, but...
SeldomVisitor @ 1/2/2010 10:20:50 AM # Q
Minor aside - Palm and Apple and maybe others restrict native applications. It is my solid belief they do this not because they want to be draconian but because they actually have good reasons for it - anything from security to robustness to whatever.

Though I think it would be neato to have wide open small computers, I (sort of) understand the need to lock them down AND I support that thought until such time as the wrinkles (probably through the use of multiple processors) can be worked out.


RE: I haven't read anything but here, but...
bhartman34 @ 1/3/2010 6:52:58 AM # Q
SeldomVisitor wrote:
Exsqueeeeeze me - do you know the difference between "native app" and "web-based app" or are you just ignoring what I've typed because you want a debate rather than a discussion?

I'm not ignoring what you typed. I'm actually trying to make a distinction between a purely Linux-based app, and one that is run through WebOS. This implementation of Doom is a Linux app being run through WebOS. That's what makes it a big deal, from a WebOS development standpoint. Doom is a Linux application being run through WebOS, not a command line application. A command line application requires a command line. When you double-click the Firefox icon in Windows, it runs firefox.exe, but that doesn't make Firefox a command line app.

I would agree that it seems obvious to me that Doom isn't a Web app, but that's because it has nothing to do with the Web. It runs entirely on the phone. It's a Linux app inside a WebOS wrapper.



My entire set of posts in this thread is noting and discussing that Doom is a native application launched as a native application (whether or not some developer has come up with a nice UI way to do that); Darth-etc simply was wrong and I corrected him in that long reply somewhere "up there" (with, of course, the total surprise reply-part about his "Classic" aside).

I understand what you're saying, but this isn't starting like a native Linux application from the command line. The command line or terminal never come into play here. WebOS is running a Linux binary file. Again, it's no different than running an EXE file in Windows.


Doom is not a web-based application.

Doom is not a WebOS application.

This port of Doom is a WebOS application. You can open up the source and look at it yourself. It calls on binaries written for Linux, but WebOS itself is based on Linux. You're mistaking the programming language for the platform.


Doom is a native application using hooks provided by the nice newly-available standardized library.

Doom is an application modified to run inside WebOS. The difference between it, and say, FriendsFlow, is that FriendsFlow contains only HTML, CSS and Javascript, whereas Doom contains binary files. Strictly speaking, it's a hybrid application.


A User Interface does not define the application type.

That's all - the fact that API developers are going to make lower-level graphics et al more easily doable with WebOS web-based applications is nice, is good, is expected...and is NOT what Doom uses.

Here's the description of SDL (which Doom uses) from the SDL page:

Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."

SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. The code contains support for AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, and OS/2, but these are not officially supported.

That certainly sounds like libraries supporting low-level device support to me.


Palm has allowed, kicking and screaming all the way apparently given the comments of some major native application developers who are NOT going to develop for WebOS, only a few "native" applications. A wide-open Linux box for native application development for SURE is not something Palm has even HINTED at providing anytime soon.

I think by now it's obvious that Palm's leadership has changed their mind on this. You can see the changes in 1.3.5 to verify this. And apparently, as per another article on PIC today, it's possible to get OpenGL running now, and native access is around the corner, according to this article:

http://www.palminfocenter.com/news/10016/palms-native-webos-app-secrets-revealed

I think that before 1.3.5 reared its head, you would've been on solid ground to say that native access wasn't coming. But as of right now, I'd say the cat's out of the bag on native access. It's in 1.3.5.

You can certainly argue that Palm flip-flopped on the issue, I guess, but it looks like they came out on the right side of it, after all.

RE: I haven't read anything but here, but...
SeldomVisitor @ 1/3/2010 7:17:45 AM # Q
Native applications run alongside WebOS, not in it. If those native applications are "nice", they use APIs that work through WebOS (and/or the UI manager). But because they're native applications, they pretty much can do what they want on equal footing with WebOS.

Doom runs on the Core Linux implementation - it interacts with the UI via standardized calls - I haven't looked at those calls but can assume they work through WebOS or the UI manager; the "card" stuff with Doom is a fairly good datapoint that they do.

Because native applications (the ones that are NOT hand-picked by Palm) are relatively powerful compared to WebOS script-based applications, I would humbly suggest they are not now nor for the foreseeable future part of Palm's plans.

===========

I went back to Chapter 1 (the only chapter I've read) of the WebOS book to see where approved and native applications fit into Palm's design page 18+ has some nice diagrams.


RE: I haven't read anything but here, but...
bhartman34 @ 1/3/2010 7:54:50 AM # Q
Native applications run alongside WebOS, not in it. If those native applications are "nice", they use APIs that work through WebOS (and/or the UI manager). But because they're native applications, they pretty much can do what they want on equal footing with WebOS.

What exactly does "run alongside WebOS" mean? WebOS is the interface and programming language. There's no way to "run alongside" it. Everything happens inside WebOS, or it's not visible to the user (i.e, it's got to throw up a card within WebOS, got to end when WebOS tells it to end (through a discard of the card), etc.). The relationship, as far as I can tell, is analogous to a DOS window living inside Windows. The app can't be on "equal footing" with WebOS, because WebOS has to tell the app when to stop and start, what to do when in card view, etc.

Because native applications (the ones that are NOT hand-picked by Palm) are relatively powerful compared to WebOS script-based applications, I would humbly suggest they are not now nor for the foreseeable future part of Palm's plans.

What's your theory on what has been seen within the latest WebOS update? From what I've read here, it seems evident that Palm is ready to let at least games run on a lower level.

As further evidence of this, I would point to Palm's recent decision to allow developers to distribute apps outside of the catalog. Palm isn't even checking these apps. You simply submit the app to Palm, and they send you a URL to distribute it with. No vetting involved. This would seem to me to be proof positive that Palm isn't going to be the control freak that say, Apple is. Yes, a smaller subset of apps will live in the App Catalog, but power users will be able to download more powerful apps that don't adhere to Palm's standards (e.g., "no using undocumented services", etc.).

Of course, I would expect Palm to allow many of the lower-level apps into the catalog, just because to do so would make the catalog more attractive to users, but the alternate distribution route means that even for apps that go beyond what is thought wise by Palm, there will still be a channel for them to flow through.

RE: I haven't read anything but here, but...
SeldomVisitor @ 1/3/2010 8:25:35 AM # Q
I'd refer you again to the first chapter of that WebOS book and what it means to be a "native application".

========

Nothing has been seen w.r.t. the latest WebOS update. We've always known there are APIs for various things at the lowest level, now we have a better idea what they are and aren't under NDAs about them like the few hand-picked software developers have been.

========

I still believe, strongly, that the Palms and Apples of the world restrict native applications because the interference those applications can have with critical phone functionality requires it, not because the Palms and Apples of the world are control freaks.

Maybe someone should call a phone running doom and see what happens.

Or have a calendar notification pop up.

Or both!

Or something.


RE: I haven't read anything but here, but...
bhartman34 @ 1/3/2010 6:38:47 PM # Q
SeldomVisitor wrote:
I'd refer you again to the first chapter of that WebOS book and what it means to be a "native application".

That WebOS book was finished before the initial SDK was even done. There are things that the book tells you to do that don't work with the SDK as-is.

Nothing has been seen w.r.t. the latest WebOS update.

We've always known there are APIs for various things at the lowest level, now we have a better idea what they are and aren't under NDAs about them like the few hand-picked software developers have been.

I think we know more than that. My reading of this article

http://www.palminfocenter.com/news/10016/palms-native-webos-app-secrets-revealed/

tells me that developers now know how to run native apps within WebOS without any special access granted from Palm.

To whit:

How's it done? Rather simply, actually. All a developer needs to do is install the application's files and include a webOS-standard appinfo.json file, which tells webOS everything about a particular app. By setting the type to "game" and pointing to a binary executable (rather than the usual index.html a typical webOS app is based around) webOS 1.3.5 will happily throw your new native, SDL-based Linux program into a card, ready to do your bidding.

That's about as clear as I think it can be that Palm intends WebOS as it stands right now to be able to run native applications.


I still believe, strongly, that the Palms and Apples of the world restrict native applications because the interference those applications can have with critical phone functionality requires it, not because the Palms and Apples of the world are control freaks.

I think that that's a legitimate reason to be cautious with native code, and it may indeed be why Palm has hesitated to allow native applications to load into WebOS, but as of right now, unless there's some other piece of information I'm missing from this, it appears that the floodgates are opening (not open, necessarily, since this approach hasn't been documented by Palm themselves, but at least opening).


Maybe someone should call a phone running doom and see what happens.

Or have a calendar notification pop up.

Or both!

Or something.

Admittedly, that'd be an interesting experiment. I wouldn't expect anything bad to happen, since, as I said, it appears to me that these Linux apps are running inside a WebOS environment, but I suppose that there's always the chance that they could slow the phone down enough to make one or the other systems dicey. I'm actually curious enough about this that I'll try that as an experiment and let you know how it goes. Calling my Pre while I have Doom running shouldn't be that tough of an experiment to carry out.

RE: I haven't read anything but here, but...
Tim Carroll @ 1/3/2010 7:24:58 PM # Q
According to Rod Whiby, landscape notifications (enabled in webOS 1.3.5) still pop up on the screen when playing Doom...
RE: I haven't read anything but here, but...
bhartman34 @ 1/4/2010 11:10:49 AM # Q
I called my Pre while playing Doom. I got notified that a call was coming in, and was able to dismiss it. The notification that I had an e-mail (because I have Google Voice set up) came some time later, so I wasn't able to see how that interacted with Doom.

Would I expect to have Quake, Pandora, and 5 other cards open at the same time? Probably not, but that's more of a memory issue. I see no evidence so far that running these kinds of apps are going to destabilize WebOS more than running any other app would.

I do think there are security implications, considering the fact that native apps can do more powerful things than WebOS apps are designed to do, but I suspect that the SDK will have some security measures in place so that, for example, you don't download an app that can remount your drive in developer mode and delete your /media folder. Without proper controls, there is that danger, I think.


RE: I haven't read anything but here, but...
SeldomVisitor @ 1/4/2010 11:40:37 AM # Q
A thread over on Precentral started by a guy complaining about not being able to run Doom nor Quake suggests there is interference with something internal to WebOS by the newly-revealed library.

RE: I haven't read anything but here, but...
bhartman34 @ 1/4/2010 2:33:02 PM # Q
I'm not sure which post you're talking about, but I suspect if someone is unable to run Doom or Quake, it's because of a third-party app they've added to the phone, rather than anything internal to WebOS. I've got both running on my phone, and there've been no problems so far.

From what I've read here:

http://forums.precentral.net/webos-internals/222222-quake-7.html

It seems to me that the inability to run Doom or Quake is related to the MyTether homebrew app. I'm not versed enough in either Doom or Quake to know what MyTether has to do with either, but that's where the comments seem to be focusing.

RE: I haven't read anything but here, but...
DarthRepublican @ 1/4/2010 4:12:02 PM # Q
bhartman34 wrote:
I'm not sure which post you're talking about, but I suspect if someone is unable to run Doom or Quake, it's because of a third-party app they've added to the phone, rather than anything internal to WebOS. I've got both running on my phone, and there've been no problems so far.

From what I've read here:

http://forums.precentral.net/webos-internals/222222-quake-7.html

It seems to me that the inability to run Doom or Quake is related to the MyTether homebrew app. I'm not versed enough in either Doom or Quake to know what MyTether has to do with either, but that's where the comments seem to be focusing.

I love the My Tether app but it doesn't exactly play nice with others. Under webOS 1.3.1 and 1.3.5 the My Tether app only works for Bluetooth and USB tethering. For wifi tethering, My Tether patches the OS in a way that disables among other things, the camera and video player. It's not a huge stretch to believe that it would also disable something like SDL.
Palm Apologist
Shouting down the PIC Faithful Since 2009
Screw convergence
Palm III->Visor Deluxe->Visor Platinum->Visor Prism->Tungsten E->Palm LifeDrive->Palm TX->Palm Pre
Visor Pro+VisorPhone->Treo 180g->Treo 270->Treo 600->Treo 680->T-Mobile G1->Palm Pre
http://mind-grapes.blogspot.com/

Reply to this comment

Ignorant

vetdoctor @ 1/1/2010 5:25:16 PM # M Q
Can you explicate for the ignorant? What's cool about Optware?
RE: Ignorant
DarthRepublican @ 1/1/2010 8:05:31 PM # Q
vetdoctor wrote:
Can you explicate for the ignorant? What's cool about Optware?

High nerd factor.
Palm Apologist
Shouting down the PIC Faithful Since 2009
Screw convergence
Palm III->Visor Deluxe->Visor Platinum->Visor Prism->Tungsten E->Palm LifeDrive->Palm TX->Palm Pre
Visor Pro+VisorPhone->Treo 180g->Treo 270->Treo 600->Treo 680->T-Mobile G1->Palm Pre
http://mind-grapes.blogspot.com/

RE: Ignorant
bhartman34 @ 1/1/2010 10:33:34 PM # Q
I would say it's more than just "nerd factor", because some Optware apps are actually useful. Here are some examples:

1) Using cron, you can schedule a program to run at a certain time every day. You could use this to do automatic backups at a time of your choosing.

2) You can have a text editor that creates txt files.

3) Using CUPS, you could set up your Pre or Pixi to print to a printer.

4) You could have your own Web server on your Pre or Pixi via Apache. This might sound ridiculous, but it might actually have practical implications. Using Apache and PHP, you can write some pretty powerful Web applications that live entirely on the phone. That could fundamentally change how apps are written for WebOS.

You can find the full list of optware packages here.


RE: Ignorant
bhartman34 @ 1/1/2010 10:34:59 PM # Q
bhartman34 wrote:
I would say it's more than just "nerd factor", because some Optware apps are actually useful. Here are some examples:

1) Using cron, you can schedule a program to run at a certain time every day. You could use this to do automatic backups at a time of your choosing.

2) You can have a text editor that creates txt files.

3) Using CUPS, you could set up your Pre or Pixi to print to a printer.

4) You could have your own Web server on your Pre or Pixi via Apache. This might sound ridiculous, but it might actually have practical implications. Using Apache and PHP, you can write some pretty powerful Web applications that live entirely on the phone. That could fundamentally change how apps are written for WebOS.

You can find the full list of optware packages here.

Sorry. I forgot you couldn't include HTML anchor tags. Here's the link:

http://www.dd-wrt.com/wiki/index.php/Quick_list_of_Optware_packages

RE: Ignorant
SeldomVisitor @ 1/2/2010 4:00:03 AM # Q
I thought/think there already IS a "web server" on the Pre.

RE: Ignorant
bhartman34 @ 1/2/2010 6:12:55 AM # Q
Actually, it's already possible to put a Web server on WebOS, but it hasn't always been here. Here's an old article about putting it on the Pre:

http://www.precentral.net/palm-pre-webserver-go


Optware makes it possible, and the fact that you can invoke this stuff without getting into a terminal is the big deal. It means you can much more powerful things much easier than was possible before.

Hell, it might even be possible to get OpenGL libraries running this way, although I'm not sure. Does anyone know if that's possible? :)

Reply to this comment

Android

vetdoctor @ 1/2/2010 7:46:49 AM # M Q
Android is Linnux yes? Can't it already do all this since its an "open" platform? I don't read android pages but it seems they'd be light years ahead on this.
RE: Android
SeldomVisitor @ 1/2/2010 7:50:03 AM # Q
Yes, Doom runs on Android - do a quick google of, say, "doom android" or "doom linux".

Ah, nevermind, here're those googles for ya!

http://www.google.com/search?q=doom+android

http://www.google.com/search?q=doom+linux

Reply to this comment
Start a New Comment Thread Top

Account

Register Register | Login Log in
user:
pass: