About The Project
Way back in April this year, I was inspired by the development of Half-life Alyx's Non VR mod to continue something I have been wanting since I first played Dark Messiah: A co-op mode. This is a project I have undertaken before, but had much less coding experience or know-how to get it done. The result was me doing very minimum level I still consider myself a novice with some aspects required for this, but I will push through anyway!
The Game Plan
Dark Messiah has a multiplayer aspect that doesn't support NPCs. It also has a single player aspect that roughly supports multiplayer. Instead of hammering through AI creation, I thought it made the most sense to modify the singleplayer component to work with multiple players. Now, there is a BUNCH of stuff that needs to be done here for a full mod, so I have to separate it in phases. Getting the maps to be PLAYABLE is phase one, with the story logic ( cutscenes, skills, objectives ) in phase two, and co-op quality of life things for phase three. I'll probably amend or add phases when I realize they weren't allocated properly.
Extremely Difficult, Extremely Rewarding
One of the big separators about this mod to a lot of others is that there is ABSOLUTELY NO DARK MESSIAH BASED CODE SDK. That means I have use various reverse engineering techniques to rip code out and manipulate it. I can rely on the source engine SDK to line things up but it isn't possible to actually compile any of that to work with Dark Messiah, meaning I have to use detours, hooks, and injections to fix or add features.
How Does It Work Now?
Over this amount of time I have addressed a lot of phase 1. NPCs are now fully working in co-op, no longer causing crashes and correctly targeting new players. Common functionality such as prop interaction, skill points, ropes, everything that makes DM what it is works to an extent ( ropes are a little buggy ). Campaign maps are in surprisingly good shape, with only SOME cutscenes not correctly activating. Phase 2 is also partly done, with skills and logic essentially functional but not the state that I would like. This type of thing will probably need some map editing, but I haven't really focused on this yet as there are still some crashes.
Speaking of crashes, Dark Messiah is relatively unstable as-is and this mod will actually IMPROVE the stability. The reason is stupidly easy: when I'm fixing things for co-op I really can't tell if a crash is caused by the co-op mod or regular game, so I am FORCED to fix it to move forward. It'll help everyone in the end though!
A Tool For The Future
Ultimately I want this mod to co-exist with the singleplayer. I want people to boot up the game and be able to play alone or with friends without any issues. With the mapping SDK officially released and an extremely supportive mapping community, custom levels are going to be easily possible, so long as they would work in the game normally. But what about those code modders that want to add features?
Since I am reverse engineering SO MUCH code for this mod, the real goal is to use that to create an SDK for other modders to begin adding components or even manipulating existing components. I have already seen pieces of code for shops, adding skills, adding SPELLS, you name it. All of this can be possible with the right hook, but it'll take some time to get there.
Test Sessions and Development Diaries
I post development diary videos to air out my thoughts about the mod over on my youtube channel, along with some assorted things, so I would recommend checking that out if you want to get more info in audio format: Youtube.com
I also do test sessions when a new iteration needs debugging on our discord. If you're interested in joining, hop into our discord here: Discord.gg ( select Dark Messiah from the #role-assignment channel )