1.Paths for saved files have changed, now they are under the same directory level as WindowsNoEditor. Old saved files will no longer load. Move the old files to the new directory if you wish to continue using the old files.
2.The minimum player number limit in a game is now 5. Projects with this limit of less than 5 will have it modified to 5 when opened with the 014 version editor.
3.The existing joystick customization is discontinued. If you have used it in the existing version, please manually add 'bUseTemplatJoystick=False' in the config.
4.As script compilation is incremental, there is a known problem: after modifying the script properties, when running the project to compile the script, the script properties have changed to cause the property pointer stored in the property column to be wild, and the editor will occasionally crash. Prevention method: after changing the script properties, do not select the script object, directly compile and run to upload the game and perform other operations.
5.Because of the project path migration, the script of the game project will prompt an error in VSCode (this does not affect operation). Please delete the tsconfig.json file in the project directory and re-enter the game project to fix it automatically.
Added three new mouse cursor-related APIs, which only take effect on the PC end
Whether the mouse cursor is visible
Whether the mouse cursor is locked inside the game window
Whether the mouse cursor can interact with UI components
Global Class New Function
Property Default Value Setting
New Functions in Global Class
New Enums in RuntimePlatform:
/** Platform */
enum RuntimePlatform{
/** PC - Windows */
Windows,
/** PC - Linux */
Linux,
/** PC - MacOS */
MacOS,
/** Mobile - Android */
Android,
/** Mobile - IOS */
IPhone
}
Use Example:
//Detecting Runtime Environment
if(Global.isEditor)
{
console.log(`Current environment is PIE environment`);
}
else{
console.log(`Current environment is not PIE environment`);
}
//Detecting Platform
switch (Global.currentPlatform)
{
case Type.RuntimePlatform.Windows:
{
console.log(`Current runtime platform is PC - Windows`);
}
case Type.RuntimePlatform.Linux:
{
console.log(`Current runtime platform is PC - Linux`);
}
case Type.RuntimePlatform.MacOS:
{
console.log(`Current runtime platform is PC - MacOS`);
}
case Type.RuntimePlatform.Android:
{
console.log(`Current runtime platform is Mobile - Android`);
}
case Type.RuntimePlatform.IPhone:
{
console.log(`Current runtime platform is Mobile - IOS`);
}
}
【New】PING Value, FPS Value Display Area
In edit mode, reserved areas for displaying Ping and FPS will be displayed, reminding users that those areas are occupied.
Under EditorPIE and Mobile mode, FPS and Ping values are displayed to inform the users of current network conditions.
EditorPIE↓
Mobile↓
To facilitate developers in game production, in this update, we present the new key binding function. This will allow for efficient and easy configuration of the PC game player control scheme. In addition, to improve the freedom of control scheme, we provide a set of modifiable preset UI for new projects to replace the original hard-coded joystick and camera sliding area template.
New [Key Binding Panel] in the UI Editor
New button [Key Binding] in the UI editor. Click to open the [Key Binding Panel] menu. developers can directly bind or override the mobile UI (including joystick, camera slide area, buttons) to the keypad keys in this panel.
Clicking/releasing/holding the bound keystrokes is considered as clicking/releasing/holding the corresponding UI components.
Click the button in the menu to change the binding, click the reset button to revert to the default key binds.
Preset UI Control Scheme for New Projects
Provide a preset UI file for new projects and bind a set of default key binds to replace the original default control scheme
The preset UI file includes a joystick on the left, a camera slider on the right, and three buttons (jump/attack/interact) on the bottom right
Preset UI script file for controlling the character jump by clicking the jump button
Key Binding Related APIs
New Function in MWKeyboardSimulation Class
New Functions in MWUIVirtualJoystickPanel and MWUITouchPad Class
PC-end Camera Lock Function and Related APIs
Added new camera lock function on PC-end. Players can switch the mouse lock mode by pressing Shift, in which the cursor will be hidden when locked. Turning the mouse in this mode will directly rotate the lens and character orientation, so that the left and right buttons are both freed up for performing other character actions, such as right-click for aiming and left-click for firing.
Developers can control in the script whether to allow the player to switch the mouse lock state
New Functions in MWKeyboardSimulation Class
Old Project Compatibility
We will gradually replace the previous default 'WASD movement/space for jump/left mouse button for turning the camera' control scheme with preset UI files. To minimize the impact of the project already in development, old projects can continue to use the previous control scheme:
Old projects created before V0.13 / Template rocker projects created in V0.13
Projects created after V0.14
Custom joystick project created in V0.13
New function in global settings that sets the reserve player number.
What is the Reserve Player Number?
Input Parameter Limit
Default parameter=0, meaning no reserve player number
Range: Integers between 0 to 10
Must enter a value less than the maximum number of players (a value greater than or equal to the maximum number of players will be automatically corrected)
Effect on Matchmaking
After setting the number of reserved players, the number of matchable entrants in the room = the maximum number of players - the number of reserved players
When players invite friends, have friends follow them into the room, or join the room through the game list. Non-reserved slots are used first.
Effect on Joining Game Mid-game
Note: Please use the function of reserving the player numbers appropriately
Server-side TS Log Address: https://portal.ark.online/
New APIs for deleting data
New developer backend for data storage operations
Usage Example:
Important Notes:
Cloning takes time, so you need to add a delay before printing
In the recoil component, there are two properties in the figure below. They are random values within the range based on other properties. So it's not a bug if they are different.
We standardized the rules for selecting objects with a single click Ctrl or Shift.
After using Ctrl or Shift to select objects, continue to use Ctrl or Shift to select objects again.
If the last selected object in the list is selected by shift+left click, then:
When shift+left-clicking a selected object, batch deselecting is supported.
When shift+left-clicking an unselected object, it will be continuously selected to the object.
If the last selected object in the list is selected by ctrl+left click, then: When an object is selected by the shift+left key, the selected state in the list is updated to continuously select from the last selected object to the currently selected object.
Adjust and optimize the Editor according to the revision of the MGS interaction specification, and reserve a fixed position of the chat box in the main viewport interface to remind users of possible position conflicts during the UI layout design process.
Optimized the MGS reservation specification to be consistent with the current MGS specification, and added the MGS area adaptation optimization based on the window size.
With the chat box visibility option unchecked, the chat box area will not visible in the main viewport
At this time, the main viewport of the MGS reserved area is hidden in the editing state, and the PIE layer is hidden.
At the same time, a pop-up window prompts: The chat box area is currently only hidden for editing. It will display normally when the game is released.
When the stand-alone mode is selected, considering that the stand-alone mode is not actually connected to the MGS, the MGS reservation window is not displayed by default in the main viewport and the PIE layer.
1.Undo and Redo button functions for image resources In order to facilitate developers to undo the images configured in the UI components, the Ctrl+Z undo function has been improved, and a reset button for images has been added.
Ctrl+Z Undo: Restore to the state of each component before the developer's previous operation in the UI editor, now supports continuous restoration to blank image and default component size.
Reset Button: Click to restore to blank image and default component state directly
2.UI Editor now displays custom properties
In order to facilitate developers to configure custom UI-related properties, the custom properties in the script are exposed on the properties panel of the root in the UI editor.
Instructions:
Examples of custom properties use:
@MWCore.MWProperty({
displayName: "bool",
tooltip: "a tooltip 1",
group: "Basic",
})
Boolean_Test = false;
@MWCore.MWProperty({
displayName: "int",
tooltip: "a tooltip 2",
range: { min: 50, max: 100, bShowSlider: false },
group: "Basic",
})
int_Test = 123;
@MWCore.MWProperty({
displayName: "float",
group: "Basic",
})
float_Test = 123.456;
@MWCore.MWProperty({
displayName: "FVector2",
group: "Basic",
})
FVector2_Test = new Type.Vector2(10, 12.34);
@MWCore.MWProperty({
displayName: "FVector3",
group: "Basic",
})
FVector3_Test = new Type.Vector(10, 12.34, 999.9);
@MWCore.MWProperty({
displayName: "FRotator",
group: "Basic",
})
FRotator_Test = new Type.Rotation(30, 60, 90);
@MWCore.MWProperty({
displayName: "FVector4",
group: "Basic",
})
FVector4_Test = new Type.Vector4(10, 12.34, 999.9, 255.5);
@MWCore.MWProperty({
displayName: "FString",
group: "Basic",
})
FString_Test = ("qweasdzxc");
@MWCore.MWProperty({
displayName: "Color",
group: "Basic",
})
SetTattooColor :Type.LinearColor =Type.LinearColor.Random();
@MWCore.MWProperty({
displayName: "AssetType : Texture",
asset: MWCore.AssetType.Texture,
group: "Basic2",
})
public SetTattooType = "25805";
@MWCore.MWProperty({
displayName: "EnumType",
enumType: TestEnumType,
onChangedInEditor: "RandomChangeCloth",
group: "Basic",
})
EnumType_Test : TestEnumType = TestEnumType.A;
@MWCore.MWProperty({
displayName: "AssetType : StaticMesh",
asset: [MWCore.AssetType.StaticMesh],
group: "Basic2"
})
AssetId = "";
3.Reference line optimization, added support for alignment between non-horizontal components The UI Editor now allows alignment between non-horizontal components and display alignment lines.
Removed editor installation path restrictions for special characters. It can now support special characters such as Chinese characters and space.
Playza Web official website and Playza Player game terminal are launched, and the process of Web login is improved - Playza Player Launcher download - Playza Player installation - Jump game, establish the connection between the three major sections of Play - Avatar - Create and form a closed loop to optimize the user experience.
Optimized the CPU usage of the character performance client and server. Reduced game lag when too many humanoid objects are in the game. Added optimization interface to solve the cost problem of static characters in DS:
New APIs
setServerReplicatesEnable: enable/disable character network synchronization
setServerMovementEnable: enable/disable character movement
serverCalculateEnable: enable/disable timed used calculation existing: enable/disable network synchronization + character movement function
Optimized movement
When the frame rate is low, the cost of repeatedly calculating the movement is improved.
LOD Optimizations
CPU usage of Characters in the distance is now reduced based on the distance. This optimization is more suitable for real scenes, but not suitable for when too many characters are on the same screen (more optimization items will be added).
Note: Dynamic skeletons (skirt, hair) have performance bottlenecks on low-end A57-level devices, please use them in moderation (dynamic effect optimization will be launched later).