XC_Core version 8 update

Post Reply
Higor
Godlike
Posts: 1866
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
(289.59 KiB) Downloaded 200 times
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.
User avatar
sektor2111
Godlike
Posts: 6403
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...
Attachments
A_Wall.png
Post Reply