LÖVELINESS a LÖVE Chrome Extension

Discuss any ports of LÖVE to different platforms.
leafo
Prole
Posts: 28
Joined: Tue Aug 16, 2011 6:01 am

Re: LÖVELINESS a LÖVE Chrome Extension

Post by leafo » Fri Apr 26, 2013 6:26 pm

This looks really great. This is what I tried with my game engine aroma, http://leafo.net/aroma/ but I gave up before implementing all of love's api. (love didn't use es 2.0 when I started the project so I was essentially rewriting love from scratch). I'll give yours a shot with running my ludum dare games.

When I wrote aroma I noticed that the nacl opengl drawing performance was pretty bad. Drawing operations were maybe a 10th of what love standard was getting. Did you notice this at all? This was kind of depressing, I was about to ditch nacl and try developing a more traditional browser plugin. It was only drawing operations, lua itself ran about the same speed.

Anyway, great job! I was really excited when I learned slime was porting love to es 2 because I knew this would come out of it.

There's a lot of potential for doing cool stuff with this. I even integrated google analytics into my engine so I could track game events directly from Lua. :cool:

User avatar
binji
Prole
Posts: 32
Joined: Fri Apr 26, 2013 9:43 am
Contact:

Re: LÖVELINESS a LÖVE Chrome Extension

Post by binji » Fri Apr 26, 2013 9:04 pm

leafo wrote:Drawing operations were maybe a 10th of what love standard was getting.
You have to be careful with glGet*, those take a really long time to run because they're not asynchronous. Usually if you're seeing low framerate where you expect more, try remove all your glGetError calls. That often produces a nice speedup! :)
leafo wrote:There's a lot of potential for doing cool stuff with this. I even integrated google analytics into my engine so I could track game events directly from Lua.
Totally agree, mostly I just wanted to get this out there so people could play with it and give feedback... but I have a few ideas about how to make this a pretty slick experience. :D
[[LÖVE Chrome Extension]]
LÖVELINESS
Examples page
Github project page

User avatar
Ragzouken
Citizen
Posts: 84
Joined: Fri Aug 10, 2012 7:59 am
Contact:

Re: LÖVELINESS a LÖVE Chrome Extension

Post by Ragzouken » Fri Apr 26, 2013 11:03 pm

Looking pretty good. Is there a list of unsupported features anywhere? So far I see #include in the shader compiler and stencils are missing?

User avatar
slime
Solid Snayke
Posts: 2842
Joined: Mon Aug 23, 2010 6:45 am
Location: Nova Scotia, Canada
Contact:

Re: LÖVELINESS a LÖVE Chrome Extension

Post by slime » Sat Apr 27, 2013 12:33 am

Ragzouken wrote:Looking pretty good. Is there a list of unsupported features anywhere? So far I see #include in the shader compiler and stencils are missing?
Stencils work. #include in shaders was removed shortly after 0.8.0 was released, for whatever reason. It didn't work as people might expect, anyway.
ColorModes don't work in OpenGL ES 2, but they aren't useful anyway so that's okay (they're also being removed for 0.9.0) - everything that can be done with setColorMode can be done with setColor or Shaders.

I've only done a bit of testing of the ES2 stuff on iOS, so it's good to see (your version of it) works with most games. :)

User avatar
easy82
Party member
Posts: 184
Joined: Thu Apr 18, 2013 10:46 pm
Location: Hungary

Re: LÖVELINESS a LÖVE Chrome Extension

Post by easy82 » Sat Apr 27, 2013 9:05 am

Guys, this is awesome news! :D Thank you for your work!

So does this mean that we can run LÖVE games on IPhone, IPad, Android in addition to Linux, Windows and Mac?
Do you have a list of features or limitations somewhere?

I'm going to test this asap in my Chrome on Linux.

User avatar
easy82
Party member
Posts: 184
Joined: Thu Apr 18, 2013 10:46 pm
Location: Hungary

Re: LÖVELINESS a LÖVE Chrome Extension

Post by easy82 » Sat Apr 27, 2013 9:38 am

Wow, it really works! :) I'm testin it on Linux Mint 13 (Ubuntu based), Chrome version 26.0.1410.63.

- I did not have to turn on that Native flag.
- Mouse pointer is misplaced in Metaballs example (probably due to that the LÖVE window is placed to the middle of the browser window).
- It seems to be fast!
- It plays sound and music!
- Mousewheel does not work in Particles example.
- Sinescroller example is laggier than the original, at least here.
- Games load quickly!
- Ortho Robot was a little bit slower but Mari0 and IYFCT run just fine.
- Mouse aiming is all right in Mari0.
- Printing text seems to be slow.

I really like it! :)

User avatar
binji
Prole
Posts: 32
Joined: Fri Apr 26, 2013 9:43 am
Contact:

Re: LÖVELINESS a LÖVE Chrome Extension

Post by binji » Sat Apr 27, 2013 9:50 am

easy82 wrote:So does this mean that we can run LÖVE games on IPhone, IPad, Android in addition to Linux, Windows and Mac?
Unfortunately, Native Client only runs on desktop Chrome -- that means, Linux, Windows, Mac, ChromeOS only.
easy82 wrote:Do you have a list of features or limitations somewhere?
I'm tracking bugs on the github page. Off the top of my head, the major limitations right now are: love 0.8 only, no persistent storage, no luasocket.

I haven't done extensive testing, but most .love files should work. Some require modifying the shaders (for example the Snayke demo). If you find some that are completely broken, please file a bug!
[[LÖVE Chrome Extension]]
LÖVELINESS
Examples page
Github project page

User avatar
bartbes
Sex machine
Posts: 4944
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: LÖVELINESS a LÖVE Chrome Extension

Post by bartbes » Sat Apr 27, 2013 10:12 am

binji wrote:no persistent storage
I remember that in the webplayer he (we? I seem to remember playing a role in this bit) eventually used localStorage to simulate a filesystem, is this not possible from NaCl, too?

User avatar
binji
Prole
Posts: 32
Joined: Fri Apr 26, 2013 9:43 am
Contact:

Re: LÖVELINESS a LÖVE Chrome Extension

Post by binji » Sat Apr 27, 2013 10:38 am

Definitely possible, I just haven't implemented it yet. :D

More technical info: NaCl can access the html5 filesystem, which supports a persistent store. The trouble is that love2d uses physfs, which expects to be able to call readdir() and stat() on a directory, which isn't currently supported by the Native Client API (it's currently being implemented). There are ways to work around this, but none are trivial (and I kinda wanted to get this out there... ^^ )
[[LÖVE Chrome Extension]]
LÖVELINESS
Examples page
Github project page

User avatar
easy82
Party member
Posts: 184
Joined: Thu Apr 18, 2013 10:46 pm
Location: Hungary

Re: LÖVELINESS a LÖVE Chrome Extension

Post by easy82 » Sat Apr 27, 2013 10:52 am

binji wrote:
easy82 wrote:So does this mean that we can run LÖVE games on IPhone, IPad, Android in addition to Linux, Windows and Mac?
Unfortunately, Native Client only runs on desktop Chrome -- that means, Linux, Windows, Mac, ChromeOS only.
easy82 wrote:Do you have a list of features or limitations somewhere?
I'm tracking bugs on the github page. Off the top of my head, the major limitations right now are: love 0.8 only, no persistent storage, no luasocket.

I haven't done extensive testing, but most .love files should work. Some require modifying the shaders (for example the Snayke demo). If you find some that are completely broken, please file a bug!
Ah, I see! Still really awesome! :) Thanks for the link, I'll definately keep an eye on this project.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests