Gala Games(GALA) OpenSea NFTs

Gala Games (GALA) is a blockchain-based, play-to-earn gaming platform that enables users to earn its GALA token for achieving in-game milestones. They can also create and trade NFTs in the game or non-game-based exchanges. This tool helps GALA community users to compare NFTs’ prices and ROI, and purchase them quickly.

https://www.buymeacoffee.com/alpaca007

Gala Games(GALA) Nodes Monitor

The decentralized Game Games ecosystem is supported by community users who operate Gama
Nodes. They successfully launched Music Nodes in Feb, 2022.

https://app.gala.games/nodes/ecosystem
https://music.gala.world/nodes

The numbers of Gala and Music nodes are over 70,000. This tool is to operate and manage multiple Gala Games(GALA) nodes including Founders, TownStar and Music nodes for 24/7.

https://www.buymeacoffee.com/alpaca007

Steam Inventory Service Plugin

Buy Steam Inventory Plugin

Fully integrated Steam Inventory Service except for trading, promotion. It comes with SteamItem Converter which generates item definitions in json. Preparing document at this moment.

Features (https://partner.steamgames.com/doc/api/ISteamInventory)

ConsumeItem : Consumes items from a user’s inventory. If the quantity of the given item goes to zero, it is permanently removed.
ExchangeItem : Grant one item in exchange for a set of other items.
GenerateItem : Grants specific items to the current user.
GetAllItems : Start retrieving all items in the current users inventory.
GetItemDefinitionIDs : Returns the set of all item definition IDs which are defined in the App Admin panel of the Steamworks website.
GetItemDefinitionProperty : Gets a string property from the specified item definition.
GrantPromoItems : Grant all potential one-time promotional items to the current user.
LoadItemDefinitions : Triggers an asynchronous load and refresh of item definitions.
TransferItemQuantity : Transfer items between stacks within a user’s inventory.
TriggerItemDrop : Trigger an item drop if the user has played a long enough period of time.

WIP

TradeItem, Promotion

Engine Compatibility

Sample Project is based on 4.16. Plugin supports 4.11 – 4.17.

Generate Item

SteamInventoryPlugin_screenshot_01

Craft & Recipe

SteamInventoryPlugin_screenshot_02

Transfer Item Quantity

SteamInventoryPlugin_screenshot_03.png

Iteam details

SteamInventoryPlugin_screenshot_04.png

Libro Office document (Plugins\SteamInventory\Tool\SteamItemCoverter.ods)

manage steam item and generate definitions in json.

itemtool.png

Integrate Amazon GameLift from 4.15

Buy GameLiftSample

 GameLift GameSessions Demo

GameLift FlexMatch Demo

Features

Supported Amazon Linux 16/12/ 2018

AmazonLinux.png

Supported UE4 4.25 07/05/ 2020

Supported UE4 4.24 11/12/ 2019

Supported UE4 4.23 06/09/ 2019

Supported UE4 4.22 04/04/ 2019

Supported UE4 4.21 09/11/ 2018

Added new features UE4 4.20 01/11/ 2018
GameProperty
https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameProperty.html

  • It needs GameMode and MapName properties to travel. Maxplayers will be Max count which is gamelift player session count.
  • You can add more gameproperies and retrieve them by OnStartGameSession delegate.
    GameProperty

Dedicated server settings for autoscale

  • GameLift is checking health in every 60 seconds. Dedicated server shut down itself if it doesn’t get health check for MaxHealthCheckTime. Default value is 180 seconds.
  • Dedicated server shut down itself if it has no player for MaxEmptyServerTime.Default value is 180 sec.
    dedicated server settings

MatchMakingTicket for Flex match

  • StartMatchMaking
    StartMatchMaking.PNG
  • DescribeMatchMaking
    DescribeMatchMaking.PNG
  • AcceptMatch
    DescribeMatchMaking

 

Amazon GameLift Archtecture

https://aws.amazon.com/blogs/aws/launch-amazon-gamelift-now-supports-all-c-and-c-game-engines/

GameLift-02-Architecture

Amazon GameLift and Game Client/Server Interactions

http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-interactions.html
https://aws.amazon.com/blogs/gamedev/category/gamelift/

Set Up the Unreal Engine Server SDK Plugin

http://docs.aws.amazon.com/gamelift/latest/developerguide/integration-engines-setup-unreal.html

In Windows do the following:

mkdir out
cd out
cmake -G "Visual Studio 14 2015 Win64" -DBUILD_FOR_UNREAL=1 ..
msbuild ALL_BUILD.vcxproj /p:Configuration=Release

The following binary files are generated:

  • out\prefix\bin\aws-cpp-sdk-gamelift-server.dll
  • out\prefix\lib\aws-cpp-sdk-gamelift-server.lib

Add Amazon GameLift to an Unreal Engine Game Server Project

http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html
http://docs.aws.amazon.com/gamelift/latest/developerguide/integration-engines-setup-unreal.html

#include "GameLiftServerSDK.h"

AGameLiftFPSGameMode::AGameLiftFPSGameMode()
    : Super()
{
 ...
 //This game server tells GameLift that it listens on port 7777 for incoming player connections.
 FString Port = "7777";
 // Allow the command line to override the default port
 if (FParse::Value(FCommandLine::Get(), TEXT("Port="), Port) == false)
 {
 Port = GConfig->GetStr(TEXT("URL"), TEXT("Port"), GEngineIni);
 }
 params->port = FCString::Atoi(*Port);
 ...
}

Packaging and Uploading Server Build

http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-aws-cli-installing.html

Add Amazon GameLift to Your Game Client

http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html

 

Advanced Cloaking – Blueprint Only

Description
AdvanceCloaking is a simple component to make you easy to implement cloaking any actor. There are 3 cloaking exposed type. Gun fire, damage, equip. You just call a member function where you want to expose it. It is focused on actually gameplay.

Features
Cloaking/Uncloaking at any state
Damage, fire, equip exposed types
Support for Skeletal, Static, Text render mesh components including childs

Configurations
Name:  settings.jpg Views: 148 Size:  24.7 KB
PlaySound : Setting for playing cloaking/exposed sounds.
ManualMaterial : if it is true, CloakingCompoenent won’t create dynamic material instance from onwer. Instead of it, you may add it by calling AddManaulMaterial.
DestroyCloakingOver : the parent actor will be destroyed when cloaking is over.
DamageReceivedDissolve : delta value to expose cloaking when player continue to get damage.
FiredDissolve : delta value to expose cloaking when player continue to fire weapon.
EquipDissolve : delta value to expose cloaking when player continue to change equipments.
MaxRefraction : refraction time
MaxDissolve : cloaking time
CloakingSound : when cloaking is started, this sound is played.
ExposedSound : when cloaking is exposed, this sound is played.

Tutorial

https://forums.unrealengine.com/showthread.php?130561-WIP-AdvancedCloaking-Blueprint-Only

Advanced Steam Plugin

Available on Marketplace
https://www.unrealengine.com/marketplace/advancedsteam-plugin

Description

AdvancedSteam is Code plugin to make you easy to implement steamstats and leaderboard, achievement on blueprint. Of course, you can use it in C++. It expands OnlineSubSystemSteam. It fixed some bugs. If you combine Steam stat with leaderboard, achievement, you can create dynamic tables with float and integer stat. You can set/get multiple stats at once. It’s fully working as asynchronous tasks.

Steam leaderboard, User Generated Content attach and stats demo

User Generated Content(UE4 replay files) attach

Steam Achievement demo

Features

Steam Leaderboard

  • Read Leaderboard Integer
  • Write Leaderboard Integer
  • Retrieve Leaderboard

Steam Stats

  • Read Stats
  • Set team Stat
  • Increase Stat

Steam Achievements

  • Read Achievements
  • Get Achievement Icon
  • Get Cached Achievement
  • Set Progress
  • Unlock Achievement
  • Clear Achievement
  • Get AvatarIcon

Steam Cloud

  • Write Cloud
  • Read Cloud

Engine Compatibility
4.10 – 4.15
Intended Platform : Window, Mac
Platforms Tested : Window, Mac

Manual
Steam Leaderboard and stat manual : https://goo.gl/Ia0Cnl
Steam Achievement manual : https://goo.gl/0TCxYQ

https://forums.unrealengine.com/showthread.php?136370-WIP-AdvancedSteam-Plugin-Blueprint-support

Simple UPNP Plugin

Description
Simple UPNP Plugin is code plugin to make you easy to add and delete UDP/TCP port mapping on network devices which are compatible with UPNP Protocal (https://en.wikipedia.org/wiki/Universal_Plug_and_Play). It allows your game to use P2P under NAT. It’s based on WANIPConnection:1 Service Template Version 1.01 (http://upnp.org/specs/gw/UPnP-gw-WANIPConnection-v1-Service.pdf). It uses SocketSubsystem and HttpModule in UE4 and exposes necessary fuctions in blueprint. It doesn’t use any third party library.

Buy Simple UPNP Plugin

How to setup UPNP Plugin
Enable Simple UPNP
PluginSetting.png

Simple UPNP Plugin sends discover messages to local network devices. You can setup the timeout in DefaultGame.ini. Default value is 5 seconds.

[UPNPPlugin]
RequestTimout=5.0

It doens’t use any third party library.
codes


Data Structure

  • UPNPDeviceInfo holds information of discovered network devices.
    UPNPDeviceInfo
  • Macufacture holds manufacturer information of network device.
    manufacturerinfo
  • Device Status Info holds status information of network device.
    devicestatusinfo
  • Common Link Properties
    commonlinkproperties
  • Device List Array holds Device Info
    deviceinfo

    • Location is used to add and remove port mapping.
  • Simple UPNP Info
    SimpleUPNPInfo

    • Holds port mapping information
  • Error Codes
    errorcode


UPNP Blueprint Call Proxy

  • GetPortMappingList : Get port mapping list from network device
    GetPortMappingList

    • Refresh : If true, it refreshes from discovering network devices. If false, it refreshes only port mapping list. It will be faster to get port mapping list after adding and removing ports,
    • Allow Retry : Defaut timeout is 5 seconds upto 5 times. If you don’t check Allow Retry, it will return immediately when it’s timeout or fails. Moreover, if there are multiple network devices in your network, you can control whether it sends to request information to the next device or not.
    • Only Search Devices : If true, it updated IGDDatas and skip to get port mapping lists.
    • Location : Network device’s location. If it’s empty, it uses the current network device. You can get network device lists from Device List Array in UPNPDeviceInfo structure.
    • Port List : Array of Simple UPNP Info
    • Error Code : Return error code when it fails.
  • AddPortMapping
    addportmapping.PNG

    • SimpeUPNPInfo holds port mapping information to add
      • Protocol : TCP or UDP. Defualut UE4 game port is UDP 7777. If you use steamworks, default query port is UDP 7778 (=Gameport + 1).
      • External/Internal Port : I recommand to use the same ports. If not, you need own logic in match making.
      • In Address : Local IP address to add. You can get your local ip address from Device Status Info structure.
  • DeletePortMapping
    removeportmapping.PNG

    • SimpeUPNPInfo holds port mapping information to remove
    • Protocol : TCP or UDP
    • External Port : Only needs Protocal and External Port when it removes port mapping.
  • PerformAllDevices
    PerformAllDevices

    • Perform action to all network device. It discovers local network devices and send action request.
    • SimpeUPNPInfo holds port mapping information to add or remove port
    • Action : ADD_Port or DELETE_Port

UPNP Blueprint Libarary

  • Get Device Info
    getdeviceinfo

    • Return UPNPDeviceInfo structure
  • Get UPNP State
    getstate.PNG

    • Return the current state. If it’s not idle, please don’t call any function. Anyway it’s checking the current state inside plugin.
  • Get Current Port Mapping List
    getcurrentportmappinglist.PNG

    • Return port mapping lists. It doesn’t request new port mapping list to network device.

UPNP Plugin demo
Here are sample binaries on windows. https://github.com/woodsshin/UPNPSample

Manufacturer
manufacturer

Device Statusdevicestatus

Port Mappingportmapping