Update since June 19:
I fixed the following pretty soon after my livestream on June 20th.
- Castviewed creature should always activate now even with no monster around
- Monsters on all activated floors should enter jungle mode and attack nearby monsters
- Enemy monsters should switch target if they target us and we're GMs
- Renamed spawnCreature to spawnMonster
- Also clear castviewers for saved player character with viewers
- Monsters now immediately switch target after target is dead if casttarget is nearby
- Monsters also sets target and activates on spawn if caster is around
- Monsters randWalks now when there's no valid targets around
- Fixed dog attacking creatures again
- Delay fixed for monsters after findCrossNearbyTiles walk -> A* right after
- Fixed elements bug in snakepit
Then I took a break for around a week chilling and working on other projects, among others my discord server (chat GPT and moderation bot) and done RL stuff.
Now since yesterday or the day before I've been working on adding NPCs.
Here's what I've got so far:
- Loading NPC files, spawning NPCs and have them walk around
- NPCs keeps range/radius when randWalking
- NPCs NDB files are loaded and inserted into NPC files in runtime
What's still missing here is all NPC "Behaviour" data, i.e. text responses and so on.
This probably won't be finished as a whole until more things are added to the engine, however text responses might be added soon.
NPCs in Fibula, Eddy and Dermot:
Quentin in Thais walking around in PZ (had to whitelist NPCs for walking in PZ unlike monsters):
Grof, The Guard trapped in Thais showing that NPCs won't leave their radius (or home position by radius):
There's also this funky little NPC that I didn't know existed:
Oh, and I almost forgot, here's a recording of us liveviewing the NPC Quentin:
So there's some minimal progress with regards to NPCs, but the only thing left to do now is add NPC text behaviour, and this is going to be a lot of work.
To be honest I don't really know where to start. I have RE'd cip engine and copied all the necessary structs, but I don't fully understand how the system works yet, specifically how to save things like various conditions and actions like deleting items, giving items, etc, what the "left" and "right" parameter of TNode is, etc.
But as usual I'll probably figure it out with time.
What's the actual % left to have a working engine?
Well, define working engine. It's working as it is. If you mean a full engine with full real map working like it should then about 40-50% remaining liberally estimated.
The reason being that implementing things like NPCs and MoveUse.dat, map saving, loading from 2 sources and refreshing tiles, etc, is probably going to be a lot of work. There are also unfixed bugs in addition to many missing features (no working channels, etc).
This doesn't necessarily translate into 50% of the amount of time left or 2+ years. It just means there is a lot left.
I will say that the engine probably won't be finished this year, that's all I can really say.