Announcement

Collapse
No announcement yet.

Unreal Community Plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [FEATURE REQUEST] Unreal Community Plugin

    I'm now working with Unreal for 3 years and created some plugins. What I think realy annoying is the fact that a Plugin should not rely on another plugin (at least on the marketplace). Though plugins provide a lot of stuff that would be nice to use within my plugins (and I'm pretty sure other would like to do that as well)
    A very good example here is:
    https://www.unrealengine.com/marketp...andard-library

    Like there is no support for 64bit variables in Blueprint, though it is possible to at least provide some workaround functions to give 64 bit variable options. I needed that for our SteamWorkshopAccessor plugin, and others also need 64bit support for some reason. Now everybody needs to implement their own 64bit functionality in their plugins when they need it. If you now make use of 3 of those plugins, the Blueprint search is a total mess. Which of the functions do I now need to use?

    There are reasons people provide that free content to the Marketplace instead of coding it into the engine.
    • Can be updated apart of the engine shedule
    • Credits to who created the stuff
    • Much faster acccess to the functionality (why code it into the engine that is updated the next time in 3 month when I need it now! Doing it twice and thus breaking my own code with an engine update cause of duplicated functions)
    • Contributions to the engine code base must always be reviewed by epic stuff to not break anything by accepting the code. This again leads to lot of work for epic and slow integration of what is needed NOW.
    We could create a GitHub community project that results in a Community plugin that is then uploaded to the Marketplace. Here are the reasons why not:
    • only one person can do the marketplace update (the plugin owner)
    • It is not allowed to reference other marketplace plugins on it.
    • The marketplace update process is realy tedious as you manually need to go to the submit page and copy in links from cloud hosters
    • ... I gues there is more bads about it

    Now what I would like to see to get a fast integration of community created content as part of the engine:
    A community plugin that is part of the engine with out of engine update shedule (Update on Submit)

    How could this be realized?
    Epic Games creates a GitHub project for this plugin that everybody is free to submit to with continuous integration that checks if a pull request compiles properly for some engine versions back (maybe the latest 5 (3 is not enough) as you need it NOW but are some engine versions back) and accepts the code if the compile was successful, otherwise rejects it with build log send to the requester or maybe posted automatically into the pull request if possible so others are able to fix it in case the requester is not able to resolve the problem.

    What would need to be done:
    To release unreal of any responsibility of that content the EULA would need to mention that plugin.

    To show the user that what he is using is user generated and unreal does not take responsibility, an icon on functions and dropdowns (lists of classes) that shows that of.

    The continuos integration implementation of the plugins GitHub project.

    Modify the engine code to show the icon on respective elements.

    Code Guidelines for the plugin (mostly the coding standard of the engine but guides for how to get credits see below) and what not).

    The community plugin version that is auto incremented on successfull build is displayed behind the Engine version Number, e.g. UE4.23.4 C56
    Or something simmilar. But it must be clear what you have installed.

    The icon
    The standard round, blue unreal logo with a C in it instead of an U (isn't that icon somewhere around already?)

    Function: top left on the function
    Class lists (drop downs and class selection for inheritance, top left in Blueprint editor where the parent class is shown) (maybe more): behind the class names
    Structure and enums: I gues we do not need that here

    The icon is shown on all elements (functions/classes) that are part of the Community plugins automatically (NO UFUNCTION or UCLASS tag)

    How do creators receive credits?
    /**
    * Function description
    *
    * param ...
    *
    * @author MyName
    * @editor OtherName
    * @editor AnotherName
    */
    UFUNCTION(...) / UCLASS(...)
    void MyFunc(...) / class MyClass

    Credits are always the last part of the comment to not mess up tooltips of autocomplete tools in visual studio.

    The tags are read out of the comments and are placed into the tooltip of the icon in editor. This way it does not disturb the general tooltip of the element (where the information has be removed from) but can be viewed by others.

    The files can also easily get parsed and create a ranking of contibutors that can be shown of in the forum (like answerhub weekly community contribution). That would also attract more people to add to the plugin. (Well, this can easily be messed around with, but I believe in the good part of the people)
    Ranking entry: MyName 6 Creation / 8 Edits
    Maybe it is possible to read out the Github contributor stats and display those instead.
    Every contributor should be shown, not only top 10 (scrollable list)

    This also would enable people that have trouble with something to contact a responsible perso (that the forum nickname MUST be mentioned in @author and @editor can be part of the plugin guidelines). A submit can be rejected if the @autor MyName is not present.

    Benefits
    It is a Plugin and everyone can decide on their own to enable it or not (should be enabled by default).

    More user contributions to the Engine code base.

    Remove duplicated code (64bit example above)

    Possibility for Marketplace plugins to make use of other users created content. (The Marketplace could show up a big notification that this plugin depends on the community plugin automatically and thus mention a possible instability). (Cause of the out of Engine update shedule this would be possible).

    As it is a plugin it can contain lots of modules (editor, runtime). Well, if editor functionality is added (buttons, drop down list elements, ...), it for sure gets difficult to show of the community creation, maybe automatically add a note at the end of the elements tooltip, e.g.
    "My tooltip
    Community Plugin
    Creator: MyName
    Editor: OtherName)".

    Fast integration of user functionality.

    Epic Games is able to update the Engine even though community plugin functionaliy breaks (not include the plugin in engine builds, build it seperatly).

    People can make themself a name.

    Epic Games can pull out time for the weekly community youtube video mentioning new additions. To thank the contributors a diff could be made of two plugin builds @author and @editor to get the delta of the contributions.

    Less work for Engine staff going through pull requests.

    Happy people.

    ... I gues there is more

    Finally
    This is what came to my mind and I'm sure that some of the mentioned things would need some fine tuning and that I thought not about everything that needs to be done. I also never did continuos integration nor accessed GitHub via API. So some things also might not be possible as I mentioned them.

    This would be a realy great addition to the Engine.

    Cheers
    P.S. I typed this on my phone and missing lots of sleeps, so mind spelling
    Last edited by Rumbleball; 08-23-2019, 03:34 AM.
    NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | DebugWidget
Working...
X