Yae - Game engine for MoonScript, in MoonScript

Discuss any ports of LÖVE to different platforms.
User avatar
SiENcE
Party member
Posts: 792
Joined: Thu Jul 24, 2008 2:25 pm
Location: Berlin/Germany
Contact:

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by SiENcE »

Nice.
So Nön is basically a reimplementation of LÖVE using java and libgdx?

There was already a java port, but it's outdated. Most LÖVE ports lack maintenance. My own too :-/.
User avatar
deathbeam
Prole
Posts: 39
Joined: Mon Mar 30, 2015 5:57 pm
Location: Slovakia
Contact:

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by deathbeam »

Yes I know about that port, and it actually inspired me to put all engine logic into Java (before, it was split to Java classes and Lua helpers, but with awesome LuaJ abstraction, I do not even need to write anything in Lua to make Lua engine :D ).

And no, NON is not reimplementation of LOVE, as deployement and configuration process is totally different. And, right now I am trying to support most of LOVE features and API, but I am not directly focusing on implementing everything (some features will never be implemented and some features will have changed functionality, f.e to quit game, in NON you will use non.system.quit()) and I am not sticking to base LOVE features, as I am going to add some more features (f.e. non.network module because of no support for Lua native sockets, and also I added non.java module to interact with native Java code).
User avatar
T-Bone
Inner party member
Posts: 1492
Joined: Thu Jun 09, 2011 9:03 am

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by T-Bone »

It's a good thing you're calling it Nön and not JLöve or something. There's nothing wrong with making a Löve-inspired framework rather than a port. If Nön becomes mature, it should be quite simple to write a compatibility layer allowing devs to write their games for both, if you keep the API differences fairly small.
User avatar
deathbeam
Prole
Posts: 39
Joined: Mon Mar 30, 2015 5:57 pm
Location: Slovakia
Contact:

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by deathbeam »

T-Bone wrote:It's a good thing you're calling it Nön and not JLöve or something. There's nothing wrong with making a Löve-inspired framework rather than a port. If Nön becomes mature, it should be quite simple to write a compatibility layer allowing devs to write their games for both, if you keep the API differences fairly small.
I am trying to make differences in API as small as possible. When I will finish basic API for release 0.7.0, I will also write guide with differences between NON and LOVE.

I was working on NIDE and I decided to go with some nice minimalistic look. Build and Start buttons will be probably above file tree at left:

Image

EDIT:

Added line numbers and getting project title automatically from config.yml is working:

Image
User avatar
I~=Spam
Party member
Posts: 206
Joined: Fri Dec 14, 2012 11:59 pm

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by I~=Spam »

deathbeam wrote:I was working on NIDE and I decided to go with some nice minimalistic look. Build and Start buttons will be probably above file tree at left:
Sounds good to me :)

I noticed that a part of the dropdown arrow is cut off by the edge of the window... just a small thing.

Again, nice work! ;) I will try NON again soon... (as soon as I am in Linux again (I dual boot)... not sure why but I just don't like doing anything in Windows unless I absolutely have to like Word 2013 :roll: )

EDIT: Documentation is down
EDIT2: Non isn't in luarocks database for some reason
My Tox ID: 0F1FB9170B94694A90FBCF6C4DDBDB9F58A9E4CDD0B4267E50BF9CDD62A0F947E376C5482610
User avatar
deathbeam
Prole
Posts: 39
Joined: Mon Mar 30, 2015 5:57 pm
Location: Slovakia
Contact:

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by deathbeam »

I~=Spam wrote: I noticed that a part of the dropdown arrow is cut off by the edge of the window... just a small thing.
Fixed this.
I~=Spam wrote: EDIT: Documentation is down
Yes, as I am working on new API, I need to write new documentation.
I~=Spam wrote: EDIT2: Non isn't in luarocks database for some reason
[/quote]

It is, but it requires Lua 5.1 and you probably have Lua 5.2 (and also, yes for some reason it is not displaying on LuaRocks page). Right now, there is version with old API on LuaRocks (v0.6.4).

See this https://github.com/non2d/non/wiki/Working-from-source tutorial on how to install latest stable development version with LOVE-like API.

Also, here is updated screenie of NIDE:
Image
User avatar
deathbeam
Prole
Posts: 39
Joined: Mon Mar 30, 2015 5:57 pm
Location: Slovakia
Contact:

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by deathbeam »

I downloaded 4 random games from this forums (what was not using bitmap fonts and canvases) and they worked perfectly :)

With only minor changes:
* added" love = non or love" to top of main.lua
* love.event.push("quit") => love.system.quit,
* " " character for space => "space"
* love.math.random => math.random, love
* love.window.setMode(width, height {fullscreen = true}) => love.window.setMode(width, height, true)

And now, images as prove:

Image

Image

Image

Image
User avatar
deathbeam
Prole
Posts: 39
Joined: Mon Mar 30, 2015 5:57 pm
Location: Slovakia
Contact:

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by deathbeam »

