inexorgame-obsolete / deprecated-cube-engine-inexor

UNMAINTAINED: Please have a look at the vulkan-renderer
https://inexor.org
zlib License
11 stars 1 forks source link

Manage textures in Inexor Flex #363

Open aschaeffer opened 7 years ago

aschaeffer commented 7 years ago

Refactoring of the loading mechanism of textures and maps in order to use the Inexor Tree. This way we can automate the media management and provide user interfaces for creating or editing meta data of textures and maps.

Inexor Flex

Inexor Core

aschaeffer commented 7 years ago

Layed the foundations

IceflowRE commented 7 years ago

Will this manager, manage missing textures from user made maps too? And send those to other players as well? (Only if you join an online match on this map of course.)

aschaeffer commented 7 years ago

@IceflowRE: This is our plan for resolving missing textures / media files in general:

It's also planed that media files have a version history, so a map A depends on version 2 of texture B, but map B depends on a newer version 3 of texture B. This way textures can be improved without breaking the look of a map.

aschaeffer commented 7 years ago

Added an update mechanism for git media repositories

Croydon commented 7 years ago

map.json -> #39

aschaeffer commented 7 years ago

https://github.com/inexorgame/inexor-flex/commit/8b92c2cc6b3f68a4248f82754047d1ded9b83c2f

Now we need a possibility to synchronize the tree nodes to core (using list sync?)

a-teammate commented 7 years ago

yay :)

In core the first step will be to just use the package.cfg in each directory to load the textures from there on. The second step will be the harder part (and we probably can leave it open for a while): we need:

at that point we are at: "just load it from the tree. textures into gfx memory, link the named shader, add the shaderparameters"

aschaeffer commented 7 years ago

I've updated the issue description with your input

MartinMuzatko commented 6 years ago

In order to make the most out of textures, they should have further data attached. This would be very beneficial for sorting/filtering in e.g. the texture browser

Some properties can be inherited from the package (e.g. author, package name) some have to be defined on a per texture base.

These properties need to be maintained on a per texture base, but the benefits would be immense. Sorting and filtering textures fitting to the current map is only the beginning. By attaching these attributes to textures, it is also possible to derive other properties like footstep sounds, durability or similar.

Also, an ingame texture browser could also allow attaching these informations, so there is no need to do this in configuration files only. This can be done as a community effort: if every texture is publicly available, users could also attach their information with it in a pull-request-like fashion.

Furthermore, if we make the octree with the used textures available in the tree, we could even let users explore how other users used a certain texture in a map for inspiration.