Recent Posts

Pages: 1 [2] 3 4 ... 10
11
General / Re: Technical side discussion
« Last post by slickriptide on September 19, 2018, 05:14:03 PM »
I should probably just ask for a refresher about what defnames.bin actually does. Something to do with the .pigg virtual file system, I expect.

***edit***
To be specific: I'm not clear on where the rest of the index comes from. Looking at the bindump output from defnames.bin - Something like this:
    -------- Object 75481 --------
    Name = swat_checkpoint1
    GeoRef = 3226

relates pretty clearly to this:
    -------- ObjectLibrary 3226 --------
    Name = object_library/WorldNPCS/Swat_Checkpoint/Swat_Checkpoint.geo

whereas, this:
    -------- Object 4 --------
    Name = Balcony_Fence_Grn_8
    GeoRef = 65536

seems to be referring to some index that's coming from a part of the virtual file system that isn't listed in defnames.bin.

More to the point, though - It seems like the filepaths in the defs in the geobin zone files give you everything you need to get the corresponding object library geobin, and that object library geobin gives you everything you need to identify the .geo file(s) and the model names you need to extract from it (them). So, is defnames.bin really necessary? Or is defnames.bin some sort of pre-computed cache that means something to the game client but that doesn't have any real meaning outside of the game client?

***end edit***

That aside, I have an unrelated question about Paragon Chat - While googling around for "defnames.bin", Goggle dropped me into an old Titan forums thread titled How to make your own maps.

This sort of goes back to the question I asked a few posts upstream about whether Textparser in the client is able to recognize a dev source file and load it. It apparently required a small patch to the client but the answer appears to be "yes".

So -- Does Paragon Chat implement this particular patch? If it does, then can I /mapmove to a mapfile in my data folder if I setup the references correctly in my zone.cfg?
12
General / Re: Paragon Chat FAAAQ
« Last post by Tahquitz on September 19, 2018, 02:26:34 PM »
I seem to recall that Tequila is not endorsed by Titan Network because running it would access and download a new copy of the free issue 24 beta to a computer if it didn't already have a copy as well as updating things -- and if you do that you might be not abiding by NC soft distribution rules

Tequila is not a Titan Network project, it belongs to SaveCOH.com.  But we've told users to use the client to get the files, so if we didn't endorse it, we're doing a lousy job.

We make it clear that we don't run Tequila to manage support expectations.  Codewalker, TonyV and Sekoia are the wrong folks to ask to fix it.  That's all.

You can get it here.
13
Task Force Hail Mary / Re: New efforts!
« Last post by Felderburg on September 19, 2018, 04:37:12 AM »
It was mentioned a page or two back iirc - apparently all the ships from the movie were named after iconic Australian cars...

https://www.pedestrian.tv/film-tv/apparently-theres-shitloads-of-sly-aussie-references-in-thor-ragnarok/
14
General / Re: Technical side discussion
« Last post by Codewalker on September 19, 2018, 02:51:37 AM »
Oh awesome - some questions:
* do you happen to know how nearfade/farfade work off hand? Saves some brain ache if you do, no worries if not

Those are easy, it's just the distance ("inside", relative to near/far) that the object starts to fade out.

So if near=50, nearfade=25, far=200, farfade=10,
the object would be invisible if you're closer than 50', would gradually fade to full opacity between 50' and 75', then at 190' would start fading out, and invisible again beyond 200'.

Most full-quality 'master' models don't use near or nearfade, but lower-quality models use those so that they are hidden until you get to a certain distance, which is the old way of doing things.

Objects with AutoLOD (most newer models) just specify far/farfade as the mesh reduction info handles the distances for deleting triangles.

* do you know what the various flag values mean?

According to the textparser table there's only two:
ErrorTriCount: 0x02
UseFallbackMaterial: 0x80

