Giter Club home page Giter Club logo

zhmtools's Introduction

ZHMTools

A collection of various tools and libraries for the Hitman game engine, Glacier.

Build status Download latest release

Libraries

A collection of libraries that allow converting various game resources to JSON and back, each targetting a specific Hitman game. The library exposes a C interface that can be directly integrated into third party tools, without additional dependencies. You can also find a C# / .NET wrapper around ResourceLib here.

Currently supported games and resource types:

Game Supported Resources
Hitman 3 TEMP, TBLU, AIRG, ATMD*, CBLU, CPPT, CRMD, DSWB, ECPB, GFXF, GIDX, VIDB, WSGB, ENUM, RTLV, UICB
Hitman 2 TEMP, TBLU, AIRG, ATMD*, CBLU, CPPT, CRMD, DSWB, ECPB, GFXF, GIDX, VIDB, WSGB, ENUM, RTLV, UICB
Hitman 2016 TEMP, TBLU, AIRG, ATMD*, CBLU, CPPT, CRMD, DSWB, GFXF, GIDX, VIDB, WSGB, RTLV, UICB
Hitman Absolution* TEMP, TBLU, AIRG, CBLU, CPPT, CRMD, DSWB, GFXF, GIDX, WSGB

* Experimental

A companion library to ResourceLib, used to generate conversion and generation code for a specific game. It can be injected into any of the supported titles, and it will generate the various files that ResourceLib needs. Usually used to update ResourceLib after a title update. More information on updating ResourceLib using this tool can be found below.

A library containing basic research on the NavPower navmesh format. It currently accepts a navmesh resource and converts it to a JSON representation that can be rendered by the NavViewer tool mentioned below.

Tools

A command-line tool that allows converting various game resources to JSON and back, using ResourceLib. It supports all the game and resource formats that ResourceLib supports.

A tool that automatically detects any supported running game processes and injects CodeGenLib into them, using it to generate code for ResourceLib.

A tool that post-processes the property text files generated by CodeGenLib into a form usable by ResourceLib.

A tool that parses Hitman Absolution debug depot moduleinfo files and generates a list of properties and enums for use by CodeGenLib. This is needed because this information is stripped from the executable in Hitman Absolution.

A command-line tool that allows converting NavPower navmeshes into a custom JSON representation, using the NavWeakness library.

A web-based viewer of NavPower navmeshes, which uses the output of the NavTool to show a realtime 3D representation of the navmesh. Useful for validating research.

Updating ResourceLib after a title update

Almost every time there's a new game / title update, the ResourceLib for that game needs to updated. The following steps are necessary to perform that update:

  1. Start the game in question and wait until you reach the main menu.
  2. Run the CodeGen tool, making sure that CodeGenLib.dll is in the same directory as it.
  3. Open the directory with the name of the game that was created in the directory of the CodeGen tool.
  4. Copy all the files starting with ZHM into the appropriate ResourceLib directory (for example for Hitman 3 copy them to Libraries/ResourceLib/Src/Generated/HM3).
  5. Run the PropertyBundler tool by passing the path to the directory of ZHMTools as an argument to it (for example PropertyBundler.exe C:\Path\To\ZHMTools.
  6. Re-compile ResourceLib.

zhmtools's People

Contributors

orfeasz avatar anthonyfuller avatar dbierek avatar notexe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.