4 ms·
Way back there used to be Metamod (which IIRC circumvented some limitation of the Half-Life engine regarding how it loaded DLLs into the game), and then AMX Mod
by blattimwind 8y ago
Way back there used to be Metamod (which IIRC circumvented some limitation of the Half-Life engine regarding how it loaded DLLs into the game), and then AMX Mod layered on top of that, which was later replaced by AMX Mod X. This in turn used a little programming language called "Pawn". You could then write mods in Pawn, compile that to bytecode and dynamically load it into the game server. Later there was Sourcepawn. These enabled a lot of complex mods, and required relatively little knowledge about the messy details of the engines, however it was still relatively involved. First you had to setup the various base mods to get it to work, then you needed to compile your mods, restart the game server for most changes etc.
- orf 8y agoI remember SourcePawn! It was a bit too hardcore for me at the time. If I remember correctly it used a thing called 'sigscanning'[1] to find the address of private functions. I think it would have a list of patterns and then scan the binary w/ pattern matching to find the address. Hacky as hell but you could do some neat stuff with it like respawning players and adjusting all kinds of 'untouchable' attributes. 1. https://wiki.alliedmods.net/Signature_Scanning https://wiki.alliedmods.net/Signature_Scanning
- chc4 8y agosigscans are how nearly all third-party modding APIs work. It's a lot better to hardcode what behavior you're trying to find than hardcoring binary offsets, and then having to update them manually once the program updates.
- paraboul 8y agoFun fact, the creator of pawn / sourcemod was one of the guy working on the JIT compiler of spidermonkey (js engine) @ Mozilla : https://www.bailopan.net https://www.bailopan.net
- solarkraft 8y agoLots of people that started out in game modding end up doing some really cool stuff in other software fields too. The skill and motivation are transferable, I suppose.
- conradfr 8y agoWow what a nostalgia hit. I remember coding with it, to manage fixtures between teams. I looked it up and found a source on my hard drive, last modified 04/10/2001 apparently. https://gist.github.com/conradfr/a20e9c9598b7b65ad94b8a8605fa1c42 https://gist.github.com/conradfr/a20e9c9598b7b65ad94b8a8605f...