korlibs / korlibs/korge

Improve Assets and Resource Handling

Open
#2,382 0 comments 1 reaction 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.