Building the first and only UGC Game Engine for onchain games and autonomous worlds.


Share Dialog
Share Dialog
Building the first and only UGC Game Engine for onchain games and autonomous worlds.

Subscribe to Project Twelve

Subscribe to Project Twelve

Originally, the default playback animation duration of all animations in PlayAnimation is 1 second. Now you can adjust the playback duration through the second parameter ( AnimationLength ) of the TS interface (playAnimation)
The log of the editor console only prints TS-related logs
UI Editor-Related Optimization
1.UI widget layer optimization
The operation box of the selected widget is temporarily set to the top, which is convenient for developers to adjust the selected widget through the operation box next time
The level of each widget under the same parent is determined by the Z factor. When the Z factor is the same, it is determined by the top and bottom order of the object list. The widgets located further down in the object list are displayed on the upper level
Any child widgets are displayed on top of their parent widgets
As shown in the example above, when the Z coefficient of each widget is 0, according to the order of the object list from bottom to top, the display order of the widgets is red>white>MWCanvas>yellow>green
2.The object list does not expand the child node when copying the parent node in the collapsed state
In order to make it easier for developers to copy and paste nodes, the copied parent node will no longer expand all child nodes.
3.The UI object name in the object list cannot be empty
The name of the UI widget cannot be blank or pure space, and it will revert to the previous name if it does not meet the requirements
4.UI Editor right-click to show Hierarchy List
To facilitate the selection of a widget among multiple overlapping widgets, a new right-click menu - select UI object function is added. When you right-click in the designer, a list of the names of all UI widgets located in the clicked area will appear. Select and click on the list. After the widget, the UI widget will be selected
5.UI Editor: Ctrl+S to quick save
To quick save the modified UI file, use Ctrl+S to quickly save the changes in the UI editor
6.UI Editor: Ctrl+B to hide / show dotted border
To preview the UI style after hiding the dotted border, use Ctrl+B to hide/show the dotted border
7.Added resource list and script list to UI editor
To drag and drop UI textures and scripts into the UI editor, the resource list and script list are added to the UI editor; and after adjusting the size of each window, click View - Restore Default Window settings in the upper right corner to restore the Default window layout
8.Added a new drawing type for pictures - the [Nine-Square Grid]
It is convenient for users to cut the picture and grasp the specific size to zoom, and add the [Nine-Square Grid] picture drawing type
Instructions:
Divide a picture into 9 parts, and scale the entire picture while keeping the size of the four corners ( 1, 3, 7, 9 ) unchanged
Left margin: Controls the width of the 1, 4, and 7 tiles of the nine-square grid
Top margin: controls the height of the 1, 2, and 3 tiles of the nine-square grid
Right margin: controls the width of the 3, 6, and 9 tiles of the nine-square grid
Bottom margin: Controls the height of the 7, 8, and 9 tiles of the nine-square grid
When scaling the image width, tiles 2, 5, and 8 will be scaled according to the width
When scaling the image height, tiles 4, 5, and 6 will be scaled according to the height
Tile 5 scales both width and height when the image size changes

9.After setting the image, the UI widget scales to the original size of the image
After dragging the image resource into the image property, in addition to replacing the image, the size of the image widget will change to the original size of the image resource
10.Text wrap feature
New feature [horizontal display] for text / input box / button widget
Clipping: The characters that exceed the text box will be clipped according to the size of the text box
Automatic Text Wrapping: Automatically wrap texts based on the size of the text box and the characters of the text, and supports multi-language text wrapping
No Clipping: Do not crop characters that exceed the text box
11.Double-click the text box to edit the text directly
In order to facilitate developers to quickly set the text content of the UI, double-click the widget to modify the corresponding text content, and restore the normal state after losing focus.
12.Scroll box optimization
Movement Type
Elastic: when the scroll box is pulled to the top or bottom, it can still continue to pull a certain distance and has a rebound effect
Restricted: The scroll box cannot continue to be pulled when it is pulled to the top or bottom
Coefficient of Elasticity
The larger the value, the longer the scroll bar will continue to pull when it is pulled to the top or bottom
Enable Inertia
If checked, after the player finishes sliding the scroll bar, the scroll bar will move another distance according to the speed at the end of the sliding
Scroll Box Color
Used for editing the scroll bar color
scroll box width
Used to edit the width of the scroll bar
【Character Editor】LowPoly-Style character
LowPoly style characters are now available for editing!
Entrance: In the "Basic - Character Settings" option in the character editor, switch the character to LowPoly Male or LowPoly Female
【Optimization】Removed isListenServer
The GamePlay.isListenServer API used for detecting the environment has been removed. Using it will cause errors and failure to compile.
【New Feature】Scan QR code to log in to the editor
The Editor accesses the Webview login of the account, and the domestic/overseas BC account will be merged in the future.
The current web interface does not support account and password login, but supports QR code login and verification code login
Log Out Function
Added a logout option to the edit interface - project drop-down menu
Added a logout button to the project page
When you click to log out, go back to the Editor login interface
Domestic / overseas editor region switching logic:
The upper right corner of the current editor login interface supports region selection
When switching region to Mainland China, the editor is the domestic environment; when switching to any region other than Mainland China, the editor switches to the overseas version
【Optimization】Editor Log system optimization
Shield the Log that is not related to the developer's TS logic, and only keep the MWTS Log , which will not interfere with the developer
Added time information in theLog
Log classification optimization: Info, Log, Warning, Error (all four levels are visible in the Log system)
【Optimization】Object number copying optimization
When copying an object, if the copied object has a parent-child structure, only the parent object will be numbered, and the child object's name will remain unchanged, and no automatic numbering will be given
【Optimization】MW.exe automatically adds startup parameters, you can double-click to directly open the editor
Editor shortcuts do not need to manually add startup parameters, double-click to directly start the editor
【Optimization】The default appearance of the two-dimensional character is updated
Updated the default appearance of the two-dimensional style, and replaced the abandoned resources used by the original default image with the latest official resources


【Optimization】Project content GUID renaming requirements
Change the "GUID" in the project content to "Project content ID"
【Optimization】Ctrl+Right-click to move the shortcut key priority optimization
Adjust the shortcut key priority, when using Ctrl+right key+(WASD) to move the object, Ctrl+S does not take effect
【Optimization】Right-click on the project homepage supports opening the file path
The "Open File Path" option is added to the right-click menu of the project homepage. After clicking, locate the project location in the file explorer.
【Optimization】Editor tab optimization
Optimized the sub-editor, which can be dragged and merged with the main editor and displayed in the form of tabs
【Optimization】After the object is referenced by the straw, the object name is displayed in the property interface
The property panel eyedropper widget display is changed from the original object ID to the object name
【New Feature】Prefab now supports manual merges
Support for creating merged objects within the prefab editing viewport
Prefabs containing merged objects merge properly when used in a scene
Prefabs containing merged objects can be dynamically generated and merged normally on the go
【Optimization】Prefab now supports nesting
Prefabs now support nesting and have the following application scenarios
Drag and mount from the local repository to the prefab structure in the object tree
Drag and drop from the local library to the prefab editing viewport
Drag and mount from the project content to the prefab structure in the object tree
Drag and drop from the project content to the prefab editing viewport
Nested execution
Import the prefab into the project content, and execute the mount logic on the content under the root node of the prefab
When saving a prefab, update the referenced content to the modified prefab (structure, script, UI )
Note: If the name is the same when updating the reference, the renaming process will be performed (it will cause the script and UI to fail, and the developer needs to modify it)
【Optimization】Prefab export optimization
Developers can choose the corresponding prefab in the outermost folder under the project content - prefab category, and export the prefab from the right-click menu
Note: Currently, only folders in the content navigation are supported for export, which will be optimized in the future
【Optimization】Multi-select prefab deletion logic optimization
Optimized the multi-select prefab deletion logic in the object tree to solve the problem of disk read and write caused by instantiated objects during original deletion
【Optimization】PushModel
Reduce some of the consumption of double-end attribute comparison, attribute synchronization, etc., saving about 10% of the original CPU consumption of the server
Added TS script memory monitoring
Add an interface to get the current TS script memory usage in the TS interface
type HeapStatistics = {
/** Total heap size unit: byte /
totalHeapSize: number;
/* Total executable heap size unit: byte /
totalHeapSizeExecutable: number;
/* Used heap size unit: byte /
usedHeapSize: number;
/* Dynamically allocated memory unit: byte /
mallocedMemory: number;
/* Dynamic memory allocation peak unit: byte */
peakMallocedMemory: number;
};
【Loading process optimization】
Extend the MW-Loading process. After the deserialization scene is completed, add the server synchronization double-end object stage. After the synchronization is completed, the loading page is closed and the game is entered.
Solve the black screen problem when deserialization is completed to TS-Loading
Resolved the long lags after entering the game
【Character】Default crouching speed change
The maximum movement speed of the character is adjusted to 100 when crouching and walking by default.
【Interface optimization】Optimized bounding box acquisition logic
Optimized the method of obtaining the bounding box of the object. When using getBoundingBoxSize() on the PIE and mobile terminals, the obtained bounding box size is the same;

Originally, the default playback animation duration of all animations in PlayAnimation is 1 second. Now you can adjust the playback duration through the second parameter ( AnimationLength ) of the TS interface (playAnimation)
The log of the editor console only prints TS-related logs
UI Editor-Related Optimization
1.UI widget layer optimization
The operation box of the selected widget is temporarily set to the top, which is convenient for developers to adjust the selected widget through the operation box next time
The level of each widget under the same parent is determined by the Z factor. When the Z factor is the same, it is determined by the top and bottom order of the object list. The widgets located further down in the object list are displayed on the upper level
Any child widgets are displayed on top of their parent widgets
As shown in the example above, when the Z coefficient of each widget is 0, according to the order of the object list from bottom to top, the display order of the widgets is red>white>MWCanvas>yellow>green
2.The object list does not expand the child node when copying the parent node in the collapsed state
In order to make it easier for developers to copy and paste nodes, the copied parent node will no longer expand all child nodes.
3.The UI object name in the object list cannot be empty
The name of the UI widget cannot be blank or pure space, and it will revert to the previous name if it does not meet the requirements
4.UI Editor right-click to show Hierarchy List
To facilitate the selection of a widget among multiple overlapping widgets, a new right-click menu - select UI object function is added. When you right-click in the designer, a list of the names of all UI widgets located in the clicked area will appear. Select and click on the list. After the widget, the UI widget will be selected
5.UI Editor: Ctrl+S to quick save
To quick save the modified UI file, use Ctrl+S to quickly save the changes in the UI editor
6.UI Editor: Ctrl+B to hide / show dotted border
To preview the UI style after hiding the dotted border, use Ctrl+B to hide/show the dotted border
7.Added resource list and script list to UI editor
To drag and drop UI textures and scripts into the UI editor, the resource list and script list are added to the UI editor; and after adjusting the size of each window, click View - Restore Default Window settings in the upper right corner to restore the Default window layout
8.Added a new drawing type for pictures - the [Nine-Square Grid]
It is convenient for users to cut the picture and grasp the specific size to zoom, and add the [Nine-Square Grid] picture drawing type
Instructions:
Divide a picture into 9 parts, and scale the entire picture while keeping the size of the four corners ( 1, 3, 7, 9 ) unchanged
Left margin: Controls the width of the 1, 4, and 7 tiles of the nine-square grid
Top margin: controls the height of the 1, 2, and 3 tiles of the nine-square grid
Right margin: controls the width of the 3, 6, and 9 tiles of the nine-square grid
Bottom margin: Controls the height of the 7, 8, and 9 tiles of the nine-square grid
When scaling the image width, tiles 2, 5, and 8 will be scaled according to the width
When scaling the image height, tiles 4, 5, and 6 will be scaled according to the height
Tile 5 scales both width and height when the image size changes

