One of the most substantial piece of news I have is that, in my effort to get into contact with some Dark Messiah developers, I managed to break through and get a bunch of responses! There was a lot of love that came from them, and I appreciate everything they've done from making Dark Messiah to even giving me that small message saying "This looks amazing, keep up the good work!" As someone that grew up with Dark Messiah, having those the guys behind it give you their blessings is as cloud nine as it gets.
But it does get better. Well, potentially better. There may be some potential in having the harder back-end functionality of Dark Messiah answered by a dev. I'm not expecting this to develop into anything at any point soon, but it's something to look forward to. In the mean time, I'll continue to truck along.
But I have a message for those developers, if they are reading. This game is over 10 years old and it's still relevant to people. The fact that I can just randomly say "I want to make a co-op mod" and people are screaming praise for it is testament to that. Whether you worked on Dark Messiah as an intern or someone about to retire: you have left an impact on all of us here. The Dark Messiah community ( one I was never part of before now ) is extremely supportive and friendly to everyone. The game you made with love, is being received with love, and spread with love. I can only say thank you, and the words of encouragement, even APPROVAL, only amplified my motivation. It's been almost a year I've been working on this project and I'm not feeling any burn out. Granted maybe I'm not making the fastest progress but it's all worth it. Both for my own learning, for the community, and out of love.
The First Custom Entity
As I've said in the last news post, my main focus was getting custom entities into the game fully using the SDK. I am PROUD to report that I was finally able to get something in! Granted, so far it is very simple: just an entity that ignites you when interacted with. But it's entirely based from SDK derived code and functions as intended, meaning I am on track to adding weapons, NPCs, even inventory items.
CBaseEntity's property set is fully constructed, the functions will come next now that I can create some context for seeing what they do. CBaseAnimating was also exposed in order to work through making the entity have some animations to it. These are 4 classes away from the player or an NPC base, and only 2 classes away from potions or weapons. Really exciting progress there.
Some More Fixes
In between custom entity application, I fixed a huge blocking issue with the multiplayer component, namely that triggers for map events ( skill points, cutscenes, you name it ) would not work after death. This was actually due to a flag being set on the player marking them as NON_SOLID. It makes sense too! When the player dies, you don't want their body to start pushing things around and acting unpredictable, so you'd most likely set it as a non-solid and allow it to do it's thing. I can also see the player death camera animations causing some issues if it could collide with you, seeing as all the head movements you see on the player are actually a CHeadMvt entity attached to it!
Additionally, I've added PREDICTION to view models, which is a huge deal because otherwise it would appear extremely jittery. If you've seen the old gameplay video I put out in August last year, you'd see the swords losing their mind. If you don't remember, check this out:
Now we add prediction:
Nice! Singleplayer games don't really need prediction because you ARE your own PC. The networking traffic is sent and received by you, so there's no overhead. In multiplayer, that's a different game, so there's a bunch of rubber banding effects that come with it.
There's still more to the ol' laundry list of bug fixes. I plan on trying to get the main GAMEPLAY BLOCKING bug fixes done by the end of the month and start some fun gameplay videos. Technically if those are done, I could release a really dirty alpha, but I want to make sure I'm not breaking the good will around releasing the mod without permission.
With custom entities in, I can start talking with mappers about blocking the singleplayer maps to be converted to a more comfortable co-operative play.
The SDK will continue to have more classes exposed so I can manipulate data and perhaps push the custom entity appeal further. At some point I will have to start exposing clientside equivalence, which is a little scary, but in theory it should be easier as these are usually a lot smaller.
Development Diary Posting
If you want to hear me be completely excited about the developer contact and breakthrough, the developer diary is over here:
You can ping me at any time. Maybe later this month we will do an anniversary closed testing, so the more the merrier!