Page 2 of 3

Re: ZAD Adventure System - Tape functions

Posted: Tue Jun 19, 2018 7:28 pm
by PROSM
Ast A. Moore wrote: Tue Jun 19, 2018 7:04 pm In that case, you don’t need to deselect all the tape loading options in Fuse. I you lead them active, it’ll save your data almost instantaneously, and will create a standard TAP/TZX file. (Note, that you’ll need to close it and open a new one, or Fuse will keep appending data blocks to the same file.)
I don't usually disable them, I just turned them off on the video for demonstration purposes, in order to make the saving and loading operations more obvious.

Re: ZAD Adventure System - Tape functions

Posted: Tue Jun 19, 2018 7:44 pm
by Ast A. Moore
PROSM wrote: Tue Jun 19, 2018 7:28 pm
Ast A. Moore wrote: Tue Jun 19, 2018 7:04 pm In that case, you don’t need to deselect all the tape loading options in Fuse. I you lead them active, it’ll save your data almost instantaneously, and will create a standard TAP/TZX file. (Note, that you’ll need to close it and open a new one, or Fuse will keep appending data blocks to the same file.)
I don't usually disable them, I just turned them off on the video for demonstration purposes, in order to make the saving and loading operations more obvious.
Got it. Fair enough. No problem, then. ;)

ZAD Adventure System - Byte-shaving

Posted: Tue Jun 26, 2018 8:35 pm
by PROSM
Whilst working on the editor program, I decided to rewrite part of the display code used by ZAD, specifically the region drawing code. This can draw any arbitrary region of the work-space buffer to its corresponding place onscreen. It was my original intention to have only the altered regions of the screen redrawn in order to save on the processing time required to update the screen. However, to test the system functionality quickly, I used a full-screen draw instead, intending to write the selective drawing code later.

To my surprise, the full-screen draw itself was sufficiently fast for the purposes of my game engine, so I decided to redraw the entire display on every game cycle to simplify the code. The region drawing code was still handling this full-screen draw as an arbitrary region, however, which slowed it down somewhat, as it was having to add a line offset of zero to the work-space pointer and the screen pointers at the end of each line.

I have now rewritten the region drawing code to instead do only a full-screen draw, without any of the offset adding or start address calculation. This has sped it up somewhat, since it no longer needs to check as many conditions or perform offset calculations for different sized regions.

This rewritten routine has also opened up 32 variable slots in the register map, which were previously used for storing the old positions for objects (which would have been used for the selective drawing code). This means that an extra 32 variable slots are available for use in your game's logic scripts, giving a grand total of 128 variable slots available for use (the other 128 are reserved for internal ZAD use).

I do enjoy rewriting old routines; I find that planning them on paper is the best way to accomplish this, since I can clarify my register allocation and the algorithm itself before I begin to write the code.

I hope to write another progress update soon. See you later! :D

"Postie's Peril" - Demo

Posted: Sun Dec 09, 2018 9:09 pm
by PROSM
This project is not dead. Quite the contrary in fact, as I would like to show you a demo of the first game being written with the engine, "Postie's Peril":

[media]https://youtu.be/RE-Ctp0DezU[/media]

It's all well and good seeing the game, but why not trying it as well? The video above only shows a bit of the demo, so to get the full demo as a TAP file, click on the link below.

https://www.dropbox.com/s/8kc69arkjyhco ... o.tap?dl=0

The controls are as follows:
  • 6 - left
  • 7 - right
  • 8 - down
  • 9 - up
  • Enter - select
  • To access verbs, simply push the key for the letter highlighted in white (e.g. A for Apply to, E for Examine. Then you can position the cursor over an object and press Enter to perform the action.
Please do let me know what you think of this demo with a reply, I'd be very grateful if you did.

Re: ZAD Adventure System - Progress

Posted: Sun Dec 09, 2018 9:45 pm
by R-Tape
Love it—this is something special. The control mechanism takes a bit of getting used to, but the instructions are all very clear. Please finish it!

Re: ZAD Adventure System - Progress

Posted: Sun Dec 09, 2018 10:05 pm
by Ivanzx
Looking excellent! One of the very few things the Spectrum did not achieve so far, and it looks like you will do it :)

Re: ZAD Adventure System - Progress

Posted: Mon Dec 10, 2018 9:43 am
by Ralf
Looks nice!
And feels a bit similar to early Lucas games like Maniac Mansion or Zak McKraken. Spectrum never had this kind of games, unlike let's say C64. So at last this is going to change, I guess :)

Re: ZAD Adventure System - Progress

Posted: Mon Dec 10, 2018 4:47 pm
by druellan
Love it!

Testing it quickly, one small suggestion I can make is to leave the inventory item position when you close the list. This way, when you can't use an item because you are not close enough or any other reason, you don't need to search the inventory again for the item.

Re: ZAD Adventure System - Progress

Posted: Mon Dec 10, 2018 8:26 pm
by PROSM
R-Tape wrote: Sun Dec 09, 2018 9:45 pm Love it—this is something special. The control mechanism takes a bit of getting used to, but the instructions are all very clear. Please finish it!
Thanks, R-Tape! The controls are a bit fiddly at first, but they do get easier to handle with time. An inlay will be included with the full game, with all the instructions, but I'm glad you found my post had enough info to get you going.
Ivanzx wrote: Sun Dec 09, 2018 10:05 pm Looking excellent! One of the very few things the Spectrum did not achieve so far, and it looks like you will do it :)
Thanks, Ivan! I've always felt the Spectrum was missing a point-and-click adventure; the main sticking point seemed to be how to do the graphics in the small memory (this was a major theme of the "Monkey Island on Spectrum" thread at WoS).
Ralf wrote: Mon Dec 10, 2018 9:43 am Looks nice!
And feels a bit similar to early Lucas games like Maniac Mansion or Zak McKraken. Spectrum never had this kind of games, unlike let's say C64. So at last this is going to change, I guess :)
Many thanks, Ralf! :D
druellan wrote: Mon Dec 10, 2018 4:47 pm Love it!

