Kavawuvi

Invader

137 posts in this topic

Added a new program to the Invader toolkit: invader-archive.

 

It works like invader-build except, rather than outputting a cache file, it outputs a .tar.xz file of the HEK tags that were used to build the map. This can be useful for distributing cache files as a set of tags, preserving the original tag data.

 

Want to test it? You can download a Windows build here: https://invader.opencarnage.net/builds/nightly/download-latest.html

 

DSalimander, Vuthakral and Takka like this

Share this post


Link to post
Share on other sites

Tiddy-bits:

Added a new program to the Invader toolkit: invader-reverse-dependency.

 

This program takes a tag and finds every tag that depends on it. This is a slightly slow process, taking about 0.72 seconds on my PC to search through the entirety of the Gearbox campaign and multiplayer tags to find a given tag, so using it on many tags at once probably isn't recommended.

DSalimander likes this

Share this post


Link to post
Share on other sites

A few changes were made:

  • Invader is now version 0.2
  • invader-archive can now do single tags (-s)
  • invader-dependency (formerly invader-reverse-dependency) now lists the dependencies of a tag and indicates if they're broken
    • You can do reverse dependency checking, which will list all tags that depend on the tag (-r)
    • You can do recursive dependency checking, which will list all tags directly and indirectly referenced by the tag (-R)

As always, you can download Windows builds here: https://invader.opencarnage.net/builds/nightly/download-latest.html

DSalimander and ST34MF0X like this

Share this post


Link to post
Share on other sites

Invader is now 0.3.0!

 

This is a major change to Invader. For one, Python is now required to build Invader. It is no longer an optional dependency.

 

Also, building a custom, non-stock cache file or a ui.map using custom resource maps (i.e. bitmaps.map, loc.map, sounds.map) will only be able to address a certain number of tags in the custom resource maps:

  • Multiplayer maps are limited to the number of resources in the stock Halo Custom Edition installation
  • Singleplayer maps are limited to the minimum number of resources in the resource maps invader-resource builds. Currently invader-resource only builds resource maps using purely retail tags, but an option to build a resource map with additional tags is planned

The reasoning for this is simple. Multiplayer maps have no need to access the extended resources and they shouldn't, anyway, as they may be distributed using a map downloader. Therefore, it is unsafe to assume that the user will have custom resource maps as, if they don't, the game will crash.

 

On the other hand, singleplayer maps are not typically distributed through a map downloader, so it is safer to use the extended resources, but I want to avoid an issue where people are forced to switch between different bitmaps.map, sounds.map, and loc.map files to use different singleplayer maps within the same maps folder. Therefore, only the stock maps or replacements for them can use custom resources beyond what was provided with the retail version of the game.

 

A more minor change: Command lists' BSPs are now calculated. This was actually 0.2.1's change, but I never announced it here on Open Carnage. So, it's getting included in the 0.3.0 announcement. This fixes a few issues with some campaign maps.

 

0.3.2: Fixed a bug with how resource data was counted, resulting in only half of the resource data being used for indexing when building cache files.

ST34MF0X and Takka like this

Share this post


Link to post
Share on other sites

Invader is now 0.4.3!

 

Once again, another major change. Here are the changes:

  • Added another program to the Invader toolkit (invader-font). This allows you to create font tags from .ttf files.
  • The way encounters' BSP indices have been determined has been revised. This fixes the T-posing issues in d40.map (The Maw).
ST34MF0X likes this

Share this post


Link to post
Share on other sites

Invader is now 0.5.0!

 

This is yet again another major change. Here are the changes:

  • invader-build can now forge the CRC32 of maps it builds (--forge-crc or -c)
  • invader-crc's forging CRC functionality was removed in favor of invader-build since it lets you forge a CRC at the same time as building a map
  • invader-build now puts the CRC32 in the header of the map

As always, you can download builds at https://invader.opencarnage.net/builds/nightly/download-latest.html

ST34MF0X likes this

Share this post


Link to post
Share on other sites

Here is me rendering the same font five times: one on Windows 10 using tool.exe, one on Wine using tool.exe, one on Linux using invader-font, one on Windows using invader-font, and then one using GIMP, a free image editor. I did also test invader-font on Wine, but it produces completely identical results (byte-for-byte) to running it on Windows 10.

 

dcrPsUu.png

 

Here's what I noticed:

  • The invader-font tool produces nearly identical results between Linux and Windows 10, with, at worst, a 0.4% difference in intensity on certain pixels. This is not surprising since they both use the same FreeType library.
  • GIMP seems to have somewhat different antialiasing than invader-font, resulting in it looking a little more intense. Otherwise, it looks around the same.
  • The Wine result does look partially correct, but the spacing is too narrow, resulting in some characters touching one another. For example, the "la" in "lazy" and "ha" in "halo(" have zero spacing between each other. Also the period is a square.
  • The Windows 10 render of the font barely resembles the font at all, somehow managing to look even worse than the Wine render. Not only does it very noticeably lack anti aliasing, but it isn't even monospaced. Like Wine, the period is a square.

 

In other news Invader is now 0.6.0.

ST34MF0X likes this

Share this post


Link to post
Share on other sites

I haven't posted a full update in a couple days, so I guess I'll do that. I've posted Invader 0.7.2. Here are the changes since 0.5.0:

  • An issue with invader-bitmap was fixed.
  • invader-string has been started. Currently it only does string_list and unicode_string_list tags. HUD message text tags are not implemented yet.
  • Some more hidden values have been calculated for machines. This probably won't fix anything, but for the sake of accuracy, I did it.
  • When building maps that potentially use indexed tags (loc.map), invader-build will now compare the string data rather than comparing file size to determine if it matches what is in loc.map.
  • invader-build no longer allows you to go beyond the number of bitmaps/sounds/loc tags used in stock bitmaps.map, sounds.map, or loc.map when building multiplayer maps, nor will it allow you to go beyond the Invader-extended tag set when building singleplayer/ui maps.
    • This is to discourage people from creating a situation where you would need different, custom resource maps for different maps in your maps folder.
    • This is also to discourage people from creating multiplayer maps that require custom resource maps - something which could theoretically happen accidentally when using a map downloader.

Due to the lack of interest in Invader/this topic on this site, I'm not going to be posting updates here as often. Sorry!

 

Continue to check nightly builds and the GitHub repository for updates, though.

Takka, Sunstriker7 and ST34MF0X like this

Share this post


Link to post
Share on other sites

I wouldn't say there's a lack of interest but rather you're covering all the bases so well that there isn't anything to do but like your posts. As is with your past projects, most bugs reported are already known and praising for the sake of showing interest can get old quick. Keep doing what you're doing.

Kavawuvi, Takka, Sunstriker7 and 1 other like this

Share this post


Link to post
Share on other sites
  • Recently Browsing   0 members

    No registered users viewing this page.