ZAD Adventure System - Progress

Show us what you're working on, (preferably with screenshots).
User avatar
PROSM
Manic Miner
Posts: 473
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: ZAD Adventure System - Tape functions

Post 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.
All software to-date
Working on something, as always.
User avatar
Ast A. Moore
Rick Dangerous
Posts: 2640
Joined: Mon Nov 13, 2017 3:16 pm

Re: ZAD Adventure System - Tape functions

Post 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. ;)
Every man should plant a tree, build a house, and write a ZX Spectrum game.

Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
User avatar
PROSM
Manic Miner
Posts: 473
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

ZAD Adventure System - Byte-shaving

Post 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
All software to-date
Working on something, as always.
User avatar
PROSM
Manic Miner
Posts: 473
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

"Postie's Peril" - Demo

Post 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.
Last edited by PROSM on Sun Dec 09, 2018 10:09 pm, edited 1 time in total.
All software to-date
Working on something, as always.
User avatar
R-Tape
Site Admin
Posts: 6353
Joined: Thu Nov 09, 2017 11:46 am

Re: ZAD Adventure System - Progress

Post 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!
User avatar
Ivanzx
Manic Miner
Posts: 736
Joined: Tue Nov 14, 2017 9:51 am

Re: ZAD Adventure System - Progress

Post 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 :)
Ralf
Rick Dangerous
Posts: 2279
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: ZAD Adventure System - Progress

Post 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 :)
User avatar
druellan
Dynamite Dan
Posts: 1466
Joined: Tue Apr 03, 2018 7:19 pm

Re: ZAD Adventure System - Progress

Post 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.
User avatar
PROSM
Manic Miner
Posts: 473
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: ZAD Adventure System - Progress

Post 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).
All software to-date
Working on something, as always.
User avatar
oblo
Drutt
Posts: 31
Joined: Mon Dec 10, 2018 9:24 pm

Re: ZAD Adventure System - Progress

Post 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?
Cheers.
User avatar
PROSM
Manic Miner
Posts: 473
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: ZAD Adventure System - Progress

Post 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.
All software to-date
Working on something, as always.
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

Re: ZAD Adventure System - Progress

Post by RMartins »

This has gone a long way. from the initial screens. 8-)

Hoping to see this finished in the near future. :geek:
User avatar
Kweepa
Manic Miner
Posts: 311
Joined: Sat Feb 03, 2018 6:14 pm
Location: Albuquerque, New Mexico

Re: ZAD Adventure System - Progress

Post 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
User avatar
PROSM
Manic Miner
Posts: 473
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: ZAD Adventure System - Progress

Post 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.
All software to-date
Working on something, as always.
User avatar
Kweepa
Manic Miner
Posts: 311
Joined: Sat Feb 03, 2018 6:14 pm
Location: Albuquerque, New Mexico

Re: ZAD Adventure System - Progress

Post 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?)
User avatar
PROSM
Manic Miner
Posts: 473
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: ZAD Adventure System - Progress

Post 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.
All software to-date
Working on something, as always.
User avatar
Einar Saukas
Bugaboo
Posts: 3070
Joined: Wed Nov 15, 2017 2:48 pm

Re: ZAD Adventure System - Progress

Post 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! :)
User avatar
PROSM
Manic Miner
Posts: 473
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: ZAD Adventure System - Progress

Post 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.
All software to-date
Working on something, as always.
Post Reply