User Tag List

Results 1 to 22 of 22

Thread: 6/28: Details on New Features in ARK Dev Kit v243.91

  1. #1
    4
    Unreal Engine Partner
    Join Date
    Mar 2015
    Posts
    205

    Post 6/28: Details on New Features in ARK Dev Kit v243.91

    Hey all,

    I'm creating a separate topic here to go in-depth into some of the powerful new Blueprint Scripting features you'll find in ARK Dev Kit v243.91 which will release later today:

    1. Have a look at this Blueprint:

    Blueprint'/Game/PrimalEarth/CoreBlueprints/DinoCharacterStatusComponent_BP_Titanosaur.DinoCharacterStatusComponent_BP_Titanosaur'
    Blueprint'/Game/PrimalEarth/Dinos/Titanosaur/Titanosaur_Character_BP.Titanosaur_Character_BP'
    Blueprint'/Game/PrimalEarth/CoreBlueprints/Inventories/DinoTamedInventoryComponent_Titan.DinoTamedInventoryComponent_Titan'

    You'll find lots of new blueprint logic controlling how the Titanosaur attacks and is Tamed, and how its Character Status Component (which has its own Blueprint overrides) interacts with its Taming state -- you now have the capability to dynamically modify the Attack Infos and Character Status Component value adjustments in Blueprint. The Titanosaur Inventory Component also has overrides about how & whether Inventory Items uses are allowed.

    2. You can now attach Structures to StaticMeshSockets from any collidable StaticMesh in the Environment -- no matter whether it's a Foliage or StaticMeshActor. See this blueprint "Blueprint'/Game/PrimalEarth/Structures/BuildingBases/TreePlatform_Base_SM.TreePlatform_Base_SM'" and this asset "StaticMesh'/Game/PrimalEarth/Environment/Redwoods/Vegetation/Trees/RedwoodTree01/SM_Redwood_01_CurvedLeaves.SM_Redwood_01_CurvedLeaves'" for an example of how it's used.

    3. Mountable Turrets can now use multiple types of ammo. See these for example: Blueprint'/Game/PrimalEarth/Structures/BuildingBases/StructureTurretBallistaBaseBP.StructureTurretBallistaBaseBP' and Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItemAmmo_ChainBola.PrimalItemAmmo_ChainBola'

    4. Gas Mask Buff has some unique logic to prevent/interact with other kinds of buffs: Blueprint'/Game/PrimalEarth/CoreBlueprints/Buffs/Buff_GasMask.Buff_GasMask'

    5. Items can now override in blueprint what other items they can be dragged onto, and what they do once dragged onto another item, see 'Blueprint'/Game/PrimalEarth/CoreBlueprints/Resources/PrimalItemResource_MagicCharcoal.PrimalItemResource_MagicCharcoal'' for an example of this -- the "Magic Charcoal" allows itself to be dragged onto Raw Meat, and instantly 'turns' the Raw Meat into Cooked Meat when so. (note: this test asset is not cooked into the game, so if you want to use it in a mod, you'll need to make a mod copy of it)

    6. Structures snap points now support per-SnapPoint Mesh Socket Names (on either "To" and "From" Sockets or both), so you can optionally use StaticMesh Sockets for your Snaps rather than Vector offsets. Each Snap Point also supports Inclusion and Exclusion lists of Structures to allow Snapping either To-or-From, so you can use these lists instead of (or alongside) the snapping bit masks if that's easier for you.

    7. Structures now support Overriding final Snap Transformations via Blueprint, which also allows the Snap Point to be dynamically affected by whatever logic you want. See this blueprint ( Blueprint'/Game/PrimalEarth/Structures/Stone/Stone_Doorframe/Doorframe_Stone_Flipper.Doorframe_Stone_Flipper' ) for a networked "Flippable Doorframe" blueprint, which allows the door direction to be flipped by user input on the frame. You can also override these functions to custom determine whether a Snap is even allowed via arbritrary Blueprint logic:

    bBPOverrideSnappedToTransform (set this to true on the parent structure if you wish it to override the transform of what is intending to snap to it... if it returns false, it will NOT override the Transform, and if it returns TRUE but sets bForceInvalidateSnap to 1, it will FAIL the snap).
    UFUNCTION(BlueprintImplementableEvent)
    bool BPOverrideSnappedToTransform(APrimalStructure* childStructure, int32 ChildSnapFromIndex, FVector UnsnappedPlacementPos, FRotator UnsnappedPlacementRot, FVector SnappedPlacementPos, FRotator SnappedPlacementRot, int32 SnapToIndex, FVector& OutLocation, FRotator& OutRotation, int32& bForceInvalidateSnap);

    UFUNCTION(BlueprintNativeEvent)
    int32 BPIsAllowedToBuild(const FPlacementData& OutPlacementData, int32 CurrentAllowedReason);

    UFUNCTION(BlueprintNativeEvent)
    bool IsValidSnapPointTo(APrimalStructure* ChildStructure, int32 MySnapPointToIndex);

    UFUNCTION(BlueprintNativeEvent)
    bool IsValidSnapPointFrom(APrimalStructure* ParentStructure, int32 MySnapPointFromIndex);


    8. Most importantly, Actors now have a dedicated client-to-server / server-to-client network communication method, for any client to communication with the server about an actor, or vice versa. You can think of this as a dedicated "channel" to talk to the server about an actor, even if the client doesn't "OWN" the actor. It can be very useful for sending arbritrary network data about an actor from the client-to-the-server, or vice versa, without having direct client ownership. For example, if you had a mailbox structure, and wanted to request data when it's activated, but you don't want the server to have to multi-cast that data to all clients, just the requesting client. Previously this would not have been possible.

    These are the relevant blueprint functions:

    Actor:
    UFUNCTION(BlueprintImplementableEvent)
    virtual bool BPClientHandleNetExecCommand(FName CommandName, const FBPNetExecParams& ExecParams);

    UFUNCTION(BlueprintImplementableEvent)
    virtual bool BPServerHandleNetExecCommand(APlayerController* FromPC, FName CommandName, const FBPNetExecParams& ExecParams);

    UFUNCTION(BlueprintCallable, Category = "Actor")
    virtual void ServerSendExecCommandToPlayer(APlayerController* ToPC, FName CommandName, const FBPNetExecParams& ExecParams, bool bIsReliable = false, bool bForceSendToLocalPlayer = false, bool bIgnoreRelevancy=false);

    UFUNCTION(BlueprintCallable, Category = "Actor")
    virtual void ServerSendExecCommandToEveryone(FName CommandName, const FBPNetExecParams& ExecParams, bool bIsReliable = false, bool bForceSendToLocalPlayer = false, bool bIgnoreRelevancy = false);

    PlayerController:
    UFUNCTION(BlueprintCallable, Category = "Player")
    void ClientSendNetExecCommandToServer(AActor* ForActor, FName CommandName, const FBPNetExecParams& ExecParams, bool bIsReliable);

    Here's an example of it in-use ( Blueprint'/Game/PrimalEarth/Structures/Stone/Stone_Doorframe/Doorframe_Stone_Flipper.Doorframe_Stone_Flipper' ), once you've built that structure (add it to the StructurePlacer list and snap it to foundation), as a client select the "Test Net Exec" Activation Wheel option on this structure and you'll see that the server will send data back to the requesting client, based on data that the requesting client sends to the server. (The client will print the result to the screen).

    #8 in particular will be useful for advanced interactive networked blueprints, especially involving structures or dinos that you do not directly possess. It essentially act as a two-way client<->server communication method for arbitrary Actors.

    Have fun, hope you enjoy these powerful new capabilities! Note that these features will only work properly in v243.91 and up specifically, so be sure to tell your clients/servers to upgrade their game builds to the latest version if you intend to use these new features! (as we won't be releasing another Major version update for about 3 weeks or so)

    Good luck all, happy modding!

    Jeremy Stieglitz
    ARK Lead Designer, Lead Programmer, Development Director, Co-Founder @ Studio Wildcard

  2. #2
    0
    Thanks a lot for the info. I'm hyped for the release I can finally edit those attack infos with my saddles!

  3. #3
    0
    please fix the multiuse functionality. At now BPTryMultiUse is NOT called, if an object is picked up (index 203).

  4. #4
    0
    Promoter
    Join Date
    Apr 2015
    Posts
    240
    wow alot of new features can't wait to look at the new socket snaps

  5. #5
    0
    Promoter
    Join Date
    Jun 2015
    Posts
    276
    Exciting new features! Will #8 provide any advantages over the "Buff" workaround(add buff to player as a proxy for "run on server" or "run on owning client" events) a lot of us are using apart from convenience?

  6. #6
    0
    Quote Originally Posted by Mezzow View Post
    Exciting new features! Will #8 provide any advantages over the "Buff" workaround(add buff to player as a proxy for "run on server" or "run on owning client" events) a lot of us are using apart from convenience?
    Sure will!
    Wildcard Mod Liaison | Creator of Primitive+ Survival

  7. #7
    0
    Promoter
    Join Date
    Sep 2015
    Posts
    255
    Change notes waaaa? Pinch me.

    If we got tooltips/comments, reality has just turned upside down

  8. #8
    0
    Quote Originally Posted by jslay View Post
    Change notes waaaa? Pinch me.

    If we got tooltips/comments, reality has just turned upside down
    Heym dont get ahead of yourself now
    Wildcard Mod Liaison | Creator of Primitive+ Survival

  9. #9
    0
    Wow, can't wait!

  10. #10
    0
    Will we get any information on how to USE these new Snaps? I'd love to be able to setup extra snap points on some structures.

  11. #11
    0
    comes ARK Dev Kit v243.91 not get out?

  12. #12
    0
    agreed, after 8 hours of sleep, i would of thought the states later today would of come and gone

  13. #13
    0
    Is the Dev Kit available yet?? Can't find it anywhere.

  14. #14
    0
    No MorkOz, not yet.

  15. #15
    0
    I think the days at Studio Wildcard are a bit longer than ours
    6/28 it supposed to be later that day, so if that day is still not over.... long days ....
    But indeed still nothing on Github

  16. #16
    0
    It's been 2 days, however, I'm sure they want to give us a good base version, as they're still fixing and putting out updates to Ark. Just got one a few hours ago even.

  17. #17
    0
    The Days in Studio Wildcard are very long, hehe

  18. #18
    0
    Still nothing?? Wildcard, perhaps don't say 'later today' if you really just mean... later.

  19. #19
    0
    Promoter
    Join Date
    Jul 2015
    Posts
    151
    You will soon learn learn that is the normal with Wildcard... whenever they say we are releasing tonight add and extra 2-14 days to that
    DinoOverhaul X CLICK HERE

  20. #20
    0
    When this will be to download the content? Jeremy said in his twitter could come today.

  21. #21
    0
    With the snap to transforms, that means we can change the thing being snapped to, correct? Is vertex manipulation possible with the dev kit or just location, rot and scale?

  22. #22
    0
    Really need some better documentation on how to setup these snap points. For those who have not programmed before, or for those who have not programmed in over a decade (or two).

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •