XC_Core version 8 update

Higor
Godlike
Posts: 1878
Joined: Sun Mar 04, 2012 6:47 pm

XC_Core version 8 update

Post by Higor »

XC_Core version 8 update.
XC_Core_8.7z
https://github.com/CacoFFF/XC-UT99/releases/tag/C.8

Linux build requires Core.so build that exports __Context::Env symbol.

Added/improved APIs for use in other native packages:
- FThread
- FMallocThreadedProxy
- Atomics
- FOutputDeviceFileXC
- FOutputDeviceInterceptor
- API_FunctionLoader

== FThread:
Simple multithreader abstraction, lets the coder easily run new threads
without resorting to platform-specific code.

== FMallocThreadedProxy:
Uses spinlocks to prevent multiple threads from using the game's allocator.
Allows launchers to implement the proxy without importing from XC_Core.dll

== FOutputDeviceFileXC:
Improved log output device for launchers and UCC apps.
Safe to log lines of any char length.
Uses Windows \r\n newline characters regardless of platform.
Adding -logflush to the app's command line will force flush after every line.
The log file can be opened in read-only mode while the app is still running.
If two apps attempt to use the same filename, another file with a '_2' appended to it will be used.

== FOutputDeviceInterceptor:
Remembers last 16 logs and in case of seeing a repeating pattern, it'll
simply indicate how many times the last X (1 to 16) lines repeat instead
of printing everything.
When the game enters into 'Critical' shutdown stage, a new timestamped
log file will be created with the Critical lines logged on it.
The interceptor also has a spinlock system to ensure thread safe operations.

XC_Core package downloader changes:
- Uses asynchronous decompression.
- More reliable file writing.

Added BrushToMesh native for use in Unreal Editor.
You do not have the required permissions to view the files attached to this post.
User avatar
sektor2111
Godlike
Posts: 6541
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: XC_Core version 8 update

Post by sektor2111 »

Time for BrushToMesh feed-back.
MeshMaker did not help me at doing some huge deco-wall (for masking invisible wall from some map). I used convertor BrushToMesh from XC stuff.

What I see
I loaded supposed mesh giving a name for package. Mesh was created but... I could not figure package containing mesh for saving it and Editor rejected console directive. While map was saved using a reference to an un-existent package I could not open it later (almost to lose my tweaking template) until I created a fake place-holder and another place-holder mesh for opening map. Later I could define another mesh in that already made package which I opened and then I saved it. Idk, for me was a harder deal to make a package with said mesh but I could do it in end - purpose is to deliver a mesh over a wall but... as usual for a big-ass mesh, it will disappear from view if you are not looking at center of mesh in certain situation. I think big meshes are a bad idea anyway, render is crapped up at this point, doesn't matter how relevant is that decoration - pure client-side. It's visible even if is centered in wall but... is gone if you cannot see the center (location).
[attachment=0]A_Wall.png[/attachment]

For "BrushtoMesh" probably we do need a clear tutorial with a few images about creating an U package with a mesh that can be used later for importing/mapping etc. It's not that clear how to work with these if you don't intend to use MyLevel. I think first is needed a package with an empty decoration and then creating mesh for that decoration else nothing can be saved - or maybe I was doing something wrong...
You do not have the required permissions to view the files attached to this post.