Improve Assets and Resource Handling
- Dominant language
- Kotlin
- Stars
- 3k
- Forks
- 148
- Avg merge
- 13h 44m
- Merged PRs (30d)
- 1
Description
## Description
Resource handling in games is one of the key elements that is required for a game to get visuals, sound effects and more. Right now with the latest updates in KorGE resources are not handled correctly and require the user to manually wire things up. An example how this looks like for android can be found [here](https://github.com/korlibs/korge/blob/3e4093b470fa2f154ee567de5829282c8fc8c123/e2e/e2e-test/androidApp/build.gradle.kts#L32).
## Task
- Investigate the current issues and limitations with resource loading that are present in Kotlin Multiplatform without using a library
- Review existing solutions like [Compose Resources](https://kotlinlang.org/docs/multiplatform/compose-multiplatform-resources.html) and [MOKO resources](https://github.com/icerockdev/moko-resources) for how they are addressing these issues
- Decide and implement a proper way of handling resources, either in a korlibs library, or KorGE plugin
## Acceptance Criteria
- The user does not have to manually wire up the assets to get them loaded into the game
- The wiring of new resources should happen automatically without a sync (if possible)
- A new directory may be introduced (if that is simplifying things)
- All currently supported targets are covered
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the Android example in e2e/e2e-test/androidApp/build.gradle.kts, where manual resource wiring is shown. Investigate Kotlin Multiplatform resource limitations and compare Compose Resources with MOKO resources. Done means resources load automatically without manual wiring across all currently supported targets, with synchronization avoided if possible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- build-system, game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100