HMC47 is an open source implementation of IO Interactive's Hitman: Codename 47 from 2000.
There are multiple goals this project tries to achieve:
- Learn how games were made in an era when things had to be done in the code, and not through fancy game engines like today.
- Have a fully playable game implemented end-to-end, including resource management, audio, and video rendering, as well as support of large screen resolutions.
- Eventually, to support 64-bit compilation for modern systems.
git clone --recurse-submodules https://github.com/americusmaximus/HMC47
A simple game launcher that loads the system module and passes the control flow execution to it.
The Direct Play module serves as a simple wrapper around Microsoft DirectPlay interface.
The Engine Data module is responsible for a number of shared functionality used by other modules such as game configuration, and others.
Globals module serves as a glue for DLL linking of a few game-wide objects used to communicate between different part of the game for a multitude of reasons.
The Sound module is a sound management module that handles sound playback and sound effects output via DirectSound, DirectMusic, and EAX.
System module owns creation and management of the objects that are then being used by other modules via Globals to communicate with each other. These objects include functionality that glues different modules together, and provide low-level functionality such as tracked memory allocation, access to zip files, and various output.
System Probe is a module that is responsible for querying system graphics capabilities and providing the recommended graphics settings back to the game. It is used only in the graphics settings screen upon user request.
StartW application is a command-line tool to start any other application while properly passing command-line arguments to the new process.
EAX 2 Wrapper from Creative Technolody for Environmental Audio Extensions 2.
A DLL version of libexpat - library for working with XML documents.
- 0danny for some reverse engineering of the game files.
- AdrienTD for the game scene editor.
- SIGMA FEDERATION for Aureal A3D SDK.
- This is not a complete game. Please purchase software you like!
- The source code in this repository is mostly produced by reverse engineering the original binaries. There are a couple of exceptions for reverse engineering under DMCA -- documentation, interoperability, fair use. See goals section for the interoperability and fair use cases. The documentation is needed to support those. Also please see an article about software preservation.
- Hitman, Hitman: Codename 47, IO Interactive, Eidos Interactive, Aureal, A3D, EAX, DirectX, OpenGL, and others are trademarks of their respective owners.