Testing it quickly, one small suggestion I can make is to leave the inventory item position when you close the list. This way, when you can't use an item because you are not close enough or any other reason, you don't need to search the inventory again for the item.
Thanks for the suggestion, druellan! I've implemented this functionality now (however, the list position resets when items are transferred in or out of the inventory).

Re: ZAD Adventure System - Progress

Posted: Mon Dec 10, 2018 10:28 pm
by oblo
This is awesome! Just tried the PostedPeril Demo and with something like this, a lot of dreamed-games can come true :D
BTW, did you considered to use a mouse driver like this or this?

Re: ZAD Adventure System - Progress

Posted: Wed Dec 12, 2018 8:24 pm
by PROSM
oblo wrote: Mon Dec 10, 2018 10:28 pm This is awesome! Just tried the PostedPeril Demo and with something like this, a lot of dreamed-games can come true :D
BTW, did you considered to use a mouse driver like this or this?
Thanks [mention]oblo[/mention] for your kind comment! In regards to a mouse driver, I may implement one. I'm trying to avoid touching the engine code now, so that I can focus on the game itself, but if I can get it working quickly enough, then there will be Kempston mouse support.

Re: ZAD Adventure System - Progress

Posted: Wed Mar 06, 2019 8:12 pm
by RMartins
This has gone a long way. from the initial screens. 8-)

Hoping to see this finished in the near future. :geek:

Re: ZAD Adventure System - Progress

Posted: Thu Mar 07, 2019 12:08 am
by Kweepa
I agree.
Looking forward to writing a game with this - I'll probably write a Reality-On-The-Norm game (an old Adventure Game Studio group project).
But only if the movement controls are customizable to ZXKM. :)

So we can start work, what are the maximum main character sprite dimensions?
Here's Mika Huy, reporter for the Realizer, reduced to 40px high:
Image

Re: ZAD Adventure System - Progress

Posted: Thu Mar 07, 2019 6:28 pm
by PROSM
Kweepa wrote: Thu Mar 07, 2019 12:08 am I agree.
Looking forward to writing a game with this - I'll probably write a Reality-On-The-Norm game (an old Adventure Game Studio group project).
But only if the movement controls are customizable to ZXKM. :)

So we can start work, what are the maximum main character sprite dimensions?
Here's Mika Huy, reporter for the Realizer, reduced to 40px high:
Image
The maximum dimensions for any frame is 32x16 characters (so 256x128 characters). Of course, this is if memory will permit, as the amount of memory a frame will take can be calculated using the formula m = 2wh + 2, where w is the width and h is the height.

Your graphics might not work too well, though, as the game display is an emulated character mode. This means that all of the backgrounds and frames are built up of tiles from a universal character-set (of 255 characters, with one reserved for blank). This measure is necessary in order to reduce the memory used by graphics. Those three sprites above would make up 30 characters in the set, or about 12%. You may want to reconsider redesigning the graphics, perhaps making them bigger so that they can be designed around the character block limits.

Re: ZAD Adventure System - Progress

Posted: Thu Mar 07, 2019 9:22 pm
by Kweepa
Ah yes, I see. I'd be willing to use up half my character set to realize the main character! :)
(Any progress on the engine?)

Re: ZAD Adventure System - Progress

Posted: Thu Mar 07, 2019 9:49 pm
by PROSM
Kweepa wrote: Thu Mar 07, 2019 9:22 pm Ah yes, I see. I'd be willing to use up half my character set to realize the main character! :)
(Any progress on the engine?)
Version 1.0 of the engine (for Postie's Peril) is finished. However, after that game is done, I want to make some changes to the code - there are some ugly hacks in there (both the engine and the game's logic scripts) due to me forgetting to include certain things in the original design.

Re: ZAD Adventure System - Progress

Posted: Sat Aug 28, 2021 11:35 pm
by Einar Saukas
PROSM wrote: Thu Mar 07, 2019 9:49 pm Version 1.0 of the engine (for Postie's Peril) is finished.
Is it available somewhere?

I would like to add it to our archive! :)

Re: ZAD Adventure System - Progress

Posted: Sun Aug 29, 2021 8:29 am
by PROSM
Einar Saukas wrote: Sat Aug 28, 2021 11:35 pm
PROSM wrote: Thu Mar 07, 2019 9:49 pm Version 1.0 of the engine (for Postie's Peril) is finished.
Is it available somewhere?

I would like to add it to our archive! :)
Wow, this is quite a necropost! ;)

I must admit that I stopped working on ZAD after December 2019, due to a lack of motivation. It was going to be a lot of work, since the engine was going to be restructured, and I needed to write an editor program and compiler. In its current state, you can only write your games by hand, with a set of PASMO macros acting as the scripting language. As such, I'm not sure how useful it would be to anyone, but I can always upload it (plus the source code for the Postie's Peril demo) for historical interest. I'll need a bit of time to make sure it's all properly documented, though.

I might yet return to ZAD at some point in the future, with the experience I've gained, but for now I have other projects which are coming along quite well.