Treasure-Seeker (available now!)

Discussion, Reviews & High-scores

Moderator: Moderators

User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Treasure-Seeker (available now!)

Post by MysticSword »

-> The most up-to-date version of this game can be downloaded from the Treasure Seeker game page at:
https://mysticsword.itch.io/vic-20-treasure-seeker
~
Ye has TNT to explode da stuffs in yer way so ye can seek out da treasure!
But watch out for those gnarly pesky skeletons. Get dat gold treasure and find da key to explore moar maps to find moar golds! :)
Treasure-Seeker_05a.jpg
* Dec.03.2021: Game has been updated to version 2.0 which make some fixes, improvements and add Challenge Levels. More details at: viewtopic.php?f=10&t=10252&p=114957#p114957

*Nov.21.2021: Game has been updated to version 1.8 which speeds up some parts of the game-play and fixes (hopefully) for more consistent 'thickness', the randomly generated rock-field for new maps and a better balance of gold (a little more than before).
viewtopic.php?f=10&t=10252&start=15#p114893

* Nov.15.2021: This game has now been updated to version 1.5. For more details about the changes, see my post at:
viewtopic.php?f=10&t=10252&start=15#p114849

*Nov.12.2021: Grondnm has kindly made a game-play video of my Treasure Seeker (v1.0) game:
https://spectra.video/w/kvQcw1vVRVjpXgQYJEee4x
Many thanks G!

This game has new been updated to version 1.3 to improve a few things. For more details, see my post at:
viewtopic.php?f=10&t=10252&start=15#p114808

* Nov.9.2021: Game released and now available for downloading and playing.
See my post with more details at:
viewtopic.php?f=10&t=10252&p=114779#p114779

* This post updated with current status of this game; Whew! It's been a lot of time, work, trial-and-errors I've put into making this game and I'm excited to now have a fully working version of it (at least in the VICE Vic-20 emulator with settings for a Vic-20 with 3K memory-expansion. Many changes have been made since my original post about this game here). It's been a real learning experience. New screenshots presented here (and hopefully a forthcoming game-play video of it in action) with more detailed into to soon come. Status-lines at top presents M (for current Map number), Health (the hearts, 3 max), Dynamite / TNT (now 4 max), G (for current gold) and SK now as a 'Skeleton kill-count'.

If anyone's interested to give it a bit of a play-test, feel welcome let me know (here or in pm).
Ok, I've gotta run for now (errands and life-stuff calls), but stay-tuned for more details to come real soon! 8)
* New screenshots (as of Nov.8.2021)