9.After setting the image, the UI widget scales to the original size of the image
After dragging the image resource into the image property, in addition to replacing the image, the size of the image widget will change to the original size of the image resource
10.Text wrap feature
New feature [horizontal display] for text / input box / button widget
Clipping: The characters that exceed the text box will be clipped according to the size of the text box
Automatic Text Wrapping: Automatically wrap texts based on the size of the text box and the characters of the text, and supports multi-language text wrapping
No Clipping: Do not crop characters that exceed the text box
11.Double-click the text box to edit the text directly
In order to facilitate developers to quickly set the text content of the UI, double-click the widget to modify the corresponding text content, and restore the normal state after losing focus.
12.Scroll box optimization
Movement Type
Elastic: when the scroll box is pulled to the top or bottom, it can still continue to pull a certain distance and has a rebound effect
Restricted: The scroll box cannot continue to be pulled when it is pulled to the top or bottom
Coefficient of Elasticity
The larger the value, the longer the scroll bar will continue to pull when it is pulled to the top or bottom
Enable Inertia
If checked, after the player finishes sliding the scroll bar, the scroll bar will move another distance according to the speed at the end of the sliding
Scroll Box Color
Used for editing the scroll bar color
scroll box width
Used to edit the width of the scroll bar
【Character Editor】LowPoly-Style character
LowPoly style characters are now available for editing!
Entrance: In the "Basic - Character Settings" option in the character editor, switch the character to LowPoly Male or LowPoly Female
【Optimization】Removed isListenServer
The GamePlay.isListenServer API used for detecting the environment has been removed. Using it will cause errors and failure to compile.
【New Feature】Scan QR code to log in to the editor
The Editor accesses the Webview login of the account, and the domestic/overseas BC account will be merged in the future.
The current web interface does not support account and password login, but supports QR code login and verification code login
Log Out Function
Added a logout option to the edit interface - project drop-down menu
Added a logout button to the project page
When you click to log out, go back to the Editor login interface
Domestic / overseas editor region switching logic:
The upper right corner of the current editor login interface supports region selection
When switching region to Mainland China, the editor is the domestic environment; when switching to any region other than Mainland China, the editor switches to the overseas version
【Optimization】Editor Log system optimization
Shield the Log that is not related to the developer's TS logic, and only keep the MWTS Log , which will not interfere with the developer
Added time information in theLog
Log classification optimization: Info, Log, Warning, Error (all four levels are visible in the Log system)
【Optimization】Object number copying optimization
When copying an object, if the copied object has a parent-child structure, only the parent object will be numbered, and the child object's name will remain unchanged, and no automatic numbering will be given
【Optimization】MW.exe automatically adds startup parameters, you can double-click to directly open the editor
Editor shortcuts do not need to manually add startup parameters, double-click to directly start the editor
【Optimization】The default appearance of the two-dimensional character is updated
Updated the default appearance of the two-dimensional style, and replaced the abandoned resources used by the original default image with the latest official resources


【Optimization】Project content GUID renaming requirements
Change the "GUID" in the project content to "Project content ID"
【Optimization】Ctrl+Right-click to move the shortcut key priority optimization
Adjust the shortcut key priority, when using Ctrl+right key+(WASD) to move the object, Ctrl+S does not take effect
【Optimization】Right-click on the project homepage supports opening the file path
The "Open File Path" option is added to the right-click menu of the project homepage. After clicking, locate the project location in the file explorer.
【Optimization】Editor tab optimization
Optimized the sub-editor, which can be dragged and merged with the main editor and displayed in the form of tabs
【Optimization】After the object is referenced by the straw, the object name is displayed in the property interface
The property panel eyedropper widget display is changed from the original object ID to the object name
【New Feature】Prefab now supports manual merges
Support for creating merged objects within the prefab editing viewport
Prefabs containing merged objects merge properly when used in a scene
Prefabs containing merged objects can be dynamically generated and merged normally on the go
【Optimization】Prefab now supports nesting
Prefabs now support nesting and have the following application scenarios
Drag and mount from the local repository to the prefab structure in the object tree
Drag and drop from the local library to the prefab editing viewport
Drag and mount from the project content to the prefab structure in the object tree
Drag and drop from the project content to the prefab editing viewport
Nested execution
Import the prefab into the project content, and execute the mount logic on the content under the root node of the prefab
When saving a prefab, update the referenced content to the modified prefab (structure, script, UI )
Note: If the name is the same when updating the reference, the renaming process will be performed (it will cause the script and UI to fail, and the developer needs to modify it)
【Optimization】Prefab export optimization
Developers can choose the corresponding prefab in the outermost folder under the project content - prefab category, and export the prefab from the right-click menu
Note: Currently, only folders in the content navigation are supported for export, which will be optimized in the future
【Optimization】Multi-select prefab deletion logic optimization
Optimized the multi-select prefab deletion logic in the object tree to solve the problem of disk read and write caused by instantiated objects during original deletion
【Optimization】PushModel
Reduce some of the consumption of double-end attribute comparison, attribute synchronization, etc., saving about 10% of the original CPU consumption of the server
Added TS script memory monitoring
Add an interface to get the current TS script memory usage in the TS interface
type HeapStatistics = {
/** Total heap size unit: byte /
totalHeapSize: number;
/* Total executable heap size unit: byte /
totalHeapSizeExecutable: number;
/* Used heap size unit: byte /
usedHeapSize: number;
/* Dynamically allocated memory unit: byte /
mallocedMemory: number;
/* Dynamic memory allocation peak unit: byte */
peakMallocedMemory: number;
};
【Loading process optimization】
Extend the MW-Loading process. After the deserialization scene is completed, add the server synchronization double-end object stage. After the synchronization is completed, the loading page is closed and the game is entered.
Solve the black screen problem when deserialization is completed to TS-Loading
Resolved the long lags after entering the game
【Character】Default crouching speed change
The maximum movement speed of the character is adjusted to 100 when crouching and walking by default.
【Interface optimization】Optimized bounding box acquisition logic
Optimized the method of obtaining the bounding box of the object. When using getBoundingBoxSize() on the PIE and mobile terminals, the obtained bounding box size is the same;
>2.6K subscribers
>2.6K subscribers

