Wow, I really like it too! The game, even if those graphics are provisional, has a very nice atmosphere for a game of that kind. To be provisional, they are quite good! I think this game is going to fill a gap in the Spectrum scene
Am really enjoying following the dev diaries of the other games, whilst I've been hard at work on DD. It's time for a wee update!
Here's 3 new screenshots showing how things are progressing:
The main new things to see here are 3 player characters, random monsters, props/scenery, and the UI.
The game logic is coming along well: the player can move & expend action-points, opening doors, searching chests, swapping items with other players, etc. However the enemy AI is not working yet, and I've yet to implement melee and ranged combat/spells.
As you can see I have a proportional font to fit as much info as I can in the sidebar. FZX editor is awesome; but I couldn't get their asm to work so wrote my own display code.
Memory is now my biggest concern (I'm targeting the 48k Spectrum).. I've implemented tile mirroring which will save quite a bit, plus there's some other tricks I have up my sleeve. As you may recall, the majority of the code is C - so I will soon start selectively rewriting speed critical sections in ASM.
That's all for now, I'm off to try and find some more memory for the pathfinder..
I have the feeling that all this time catweazle is advancing in the development of the game and suddenly he is going to surprise us By the way, out of curiosity, will you implement music in the game? It would be nice to have an atmospheric tune for the game
Sorry for the absence! You're right Ivanzx, I have been hard at work on the game
I've been mostly working on the game logic and the AI. Monsters now have real pathfinding, which took a while to perfect but is working very well! For the temporary storage requirements I reused the buffer containing the screen border, which is about 800 bytes - and not needed again after loading
I am currently adding ranged attacks, and have finalized a system of weapons and enchantments. You have a base weapon type (sword, axe, etc), which can also have a to-hit/damage magical power (+1, +2, etc), and in addition an enchantment (fire, frost, shock, etc) which you can choose whether to use in combat. Certain monsters will be susceptible/immune to different attacks.. I anticipate that part of gameplay will be concerned with using the right weapons on the right monsters, and swapping items between your party members!
The inventory system is complete now also, with each character having a single "melee", "ranged" and "item" slot. You can swap between other characters, and stash/remove items from chests.
The "item" slot is interesting, since it allows an item with a special power to be carried. This might be usable at any time (eg. ring of teleportation/vanishing, potion of healing), or help in combat (eg. amulet/helmet of protection), or have a one-off use (eg. amulet of resurrection). I have not encoded the game logic for these yet, so I am tentatively hoping I'll have the memory...
Speaking of memory, I've also been having some fun there also:
- I had a major data structure change which gave me 4k back from the map, which was a time of great rejoicing! However that very soon got absorbed by all the new game logic code..
- I ditched IM2 as its not really necessary for this game, and that frees up a vector table at the top memory.
- I relocated some data right down 23296, since I will for sure not be returning to Basic after loading!
Most lately I've been rewriting some of my drawing code in ASM, getting some great speed and size improvements as anticipated/hoped.
Memory, as mentioned before, is my biggest enemy!! I am continually battling with the code size, but I guess that's just a part of programming C in such a small platform. Incidentally, I am really glad not to be writing some of the complicated game logic in pure ASM.. Mucho respect to the folks who do this!
To answer some of the questions from above:
- This game is 48k only.. somehow to me the "old rubberkeys" feels like the purest speccy, and anyhow - the 128k paging makes my head spin!
- Yes, I am planning on having some intro music and text! I am aiming to cram this into the map buffer, which will be unused at load-time since the levels are randomly generated. I'm looking forwards to composing this!
No new pictures for now I'm afraid.. but I'll have some new graphics, and gameplay shots, to show very soon!!
To check if there is a valid path to exit, you can use a simple depth first, path-find algo (it consumes the least memory while searching/traversing), just make sure you keep a list of visited places, to prevent loops.
Some bugs are real hard to find, but we must find them, to make a perfect game Just think like this is a release in the 80's, where it wasn't possible to make updates after release.
Thanks - yeah that's exactly how I implemented it in the end, via a room-to-room floodfill! In the rare case where the map is disconnected, I make sure to place a pentagram tile in the start or end room (depending on the connectivity) so that the player can teleport to the rest of the map.
Yes I agree it's important to have that 80s attitude, where there's no such things as a day-one patch! Gotta get it right first time..