jME3 is back to iOS

Hi guys,

It’s been a long time since last time I was really active in the forum and I wanted to post a contribution related to one of the latest I did in the past.

During the last month I’ve been working in getting current jME3 running on iOS back again and finally I got it to work using MOE (multi os engine). I’ve published all the required stuff in a github repo for you to have a look at it: GitHub - joliver82/jme3-ios-2024: Attempt to make jMonkeyEngine to run on iOS again at 2024

I’ll set a proper Readme.md file but in the meanwhile, the repository includes the following:

  • info.txt → more information about this all
  • jme3.6.1.patch → patch to apply over the jme3 master branch if you want to compile the jme3-ios from there
  • jme3-ios-lib → copy of 3.6.1 jme3-ios path + patches
  • jme3-ios-native-lib → copy of previous ios native code included in jme3-sdk + patches
  • jME_for_iOS → gradle project including all platforms (desktop, android and ios). It’s a project got from jme website project initializator plus the ios side which is mostly based on libgdx for moe (Berstanio’s libgdx fork)

Working: As of today, I’ve not tested every single jme3 functitonality but I’ve tested effects, PBR, niftygui, shadows and instancing working flawlessly, so I’m assuming that if not everything, at least 90% of jme3 will work.

Not working: Other native stuff (like physics) won’t be working till there’s a proper native ios library compiled.

Not fully working: The screen is not properly initialized, the jme3 app is not using the whole screen. May be related to how I’m setting the UI or the gl context or something. I have to look into it but should be easy to address.

I hope anyone having an iPhone could test it and give me some feedback about it. The simulator is slow as hell…

In the next few days I’ll be trying to get Minie to work on ios and maybe in the long future try to support also roboVM like default libgdx does

Note I also tried minijvm but it lacks a lot of base java classes that are required for jme3 to work

21 Likes

This is very good news and thanks for taking the time to get this working.

That is why I love this community.

Thanks @joliver82

1 Like

Hi!

I just got current Minie working on iOS also. Latest commit adds support for it and includes a simple physics test from jme3-examples apart from some minor changes (not solved the screen filling issue still).

Thanks @ndebruyn for your comment :wink:

8 Likes

I just got current Minie working on iOS also

So let me get this straight: the Multi-OS engine allows applications to load native libraries compiled and linked for Android?

If so, that’s awesome!

I’m sorry to tell you that it’s not that easy. The natives for iOS have to be compiled by themselves as xcframeworks to be included in the xcode project. Have a look at jme3-ios-2024/libbulletjme-ios-native-lib at main · joliver82/jme3-ios-2024 · GitHub

When building the final binary, MOE will statically link it all together

1 Like

Quick update. I just fixed the screen not filled issue

4 Likes

Added WIP roboVM support to the project (robovm-support branch). Sadly there’re missing classes in roboVM, so jme3 won’t work at least untill this PR is merged

2 Likes