~
Hiyas. As I make this post, I'm still a newbie here
(you can see my introduction post at: viewtopic.php?f=15&t=497&p=114711#p114711 ).

Anyways, via the Vic-20 VICE emulator and the CBM .prg Studio program, I've been having fun re-visiting the Vic-20 again and recently decided to try my hand at making a new game (written in BASIC) for the Vic-20, which I think I'll call 'Treasure Seeker'.

It's still a work-in-progress (w.i.p.), but I feel I've been making good process on it so far.
I'll attach a screenshot with this post, though of course things are subject to change for the game as I continue to work on it.


Along the top is a status line that will display Map level, current hit-points / health (the hearts), current amount of sticks of dynamite (max 5), and amount of gold being held.

The spade character (towards upper-left corner) represents the camp (which I'm thinking so the player can go there to spend some gold to top-up dynamite and health). The circle character (towards the upper-right corner) represents the exit door. A key will need to be found in order to open it and exit the level.
I'm thinking to add in an enemy (or enemies) that you will need to find a way to avoid or defeat. Anyways, that's the general idea so far and we'll see how things shape up as progress on my little game continues.
Last edited by MysticSword on Fri Dec 03, 2021 9:40 am, edited 21 times in total.
I love retro-gaming and the Vic-20. 8)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: Treasure-Seeker (w.i.p)

Post by chysn »

I like these kind of games. I'll be following this thread for updates and, eventually, the finished game.
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Re: Treasure-Seeker (w.i.p)

Post by MysticSword »

@Chysn : Aww, thanks! It's a good boost of motivation to know there's some interest in my little game project. Though only just recently I've been 're-learning' Vic-20 BASIC (it was many years, decades even, since I programmed in it), with some good manuals and various other info I've found online (and some of the manuals / guides I've been able to download as viewable PDF files), and of course with the VICE emulator and CBM .prg Studio program, it's come back to me well and overall I feel progress is going quite good all things considered.

Programming in BASIC, originally I was thinking I might try to see if I could squeeze this game for use with an 'unexpanded Vic-20'. But in choosing to use some custom-graphics for my game (which I think makes things look better and more interesting), it eats up a lot of the very limited 3.5K of memory, I soon found that I was running out of available memory. So I've since opted to try to make it fit and work for a Vic-20 with 3K Memory Expansion, which almost doubles on the available memory and I can still use the custom-made graphics without needing to resort to trying to deal with the confusing (to me) changing addresses of several things, memory, screen, BASIC location, addresses, pointers, peeks and pokes and such (which appears to happen with 8K or more memory expansion), and thus not needing to try to re-program several things.
Gradually as I better come to re-learning and understanding things again, I may then consider making a bigger game (for perhaps an 8K or 16K expanded Vic-20).

Anyways, so far so good and I think with that I'll be able to make the little game I had in mind and have it fit and run well enough within the Vic-20 with 3K memory-expansion choice.

It's possible I could still find a way to fit the run the game on an unexpanded Vic-20 by not using custom graphics (and perhaps I may try to later make a version of that). Anyways, we'll see how things go. I have lots of things in mind I'd like for my game, but because of the limitations of memory and such, I may need to trim off several things. Still, I like a good challenge and taking on such a project like this is exciting and fun for me.
Cheers!
I love retro-gaming and the Vic-20. 8)
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: Treasure-Seeker (w.i.p)

Post by Mike »

In most cases, user defined graphics (UDGs) can be used on an unexpanded VIC-20 (or with +3K RAM expansion) by just locking away 512 bytes at the top of BASIC memory, with "POKE55,0:POKE56,28:CLR" at the start of the BASIC program. The character set at $1C00 is then activated with POKE36869,255.

(aside: if you happen to find examples that also change address 52, possibly also its low-byte at 51 - forget about those if you do not want to fall prey to cargo cult programming! 51/52 is an internal working address pointer into the string heap and this gets corrected by CLR anyhow. POKEs to 51/52 are thus fully redundant in that context.)

The 64 UDGs between $1C00 and $1DFF (screen RAM is at $1E00..$1FF9 and this range thus is blocked for the use by UDGs) do not need a copy of the ROM characters, as the non-inverted upper-case characters can still be displayed, by printing them in inverse! This is a trick used by practically all type-ins of that time.

You can free another 256 bytes by just allocating space for the screen codes 32..63, and doing "POKE55,0:POKE56,29:CLR" instead (POKE36869,255 remains the same). Then I'd recommend to define the UDG 32 as blank (i.e. eight zeroes), so it does not appear as blot where the colour RAM value is different from the background colour. I used this technique with my version of Moon Patrol.
User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Re: Treasure-Seeker (w.i.p)

Post by MysticSword »

@Mike: Thanks for the all that great info, it's quite helpful.
As I mentioned in my previous posts, it's been many years (decades) since I did any programming for a Vic-20, so I've been re-learning a lot of things I had 'forgotten' about it (though surprisingly much of it seems to be coming back to me), but I found the whole memory addresses, pointers, etc... changing around, confusing for me back then and now. But yeah, I'll see with this game project if I can squeeze it on for working good on a Vic-20 configuration with 3K memory-expansion.

And your version of Moon Patrol of looks quite impressive. Good joerb (job)! 8)
I love retro-gaming and the Vic-20. 8)
User avatar
freshlamb
Vic 20 Dabbler
Posts: 76
Joined: Sun Apr 04, 2004 5:38 pm
Website: http://www.rufnoiz.com
Location: Prince Albert SK Can