P12 Editor Alpha V0.40.0.0 Release Note
Version: 0.40.0.0 Release Date: November 28, 2024We're excited to bring you our latest update! This release introduces powerful font customization options, dynamic visual effects, and enhanced UI controls to help you create even more impressive experiences. Highlights:[NEW] 12 New Professional Fonts[NEW] Skybox Background Transition Effects[ENHANCEMENT] World UI 2.0: Advanced Display Controls[ENHANCEMENT] Material Specular Effects[NEW] 🔤 12 New Professional FontsWe've significantly...

P12 Arcana 3.0 Trial Run
OverviewDear P12 Creators and Voters community: Since November 2023, we’ve came through 550 days of creative time, 18 rounds P12 Arcana filled with fantastic creations and inspiring works done! Along the way, we’ve made changes to P12 Arcana from display gallery to playable / launchable creations via PGE Client. However, there are more issues to be tackled:Fradulent votes on over-rated creationsDecent creations being over-looked / missedStable / On-time bounty to our P12 StarmakersP12 Arcana ...
P12 Genesis Airdrop Tutorial
IntroGreetings to all our gamers and developers! We have witnessed more than 30K Steam Gamers and Developers joining the Genesis Soul-Bound NFT Airdrop! Big thanks for your great passion for P12! This is a step-by-step tutorial on how you can claim NFTs if you are a Steam Gamer or Developer. Feel free to take a close look and if you have further questions, please leave a message here:Discord - Group Chat That's All Fun & GamesDiscord is great for playing games and chilling with friends, ...

P12 Editor Alpha V0.40.0.0 Release Note
Version: 0.40.0.0 Release Date: November 28, 2024We're excited to bring you our latest update! This release introduces powerful font customization options, dynamic visual effects, and enhanced UI controls to help you create even more impressive experiences. Highlights:[NEW] 12 New Professional Fonts[NEW] Skybox Background Transition Effects[ENHANCEMENT] World UI 2.0: Advanced Display Controls[ENHANCEMENT] Material Specular Effects[NEW] 🔤 12 New Professional FontsWe've significantly...

P12 Arcana 3.0 Trial Run
OverviewDear P12 Creators and Voters community: Since November 2023, we’ve came through 550 days of creative time, 18 rounds P12 Arcana filled with fantastic creations and inspiring works done! Along the way, we’ve made changes to P12 Arcana from display gallery to playable / launchable creations via PGE Client. However, there are more issues to be tackled:Fradulent votes on over-rated creationsDecent creations being over-looked / missedStable / On-time bounty to our P12 StarmakersP12 Arcana ...
P12 Genesis Airdrop Tutorial
IntroGreetings to all our gamers and developers! We have witnessed more than 30K Steam Gamers and Developers joining the Genesis Soul-Bound NFT Airdrop! Big thanks for your great passion for P12! This is a step-by-step tutorial on how you can claim NFTs if you are a Steam Gamer or Developer. Feel free to take a close look and if you have further questions, please leave a message here:Discord - Group Chat That's All Fun & GamesDiscord is great for playing games and chilling with friends, ...
No activity yet