Quillraven / Fleks

Fast, lightweight, multi-platform entity component system in Kotlin
MIT License
180 stars 20 forks source link

Check needed changes and clarify open points to use Fleks directly in Korge #52

Closed jobe-m closed 2 years ago

jobe-m commented 2 years ago

As you know we have currently a copy of Fleks in Korge as Korge-fleks module. The sources in Korge-fleks are a copy of the "next" branch here.

In Korge there is a PR to remove korge-Fleks and use Fleks directly -> https://github.com/korlibs/korge-next/pull/718

I will use this space here to discuss any open points for the standalone integration/usage of Fleks with Korge.

Quillraven commented 2 years ago

In my opinion we are close to something here. When we find out in #53 why the dependency cannot be used anymore in KorGE like it did before then we can release KMP-1.3 with quite some features/updates and fixes and also it is then easy to add it to any KorGE game.

As mentioned, it might be related to the SNAPSHOT version or an IntelliJ bug. I will try some more things on the weekend.

jobe-m commented 2 years ago

Korge has a "special" android build target which seems to be based on jvm (?) but I guess we have to support it specifically if we want to use Fleks in a Korge Android game. Also the native target in Korge is split at least into "linux x64" and "mingw x64". So here we would also need to check how to support them. There are also iOS and MacOS X targets but I cannot check them since I am currently unwiling to invest into that hardware ;)

/EDIT: It looks like that the mingwx64 build of a Korge Game does not need a special "mingwx64" target from Fleks. I guess that the fleks-native target is serving it for the Korge Game.

jobe-m commented 2 years ago

I tried to use Fleks in the ecs-fleks example project in Korge and it failed because of not existing build units: Screenshot from 2022-06-22 14-49-37

So it looks that we would need to add those to Fleks if we want to use Fleks in Korge from external.

/EDIT: I did a mistake when trying to build for Android. Please ignore this for now until I see another problem with Android.

jobe-m commented 2 years ago

I could finally check the Fleks-ecs sample in Korge successfully while using the 1.3-KMP-SNAPSHOT local release of Fleks for at least the most common platforms as seen above. I used as base the following branch in Korge: https://github.com/korlibs/korge/tree/feature/Update_Fleks_to_v1.3_and_adapt_ecs-fleks_sample_code Fyi @soywiz

Quillraven commented 2 years ago

Not sure if this helps but maybe for android we need to check out this: https://kotlinlang.org/docs/multiplatform-publish-lib.html#publish-an-android-library

Seems like some additional gradle setup is necessary to correctly publish it?

Quillraven commented 2 years ago

Is there anything still pending for this issue? Or can we close it? ;)

jobe-m commented 2 years ago

We can close this issue here as I think we do not need any further changes in Fleks. I will check my branch in korlibs repo and adapt it so that the Korge example for Fleks is using Fleks from Maven.