Asset Server/ Hub (does it exist already)?

(Dobkeratops) #1

one bottleneck for indy games is getting game-suitable art.

on reddit I mentioned the idea of an AssetServer that i’d posted elsewhere in piston discussions - and wondered if anything similar already existed or was planned.

imagine:-

(i) content contribution, management-

  • upload, search, browse game assets. labelling/search tags

(ii)-version control , including awareness of nested/reference assets (models reference textures, scenes reference instances of models)

(iii)- asset conditioning utilities - model segmentation, texture-atlasing/conversions, tristrips, compression, PVS, pre-lighting; LOD , textures atlas thumbnails, figuring out grouping for streaming/caching (‘apps that request X are likely to want Y,Z later…’)

(iv)- asset Serving/hosting : such that indy titles hosted on web-pages or smalll app downloads could grab their textures/models on the fly from a centralised location.

of course this might be too much (hosting cost?), or too much to standardize. On the other hand, it might be the kind of work that plays to rusts strengths, i.e. an online system. I do note now you have a foundation, perhaps running such a server would be within the scope of that.

I gather unity and unreal have ‘asset stores’ , libraries of animations …

As for my own interests - I’m actually into Rust looking for excuses for NIH really- I would be unlikely to use amethyst itself (I dont want to work on anything with any engine ‘brand’ or source code ‘flavour’ other than my own. I’ve done console gamedev since before the days of off the shelf engines ; my motivation is building something that’s mine as far as possible), but I’ve used some piston utilities and other peices from Cargo; and I know to actually get games out these days engines are a fair choice. Cargo has been a pleasant part of the rust experience.

1 Like

A library of components and systems
(Erlend Sogge Heggen) #2

I think an asset repository should definitely be on Amethyst’s really long term roadmap. It is indeed a task of immense proportions so for now I would suggest trying to make it as easy as possible to benefit from the existing asset repositories out there.

The Unity3D asset store for instance is a treasure trove of content. Sure, there’s a fair amount of Unity-specific assets in there, but it’s also host to a vast number of 3D assets, most of which should work on any engine.

There are more open alternatives as well, such as BlendSwap, OpenGameArt, Itch.io assets Kenney.nl assets and /r/gameassets.

0 Likes

(Fletcher) #3

If you are talking about strictly 3D art assets, we do not run one, no. There are several online, though, that have loads of art.

Unity and Unreal Asset Stores have this, but like you said, also things specific for those engines. This is something we’re going to look at in the future. Serving them isn’t too much of a technical challenge, it is when people want to sell assets there that it gets tricky.

0 Likes

(Kae) #4

Thanks for the post! I work on asset systems right now and can answer to some things that I have in mind for the Asset Pipeline implementation. The points I don’t address will be ones I don’t know much about, maybe someone else could pick up on those.

(i) content contribution, management-

  • upload, search, browse game assets. labelling/search tags

Labeling and search tags are a part of the pipeline I’m working on, but it will be for searching assets in your local asset repository.

(ii)-version control , including awareness of nested/reference assets (models reference textures, scenes reference instances of models)

Cross-asset references are included as specified in this RFC. For version control I assume most people will use whatever they are comfortable with.

(iii)- asset conditioning utilities - model segmentation, texture-atlasing/conversions, tristrips, compression, PVS, pre-lighting; LOD , textures atlas thumbnails, figuring out grouping for streaming/caching (‘apps that request X are likely to want Y,Z later…’)

Asset processing both in the general sense and for specific target platforms is definitely within scope of what I’m working on, but only designs so far. Some early ideas are to enable authoring of processing pipelines from a set of processing primitives, similar to visual shader editors. These processing pipelines would then be assigned to individual assets and run automatically when a build artifact is requested.

Asset packing (putting related assets together) is another part I hope will be implemented once more of the asset pipeline is in place. Since we’ll be able to generate a dependency graph for your entire project, it should be pretty straight-forward.

3 Likes