Unreal Gems - high quality library of blueprint/material functions

I’m working with UE4 for several months. Vanilla blueprint library already contains hundreds useful functions, well-organized in categories.
But… every project still needs additional functions: math, logic, operations on material instance, flow control macros.

I’ve work several years in industry (LinkedIn), so I thought… why not to try build a community library of “snippets”?
Blueprint functions & macros, material functions and other reusable content that could be used in many different projects (if there’s to reuse Substance Designer project files, use it as a base for your own work - why not?).

For me this makes sense only if entire content would be moderated. Library with hundreds of random functions, every functions made by different person with different “coding style” and without organized categories… Well, it would be just one, big mess :wink:

My approach is:

  • Everybody is welcome to contribute, all stuff is stored in single location. Mega account, GitHub, Blueprintue (which could be really useful site one day) or whatever else. Not sure yet where to store this - what would most convenient for you?
  • Chosen content gonna be integrated like it would done by single team. Well-organized, easy to browse and understand. If dev sends some function operating on Integers, we should create similar functions for Floats, Vectors. All scripts in library would be reviewed/tweaked/redone to fit code formatting, categories and file structure.
  • Library should be universal - we don’t add huge custom systems (like RPG inventory which is always custom designed) or extremely specific content (i.e medieval Nazi zombie cow)
  • We could add some graphics/audio content for speeding up prototyping (like Shapes folder from Epic’s samples content), but nothing you could use as “final art”.
  • We shouldn’t try to gather as much scripts as possible - quality over “messed up, huge library”. We shouldn’t try to create big script systems for functionality that could be easily implemented in C++.
  • Everything should be update to the newest UE4.

Benefits:

  • minimize time spent on “reinventing the wheel” in our projects, speed up prototyping
  • provide nice placeholder content for level blockout (also by using procedural scripts)

I was also thinking on writing down best practices. Short articles/posts explaining philosophy behind system, showing way of good thinking, efficient implementation. It could wiki articles or tumblr blog. Whatever. What you think?

Some examples of things could be “assimilated” in such library.
https://forums.unrealengine.com/showthread.php?56503-WIP-Blueprint-support-for-all-numeric-types!
The Monolith - Community & Industry Discussion - Epic Developer Community Forums
Generic Material For Procedural Workflow - Asset Creation - Epic Developer Community Forums
[Tutorial] Mesh Based Particles - Community & Industry Discussion - Epic Developer Community Forums
Houdini Velocity Grid Exporter - Community & Industry Discussion - Epic Developer Community Forums

Let me know what you think about this idea :slight_smile:

I am totally agree with you.
A sort of wiki/google for searching and indexing useful libraries/blueprints/assets/whatever will be awesome.
And I think it will be a good start for people who want to use Unreal Engine in Game Jam with a small experience (basic assets).

very nice idea and handy if handle correctly, looking forward to this!

wiki @UE

Epic has already created a community wiki.

Converting a useful thread/post into a web page would be best. As it can than be maintained by community. A wiki page… :slight_smile:

Advanced snippet (ue4, user contributed, now in 4.6+ git branches) functionality like Visual Studio has would be interesting for Blueprints.

Quick links
ALL

+1 pretty Nice idea. I also agree with The rules. Makes totally sense. But a good documentation is maybe The key for This.
Maybe i make something wrong, but its pretty hard sometimes to get into functions or shaders from someone else, cause everyone has is own workflow or sort-System. Maybe also add examples for some or all functions.

But i like the idea! Definitly gonna follow This.

Great to hear your opinion :slight_smile:

Wiki
Well, I’ve to admin initially I didn’t think about wiki documentation.

  1. I’m always learning by doing, simply checking what functions do. This is major advantage of visual scripting.
  2. Most of functions supposed to be really simple and self-explanatory. Documentation is fail-safe, if name, commentary and file structures fail to explain themselves :wink:

But you’re right. And simple docs with usage example doesn’t require lot of work if you already finished code/asset.
I’m familiar with wiki - especially MediaWiki, she’s everywhere :wink:
I allowed myself to create Blueprint functions sub-category.

Now… which approach suits you better?
A) 1 function = 1 wiki page. Could be easier to find some functions just be browsing category or googling, but sometimes you wouldn’t open maaaay tabs to find what you need.
B) 1 category of functions (like Math) = 1 wiki page. Easy to scroll through tens of functions and it would reflect file structure of function library (creating separate file for every function isn’t good workflow). But the list could be really long.

GitHub?
I’m testing GitHub for storing project. Yes, project :wink: It will contain function libraries, prototype assets - everything what’s gonna be described on wiki. You’ll able to download/sync single function library, procedural script or entire project (which is useful for rapid prototyping). I’m also planning to make it multi-mode project, so you can easily switch between First Person, Third Person, Isometric (and few other standard modes).
I put there minimal content. Used materials and textures from StarterContent, but I would remove part of this and add some generic/universal materials in future.
https://github.com/GamedevGems/UnrealGems

Uploaded few functions and macros for test, example of file structure. Gonna work on it later.
https://github.com/GamedevGems/UnrealGems/tree/master/Game/Content/Gameplay

hm well maybe a combination of both. but i think as more functions come inside, as more important is, to have examples of the functions self.

1 Function = 1 Wiki Page

but all the functions are on a list, that are sorted by categories and then maybe alphabetic?

Yeah, we can make sub-categories like Math, Rendering, Utilities. Wiki automatically sorts articles alphabetically.

I’m gonna shrink my idea… a bit :wink:

It looks like the most valuable thing to do would be simple “posting” functions/macros Blueprintue (when browsing throu categories will be possible).
Wiki is fine, by posting screenshots of complex graphs is cumbersome, copy-pasting code is much easier at Blueprintue :wink:

There are few problems with packing functions to binary files:

  • difficult to browse if you just need 1 small function - you don’t want to download big library, searching wiki is much faster
  • difficult to merge (if I’d keep all functions from category in single file) or incredibly messy (if I’d create new file for every single function)
  • it would be messy to place mutations/examples of functions in library, but it’s very easy to do this at wiki
    Also:
  • Epic introduces Content and Feature packs, there’s no need of providing multi-mode project anymore
  • it would be hard to manager “placeholder content” one my projects will mature, still I could post some procedural scripts in future