Re: Treasure-Seeker (w.i.p)

Post by freshlamb »

Looks good! I always find I dream too big and have to be a little more realistic with my programs. <chop>
And another Canadian! Keep at it!
User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Re: Treasure-Seeker (w.i.p)

Post by MysticSword »

@FreshLamb : Thank you fellow Canadian! :) Yes, same here with I often have ideas or dreams that are 'too big'.
Still, it's great to explore some such ideas, set goals and dreams and see what can come of it, even when / if needing to forego some of it.

I'm still working on this game and progress is going nicely. Yes, I'll ty to keep at it until I have it fully working and finished.
I love retro-gaming and the Vic-20. 8)
User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Re: Treasure-Seeker (w.i.p)

Post by MysticSword »

Wow! I'm excited to report that lots of good and steady progress has been made on this game.
I've squeezed out almost every last available byte (for using for a configuration of a Vic-20 with 3K memory-expansion), but I now have a fully-working playable version done with most of the ideas I originally had in mind for this game. Overall I feel really satisfied with how it's turned out.
See first post in this thread for a new screenshots and a bit of brief info.
More info soon to come! :D
I love retro-gaming and the Vic-20. 8)
User avatar
grondinm
Vic 20 Amateur
Posts: 55
Joined: Thu Dec 10, 2020 11:54 am
Location: Canada

Re: Treasure-Seeker (w.i.p)

Post by grondinm »

Hey,

Interesting looking game. Would love to give it a go on my VIC. Not sure if it's had any test on real hardware. Do you have a d64 to share? The prg would be fine as well.

Thanks
User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Re: Treasure-Seeker (w.i.p)

Post by MysticSword »

@Grondinm : Many thanks for your kind interest in my game.

I no longer have a real Vic-20 (alas, my good 'ol Vic-20, along with all I had for it, is long gone), so I programmed this Treasure Seeker game via VICE emulator and the CMD prg Studio software (which seems to be quite good for helping one to make a program for the old Commodore computers).
It seems to work good on VICE for a Vic-20 (either NTSC or PAL mode, though my preference is for NTSC as that's what I'm more used to and grew-up with) with a 3K memory-expansion configuration.

If you have a real Vic-20, I'd love to know if / how the game runs on it and of course your thoughts and feedback on the game.
If there's any bugs you noticed, you can let me know details about that as well.

I've been busy preparing this game to release publicly, so very soon I will be making another post here when it's up and ready for downloading.
The game will be in a PRG format (though perhaps I can find a way to also have a d64 file version as well, probably the CMD prg Studio software has that option that I've not yet used. I can look into it later).

Stay tuned!
I love retro-gaming and the Vic-20. 8)
User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Re: Treasure-Seeker (available now!)

Post by MysticSword »

Yay! After putting in a lot of time and work into making this game, I'm excited to have it ready to release publicly.

It's available for free (though there is also a no-obligation option to donate if one enjoys my game and felt they'd like to more help support my efforts).
You can get it at: https://mysticsword.itch.io/vic-20-treasure-seeker

After downloading the game from that page, un-ZIP it and you will find the according files within the folder.
See the included "Vic-20_Treasure-Seeker_readme.txt" file for more info and instructions about the game.

I wrote the game in Vic-20 BASIC. In the included readme file I've put the whole code for the game, along with my notes of the variables used, for anyone that might be interested. I'm sure some things could have been done more efficiently or better, but after a few decades of not using a Vic-20 or programming for it, overall I feel quite satisfied with how it turned out.