I have no idea what ErrorTriCount does. UseFallbackMaterial I would *guess* from the name might force the use of the fallback textures for the non-multi9 shader (used for graphics cards that can't handle ultra mode features), but I haven't tested that.

* are there any version 6 geos in I24? I couldn't find any myself, unless there are files which use this same file structure which don't use .geo as the extension

Honestly I'm not sure. That info is based on how a version 6 geo would be loaded by the game, but I haven't run a full sweep to see if any of those actually exist. All of the assets created at that point in time might have been re-exported later for some reason, wiping them out.

* while we're here, there's something I've always wanted to know about piggs - what's the table of compressed blobs of data which comes after the strings table? I've heard it referred to as "meta"/"headers", but no idea what it's actually for?

My old C++ libpigg called it "extra", but "headers" is probably the best term.

It's an optimization trick. Certain types of files, specifically geo, texture, and anim, all start with a 4-byte header size field. When pigg files are generated, those types of files have the header extracted and saved uncompressed into a special section of the pigg.

That section is loaded as a single chunk with the pigg file and always kept resident in memory. When the pigg library handles a read request for one of those files, if the offset+size is entirely within the cached header, it can be served without ever having to perform disk I/O.

This mostly affects game startup, when all of the in-memory indexes are built and every texture and geo header is scanned.
15
General / Re: Technical side discussion
« Last post by Codewalker on September 19, 2018, 02:20:19 AM »
Fun factoid about geobin files - you have to deserialize them in the order they're written, leaves-first. Otherwise, you decode a lot of instances before you decode the thing they're instancing from.

That's correct. The proper way to read a geobin is to build up a library of Defs by reading them and creating an in-memory Def structure for each one as you go. By doing them in order, it's guaranteed that any child defs of the group are already in memory -- child defs should just be a pointer to one that's already been loaded.

Then Refs, which are the roots of the scene graph, are simply pointers to Defs that have already been loaded.

The object library is a bunch of Defs that are assumed to always be available (preloaded) regardless of which geobin you're reading. Technically they're demand loaded when first referenced, but there's an index so the names are effectively already defined, and they can hang around in the cache when changing maps. There's nothing preventing someone from making a map with a Ref directly to something out of the object library that isn't even defined in the geobin.

Refs are also special in that top-level refs are part of the scene packet and explicitly sent by the server to the client. There is a protocol for tracking the visibility of top-level Refs -- this is used for things like making the Ski Chalet visible, or for making the War Walls invisible during an invasion.
16
Task Force Hail Mary / Re: New efforts!
« Last post by LateNights on September 19, 2018, 01:47:33 AM »
So did anyone else notice that the Asgardian ship is called Statesman and Spidey's Iron Spider suit was sporting Lord Arachnos legs. Huh? Huh? me either.

It was mentioned a page or two back iirc - apparently all the ships from the movie were named after iconic Australian cars...
17
General / Re: Technical side discussion
« Last post by slickriptide on September 18, 2018, 11:58:22 PM »
Fun factoid about geobin files - you have to deserialize them in the order they're written, leaves-first. Otherwise, you decode a lot of instances before you decode the thing they're instancing from.

I discovered this by doing the exact opposite, of course. Back to the drawing board.
18
Other Games / Re: What are you playing now? Share with everyone
« Last post by FlyingCarcass on September 18, 2018, 11:44:45 PM »
Decided to return to Battletech. Fun strategy game, even if the campaign is rather long.
19
General / Re: Technical side discussion
« Last post by spectre1989 on September 18, 2018, 09:45:16 PM »
Here's the geodraw code. It's ugly, but the logic is almost exactly what the game itself does to load geos (we disassembled the geo loader and single stepped through it).

https://github.com/cwtitan/geodraw
Thanks very much for sharing that :D

Well done, Spectre! You must have been a tech writer in a previous life. That's some of the most complete and readable docs I've read in a while.
Thanks mate :)

spectre1989: Your "unknown section" that exists from version 2-6 is LOD (level of detail) info. Version 2-5 include one of these for each model in the file, in the same order as the models themselves:

Code: [Select]
int32 num; // (can be 6 at most)
{
    f32 allowedError;
    f32 near;
    f32 far;
    f32 nearfade;
    f32 farfade;
    uint32 flags;
} // repeated 6 times

Version 6 is similar, but instead of having a static array of 6 structures, it only repeats "num" times, and after each flags field there are two null-terminated strings: model name and file name to substitute at that distance.

Version 7 and newer geos omit this information. Some of the info was moved to lods.bin instead, indexed by model name. This version and higher can do automatic mesh reduction instead of substituting other models -- the information for this is a little complex to describe here but is one of the later sections in the model header.
Oh awesome - some questions:
* do you happen to know how nearfade/farfade work off hand? Saves some brain ache if you do, no worries if not
* do you know what the various flag values mean?
* are there any version 6 geos in I24? I couldn't find any myself, unless there are files which use this same file structure which don't use .geo as the extension
* while we're here, there's something I've always wanted to know about piggs - what's the table of compressed blobs of data which comes after the strings table? I've heard it referred to as "meta"/"headers", but no idea what it's actually for?
20
Task Force Hail Mary / Re: New efforts!
« Last post by Twisted Toon on September 18, 2018, 09:08:56 PM »

Sad people still feel 6 years later like taking jabs at the COH community for not going down without a fight.

They're probably upset that they can't garner loyalty like that.
Pages: 1 [2] 3 4 ... 10