Did some minor optimizations with matrix transformations (rotating, scaling, translating) and added API dumper to tools/ directory (moved also install script there)

Here is dump of current API:

Code: Select all

non.visible
non.keyboard.isVisible
non.keyboard.setVisible
non.keyboard.isDown
non.mousepressed
non.window.setMode
non.window.getPixelScale
non.window.getFullscreenModes
non.window.fromPixels
non.window.getHeight
non.window.getTitle
non.window.setFullscreen
non.window.getMode
non.window.toPixels
non.window.getWidth
non.window.setTitle
non.window.isFullscreen
non.accelerometer.getZ
non.accelerometer.getRotation
non.accelerometer.getX
non.accelerometer.getY
non.update
non.quit
non.getVersion
non.compass.getPitch
non.compass.getAzimuth
non.compass.getOrientation
non.compass.getRoll
non.mousemoved
non.resize
non.touchmoved
non.java.extend
non.java.bind
non.java.new
non.touch.getPosition
non.touch.getX
non.touch.getY
non.touch.isDown
non.getConfig
non.audio.getVolume
non.audio.resume
non.audio.stop
non.audio.newSource
non.audio.getNumSources
non.audio.setVolume
non.audio.pause
non.audio.play
non.keypressed
non.draw
non.keyreleased
non.mousereleased
non.touchpressed
non.run
non.system.quit
non.system.getClipboardText
non.system.getOS
non.system.openURL
non.system.getMemoryUse
non.system.setClipboardText
non.system.vibrate
non.mousescrolled
non.textinput
non.touchreleased
non.filesystem.createDirectory
non.filesystem.getWorkingDirectory
non.filesystem.remove
non.filesystem.copy
non.filesystem.getDirectoryItems
non.filesystem.isDirectory
non.filesystem.getSize
non.filesystem.getLocalDirectory
non.filesystem.move
non.filesystem.getLastModified
non.filesystem.write
non.filesystem.isFile
non.filesystem.read
non.filesystem.exists
non.filesystem.append
non.filesystem.load
non.filesystem.getExternalDirectory
non.graphics.getFont
non.graphics.setNewFont
non.graphics.point
non.graphics.getBackgroundColor
non.graphics.present
non.graphics.origin
non.graphics.ellipse
non.graphics.scale
non.graphics.print
non.graphics.rectangle
non.graphics.line
non.graphics.newFont
non.graphics.getColor
non.graphics.translate
non.graphics.getBlendMode
non.graphics.newImage
non.graphics.clear
non.graphics.circle
non.graphics.setBlendMode
non.graphics.draw
non.graphics.printf
non.graphics.setFont
non.graphics.arc
non.graphics.polygon
non.graphics.newQuad
non.graphics.rotate
non.graphics.setBackgroundColor
non.graphics.reset
non.graphics.setColor
non.timer.sleep
non.timer.getFPS
non.timer.getDelta
non.timer.getTime
non.mouse.isVisible
non.mouse.getX
non.mouse.setY
non.mouse.setX
non.mouse.setPosition
non.mouse.setVisible
non.mouse.isDown
non.mouse.getPosition
non.mouse.getY
non.load
As you can see, I implemented really a lot of functionality (but for example non.graphics and non.audio are very limited compared to love versions).
User avatar
deathbeam
Prole
Posts: 39
Joined: Mon Mar 30, 2015 5:57 pm
Location: Slovakia
Contact:

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by deathbeam »

Added support for changing orientation on mobile devices

* "portrait" - useful for mobile phones
* "landscape" - useful for tablets
* "sensor" - automatically rotates your screen based on your accelerometer axis

I want to replace LuaJ with [luajava](https://github.com/jasonsantos/luajava) for big performance boost. I just need pre-compiled luajava (along with latest Lua for iOS and for rest of platforms with latest LuaJIT) natives for

* android32
* ios32
* linux32
* linux64
* macosx32
* macosx64
* windows32
* windows64

If anyone is able to cross-compile natives for any of that platforms (for Android it must be for both ARM and x86) it would be great and will save me tons of work. Maybe we can use something like libGDX is doing [here](https://github.com/libgdx/libgdx/tree/master/gdx/jni) but as I do not own Mac I cannot make natives for iOS and Mac OS X.
User avatar
SiENcE
Party member
Posts: 792
Joined: Thu Jul 24, 2008 2:25 pm
Location: Berlin/Germany
Contact:

Re: NÖN [Windows, Linux, OS X, Android, iOS, Ouya]

Post by SiENcE »

Using libGDX, you can also publish it for HTML5. I def. take a look at it, as other löve-webplayers are all outdated.

btw. Java 7 support ends this year. You better choose Java 8.

Here you also mention Java 6, I would change it to Java 7.
Post Reply

Who is online

Users browsing this forum: No registered users and 22 guests