turanszkij / WickedEngine

3D engine with modern graphics
https://wickedengine.net
Other
5.86k stars 617 forks source link

Feature request: scene and general asset packing #875

Closed socialtwisty closed 5 months ago

socialtwisty commented 5 months ago

I would love to see some ideas about the possibility of a separate tool used for bundling up assets into packages into some format. Having .wiscene files and other loose files i think is fine during development, but at some point i think its worth having deployable packages that can be shipped with the game binary without needing to be recompiled.

This greatly helps asset teams during production, release and official updates. It's perfect for episodic content as well as give modders a better means to customize and ship their own content.

Having a package format that includes optional space for metadata for each bundled file (priorities, categories, etc) would further offer a lot of flexibility as well for episodic content or specific overrides for things like level/character customization or even small things like subtitles / language specific voice recordings.

Wc4ever commented 5 months ago

@socialtwisty hi, I assume .wiscene is meant to represent some sort of "package" as well. Wiscene includes every data in fast engine native format, except textures which supposed to be converted to platform native format.

turanszkij commented 5 months ago

Textures can also be embedded inside the wiscene, this is the default behaviour if you save file with the editor.

socialtwisty commented 5 months ago

if your entire game is bundled within a single .wiscene then i'd agree, a package manager would be pretty pointless.

Wc4ever commented 5 months ago

@turanszkij in that case I can't see how to build universal project that could be "cooked" for different platforms. Isn't platforms has their "best choise" native texture formats like ios has PVRTC I believe there is something else for PS5. So I should unpack it convert and pack again?

Wc4ever commented 5 months ago

@socialtwisty it's not necessary should be bundled in single wiscene, also maybe the engine needs package manager I don't know it is for @turanszkij to decide. My point was, now it is already possible to build your own custom delivery system for wiscenes since they are includes all the data ready to be loaded in runtime. If we talking in terms of well known engines like Unity I would think about it in that perspective: Wicked Engine don't actualy have classic scenes, in engines like Unity and UE scenes mostly is the tree of references to assets. I would think about wiscenes like prefabs and packages glued together.

socialtwisty commented 5 months ago

it's all good man, i closed the issue.

turanszkij commented 5 months ago

@turanszkij in that case I can't see how to build universal project that could be "cooked" for different platforms. Isn't platforms has their "best choise" native texture formats like ios has PVRTC I believe there is something else for PS5. So I should unpack it convert and pack again?

Right now there is no "cooking", so everything works for every platform. If you want platform specific assets, then you can convert the assets and re-embed them. I don't think anything is preventing that.