I'd be really happy for some of you to give it a play and then let me know what you think of it.
As I mentioned in my previous past, I don't have a real Vic-20 to play or test this game on, (I made, played and tested this game with the help of the VICE emulator software). So if some of you did have a real Vic-20 (and with a 3K memory-expansion along with a joystick), give it a try and then you can let me know if it worked good for you.

I hope some of you will enjoy this game and look I forward to any feedback on it.
Cheers! :D
Last edited by MysticSword on Wed Nov 10, 2021 12:19 am, edited 1 time in total.
I love retro-gaming and the Vic-20. 8)
User avatar
grondinm
Vic 20 Amateur
Posts: 55
Joined: Thu Dec 10, 2020 11:54 am
Location: Canada

Re: Treasure-Seeker (available now!)

Post by grondinm »

Pretty neat game. Seems to work pretty good on real VIC. I only played two maps so not a long test. Maybe it's just me but some clarification on the initial prompt could help. I was not understanding that it was asking for how many maps i wanted to play. I thought it was asking me which map i wanted to start at (like the game had 99 possible maps to choose from).

I made a .d64 just because.

https://cloud.gcfam.net:8099/s/Tq4Fs2BAoGN9Aoi

I've got some days off coming up I'm sure I'll be playing this again. I'll probably even save it to a real floppy just because I can :D I can record some game play from the real vic if you would like to compare or just see.

Good job!
User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Re: Treasure-Seeker (available now!)

Post by MysticSword »

grondinm wrote: Tue Nov 09, 2021 6:07 pm --- lots of great feedback ....
Good job!
Wow, I'm thrilled for such such great feedback! :D
Thank you very much for your kind interest and support, it really means a lot to me and is a good boost of motivation.

I'm also really happy to know that it works good on a real Vic-20, that's awesome. Yay!
And I much appreciate you making and providing me with a .d64 file version of it, as the 'CMB prg Studio' software, which I used to help me write the overall BASIC code for the game, it seems that it only had the option to build it as a PRG format (unless I'm missing an option to build it as a .d64 file as well). So I'll update my ZIP package of my game and go ahead and include that .d64 file with it.

The dreaded "Out of memory error" was something that happened several times during my programming of this game.
I had to try to trim the code as much as I could to squeeze out every available byte (and also to hopefully allow enough for the variables used). So I had to change the input question from "How many maps to play, 1-99?", and instead shortened it to "# maps 1-99?" as the extra bytes used in the longer version of that question could make the difference of having memory-issues or not for this game.

I did however, within the ReadMe text file I included with the game, give more details on it;
..."On the sparse title / start screen (I didn't have any more available memory to spare for anything fancy there), you'll be prompted to enter a number, from 1 to 99, for how many maps you would like to play. The game will then proceed to set-up a map to play on."...

Anyways, I'm glad that you figured it out.

Yes, I'd love to see you make a gameplay video of it. It would be a bonus to me to see how someone else is enjoying playing my game and for any commentary / thoughts they might want to share of it.

Thanks again! I hope you will have much enjoyment from playing this game. Cheers!
PS: If I need to update the game again, maybe I'll ask you to also make a new .d64 file of it for me too, if that's ok. Though perhaps I'll find a method or utility / software I can do that on my end.
I love retro-gaming and the Vic-20. 8)
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: Treasure-Seeker (available now!)

Post by Mike »

MysticSword wrote:I had to try to trim the code as much as I could to squeeze out every available byte (and also to hopefully allow enough for the variables used). [...]
The construction in the lines 2060..2090:

Code: Select all

2060 IFDY=4THENPRINT"{HOME,RVS ON,9 RIGHT,4 SHIFT-B}"
2070 IFDY=3THENPRINT"{HOME,RVS ON,9 RIGHT,3 SHIFT-B,SPACE}"
2080 IFDY=2THENPRINT"{HOME,RVS ON,9 RIGHT,2 SHIFT-B,2 SPACE}"
2090 IFDY=1THENPRINT"{HOME,RVS ON,9 RIGHT,1 SHIFT-B,3 SPACE}"
could easily be replaced with this single line:

Code: Select all

2060 IFDY>0THENPRINT"{HOME,RVS ON,9 RIGHT}"MID$("{4 SHIFT-B,4 SPACE}",5-DY,4)
... leaving out lines 2070 to 2090 completely. The new THEN clause also produces sensible output for DY=0 (4 blanks), so if you are willing to remove the exceptional handling in line 2100 (where the 5 letter word "EMPTY" is printed instead), lines 2060..2100 could be rewritten as as this single line:

Code: Select all

2060 PRINT"{HOME,RVS ON,9 RIGHT}"MID$("{4 SHIFT-B,4 SPACE}",5-DY,4)
The lines 2020..2040 can be treated similarly.

In lines 900 to 996, you have multiple DATA statements in a line. These can all be combined so you only have one DATA statement per line.

There are multiple tests for the same condition, and repeated code parts, for example in lines 7146..7150:

Code: Select all

7146 IFSD>0ANDHK=0THENPOKEKY,5:POKEKY+CU,7
7148 IFSD>0ANDPL>7921THENPOKESK,6:POKESK+CU,7:POKESK+22,6:POKESK+22+CU,7:POKESK-22,6:POKESK-22+CU,7:SK=7746:SD=0
7150 IFSD>0ANDPL<7923THENPOKESK,6:POKESK+CU,7:POKESK+22,6:POKESK+22+CU,7:POKESK-22,6:POKESK-22+CU,7:SK=8162:SD=0
All three lines depend on SD>0, and the THEN clauses of 7148 and 7150 are very similar - you could handle the condition SD>0 and put the identical parts into an own subroutine like this (note the changed condition in line 7150!):

Code: Select all

7144 IFNOT(SD>0)THEN7160
7146 IFHK=0THENPOKEKY,5:POKEKY+CU,7
7148 IFPL>7921THENGOSUB9999:SK=7746
7150 IFPL<=7921THENGOSUB9999:SK=8162
7160 [...]

[...]

9999 POKESK,6:POKESK+CU,7:POKESK+22,6:POKESK+22+CU,7:POKESK-22,6:POKESK-22+CU,7:SD=0:RETURN
The code could be streamlined further like this, eliminating once again the sub-routine in line 9999:

Code: Select all

7144 IFNOT(SD>0)THEN7160
7146 IFHK=0THENPOKEKY,5:POKEKY+CU,7
7148 POKESK,6:POKESK+CU,7:POKESK+22,6:POKESK+22+CU,7:POKESK-22,6:POKESK-22+CU,7:SD=0
7150 SK=8162:IFPL>7921THENSK=7746
7160 [...]
I am quite sure similar refactorings could be applied to other parts of the code.

Greetings,

Michael
User avatar
MysticSword
Vic 20 Amateur
Posts: 43
Joined: Tue Nov 02, 2021 3:42 am
Website: https://www.youtube.com/mysticsword
Location: Canada
Occupation: artist & care-giver

Re: Treasure-Seeker (available now!)

Post by MysticSword »

Mike wrote: Wed Nov 10, 2021 12:54 am ... <snip>...
Excellent!
I figured there was probably more efficient / better ways to do some things in my game's code (that I just wasn't aware of or have the know-how to do at the time and some things about coding / some instructions / how to properly or more efficiently put things, is still rather confusing to me and I may have a more redundant or crude way of how I go about programming for some things I want to try to accomplish in a game), so I much appreciate those tips.
As I mentioned, it's been decades since I programmed in BASIC, so making this little game has been a good refresher and learning experience for me in many ways.

When I have a chance, I may implement (into my game) and then test it with some of those code suggestion changes you mentioned.
By the looks of things, it would help to tighten the overall code even more and recover some extra bytes for a little more buffer / 'breathing room'. Cheers!
I love retro-gaming and the Vic-20. 8)
Post Reply