Code Monkey home page Code Monkey logo

hli's Introduction

HLInspect

Half-Life mod to facilitate Half-Life physics and NPC AI research.

c1a0 demo

Features

  • Easy and fast set up. No CMake or bespoke toolchains to mess with.
  • Ability to hook custom hl.dll and client.dll compiled yourself in Debug mode, by reading debug information in PDB files and allow Visual Studio debugger to attach. This tends to break standard hooking based mods built for speedrunning purposes.
  • Writing features in the higher level and simpler language of Go.
  • Ability to write logs to debug output viewable with Microsoft's DebugView. No installation of custom or bespoke viewing tools.

Missing

  • Only supports Windows
  • Speedrunning features

Usage

Currently, HLInspect doesn't come with an injector. You can use any general DLL injector to inject and start Half-Life, or even write your own. There are plenty of open source DLL injectors on Github, and do choose wisely. In the future, a custom injector may be included.

Building

Currently, this is the easiest to build on Linux using cross compilation.

Setup

Set up WSL in Windows or use a Linux system.

Install Go 1.18 or above.

Install gcc-mingw-w64 to get i686-w64-mingw32-gcc or similar for cross compilation.

Install protobuf-compiler or similar to get protoc.

Run the following to get protoc-gen-go:

go install google.golang.org/protobuf/cmd/protoc-gen-go

Make sure protoc-gen-go can be found in PATH, which is needed by protoc. If not, set

export PATH="$PATH:"$(go env GOPATH)/bin

Install Cap'n Proto compiler with the capnproto package or similar for HLRPC.

Install Golang plugin for Cap'n Proto

go install capnproto.org/go/capnp/v3/capnpc-go@latest

Build

Suggested environmental variables in WSL:

export CC=i686-w64-mingw32-gcc
export CGO_ENABLED=1
export GOOS=windows
export GOARCH=386

Run the following to build:

cd hlinspect/modlib
go generate ./...
make

If this does not work, you may be able to get some hints from the Github workflow file.

Development

See ARCHITECTURE.

hli's People

Contributors

matherunner avatar smileyag avatar hobokenn 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.