Untitled Dungeon Game

developing/porting a new game or gaming framework? post in here!
Naomasa298
Posts: 392
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: Untitled Dungeon Game

Post by Naomasa298 »

Chris, I am following your progress with a great deal of interest.
User avatar
Arcadian
Site Admin
Posts: 3793
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Untitled Dungeon Game

Post by Arcadian »

Thanks again Chris for speaking at Saturday's Virtual ABug event - here's the video of Chris' dungeon game demo for anyone that hasn't spotted it in the events section ...

Good luck with the rest of the project, hopefully you'll rejoin us at a future ABug soon to give another update! :)
For a "Complete BBC Games Archive" visit www.bbcmicro.co.uk
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

Hopefully I'll finish it some time soon!

Thanks for all the comments and feedback - already implementing some of them. Looking at the video it has come out reasonably well although it
doesn't do the movement justice.

One of the things we talked about was the smoothing applied to the scaling. Here's a comparison with the smoothed version on the right. The source image is 32x32.
smooth comparison2.png
The algorithm was taken from https://en.wikipedia.org/wiki/Pixel-art ... AME2%C3%97
Naomasa298
Posts: 392
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: Untitled Dungeon Game

Post by Naomasa298 »

Sorry I missed the talk Chris but I've just watched the recording.

A couple of questions if I may.

Do you have end-of-dungeon bosses? And how many cards are there in total?
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

End of level bosses. No - I don't - but the hardest monsters in each level appear further from the start location.

Balance is still a major point - so these values are subject to change.
There are 50 individual cards although some of them have multiple names (64 currently - soon to be 75+) for variation.
Also there are 40 monsters which each have a hand of 10 cards. 6 monsters appear in each level and there are 66 treasures which grant up to 4 cards each.
Naomasa298
Posts: 392
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: Untitled Dungeon Game

Post by Naomasa298 »

ChrisB wrote:
Tue Jul 07, 2020 7:10 pm
End of level bosses. No - I don't - but the hardest monsters in each level appear further from the start location.

Balance is still a major point - so these values are subject to change.
There are 50 individual cards although some of them have multiple names (64 currently - soon to be 75+) for variation.
Also there are 40 monsters which each have a hand of 10 cards. 6 monsters appear in each level and there are 66 treasures which grant up to 4 cards each.
I saw the discussion about a title for the player. How about one based on the % of all cards and/or treasures collected?
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

I saw the discussion about a title for the player.
Yes - there seems to be a real desire to have some kind of "Score" for the player. I'll collect some stats and display those at the end which will help.

I'm thinking about some kind of description - might be fun to take two or three separate properties to create a title. Say - amount of gold, percentage of stats upgraded and number of dungeon's cleared. So - Skint Incompetent Peasant to Rich Godlike Prince and everything in between - but not related to each other so you could be a Poor Skilled Noble or a Rich Improving Serf.
Naomasa298
Posts: 392
Joined: Sat Feb 16, 2013 12:49 pm
Contact:

Re: Untitled Dungeon Game

Post by Naomasa298 »

ChrisB wrote:
Tue Jul 07, 2020 8:05 pm
I'm thinking about some kind of description - might be fun to take two or three separate properties to create a title. Say - amount of gold, percentage of stats upgraded and number of dungeon's cleared. So - Skint Incompetent Peasant to Rich Godlike Prince and everything in between - but not related to each other so you could be a Poor Skilled Noble or a Rich Improving Serf.
Somehow, that's very Pythonesque.
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

Following the feedback I've added some new features.
  • A "rating" as described above. Might tweak the descriptions slightly but it works well.
  • An option to change the background colour to cyan making it slightly less contrast.
  • A number of days to complete. Currently set at 14 - might be a bit tight.
  • Some statistics to be displayed when you win/lose
  • A lose screen.
  • A save system. When enabled the game saves your progress every time you go back to town.
All this has led to running into the dreaded "no room". This means I've had to move to the crunched version (rather than the uncrunched version I was using in development).
drfloyd
Posts: 381
Joined: Tue Jun 09, 2020 3:36 pm
Contact:

Re: Untitled Dungeon Game

Post by drfloyd »

very nice project

hope it will work with ROM 3.5 [-o<
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

There's no reason it shouldn't. I'm not doing anything "naughty" or using exciting areas of memory apart from direct screen access. Seems to work under emulation.
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

As mentioned elsewhere I've now implemented a simple event based routine to provide background music. Now - at the moment it just plays a few bars of greensleeves which will need changing.

Technically I'm using the counter crossing zero event (event 5). Because I'm going for a sort of plucked string feel all the notes that are played are the same length. The duration of the notes is used to set the counter update. It's only a single channel and the sounds are started immediately cutting off the old note if it's still playing. Seems to work quite well. Now to write a tune!
User avatar
tricky
Posts: 4995
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Untitled Dungeon Game

Post by tricky »

You do music as well !!!
AJW
Posts: 908
Joined: Sun Feb 15, 2004 2:01 pm
Contact:

Re: Untitled Dungeon Game

Post by AJW »

Recommend any good envelopes?
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

I'm still fiddling around and will need to have a go on a real beeb. However here's my current code (taken from beebasm to BBC BASIC hence the long variable names).

CALL tuneStart to start the tune and *fx 13,5 to stop.

Code: Select all

   10MODE 3
   20ENVELOPE 1,1,0,0,0,0,0,200,126,-2,-1,-2,100,40
   30notes$=""
   40durations$=""
   50REPEAT
   60READ N%
   70notes$=notes$+CHR$(N%)
   80UNTIL N%=0
   90REPEAT
  100READ N%
  110durations$=durations$+CHR$(N%)
  120UNTIL N%=0
  130FOR opt%=0 TO 3 STEP 3
  140P%=&900
  150[OPT opt%
  160.startTune
  170BIT tuneInitialised
  180BMI tuneAlreadyInitialised; Only setup event once
  190LDA &220:STA oldEvent
  200LDA &221:STA oldEvent+1
  210LDA #tuneStart MOD 256
  220STA &220
  230LDA #tuneStart DIV 256
  240STA &221
  250.tuneAlreadyInitialised
  260LDA #240:STA tuneInitialised ;Set initialised flag
  270STA tuneCounter ;Also use as tune start delay (.25 seconds)
  280LDX #tuneCounter MOD 256
  290LDY #tuneCounter DIV 256
  300LDA #4
  310JSR &FFF1 ;Write interval timer
  320LDA #0
  330STA tuneOffset; Set tune to Sart position
  340LDA #14
  350LDX #5
  360JMP &FFF4 ; *fx 14,5
  370.tuneStart
  380PHP
  390CMP #5; Interval timer crossing zero
  400BNE eventNotForMe 
  410PHA
  420TXA:PHA
  430TYA:PHA
  440LDX tuneOffset; Current tune offset
  450LDA durations,X ; Get note duriation
  460BNE tunenotwrapped; Duration zero indicates end of tune
  470STA tuneOffset; Store zero in offset
  480LDA durations ;We are at zero so don't need offset to get duration
  490.tunenotwrapped
  500STA tuneCounter ;Write duration to counter block
  510LDX #tuneCounter MOD 256
  520LDY #tuneCounter DIV 256
  530LDA #4
  540JSR &FFF1 ;Write interval timer
  550LDX tuneOffset; get back offset
  560LDA notes,X ; Get note value
  570STA tuneNote;Store in sound block
  580INC tuneOffset;increase offset
  590LDA #&7
  600LDX #tuneSound MOD 256
  610LDY #tuneSound DIV 256
  620JSR &FFF1 ;Play sound
  630PLA:TYA
  640PLA:TXA
  650PLA
  660.eventNotForMe
  670PLP
  680JMP (oldEvent)
  690.tuneSound
  700EQUW &13;Channel
  710EQUW 1;Envelope
  720.tuneNote
  730EQUW 0 ;Note
  740EQUW 10 ;Duration
  750.tuneCounter
  760EQUB 0
  770EQUD &FFFFFFFF
  780.oldEvent
  790EQUW 0
  800.tuneOffset
  810EQUB 0
  820.tuneInitialised
  830EQUB 0
  840OPT 0
  850.notes
  860EQUS notes$
  870.durations
  880EQUS durations$
  890]
  900NEXT
  910PRINT "Code end &";~P%
  920CALL startTune
  930END
  940REM Notes
  950DATA 117,129,137,145,149,145,137,125,109,117,125,129,117,117,113,117,125,113,97
  960DATA 117,129,137,145,149,145,137,125,109,117,125,129,125,117,113,105,113,117,117,0
  970REM Durations
  980DATA 235,215,235,225,245,235,215,235,225,245,235,215,235,225,245,235,215,235,215
  990DATA 235,215,235,225,245,235,215,235,225,245,235,225,245,235,225,245,235,195,95,0
User avatar
tricky
Posts: 4995
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Untitled Dungeon Game

Post by tricky »

I know it's not the final tune, but will it have a volume control :roll:
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

I've got a toggle at the moment - so on/off - not volume as such...

I have thought about overall volumes - there are a couple of approaches I could take but not sure at the moment.
AJW
Posts: 908
Joined: Sun Feb 15, 2004 2:01 pm
Contact:

Re: Untitled Dungeon Game

Post by AJW »

Didn't know you could volume control an envelope.
User avatar
tricky
Posts: 4995
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Untitled Dungeon Game

Post by tricky »

An envelope is the volume control, so it would be a little more than just setting the volume to scale things.
Maybe 1/2 volume would be OK by halving the various targets and rates - or something like that.
AJW
Posts: 908
Joined: Sun Feb 15, 2004 2:01 pm
Contact:

Re: Untitled Dungeon Game

Post by AJW »

ChrisB wrote:
Fri Jul 17, 2020 7:22 pm
I'm still fiddling around and will need to have a go on a real beeb. However here's my current code (taken from beebasm to BBC BASIC hence the long variable names).

CALL tuneStart to start the tune and *fx 13,5 to stop.

Code: Select all

   10MODE 3
   20ENVELOPE 1,1,0,0,0,0,0,200,126,-2,-1,-2,100,40
   30notes$=""
   40durations$=""
   50REPEAT
   60READ N%
   70notes$=notes$+CHR$(N%)
   80UNTIL N%=0
   90REPEAT
  100READ N%
  110durations$=durations$+CHR$(N%)
  120UNTIL N%=0
  130FOR opt%=0 TO 3 STEP 3
  140P%=&900
  150[OPT opt%
  160.startTune
  170BIT tuneInitialised
  180BMI tuneAlreadyInitialised; Only setup event once
  190LDA &220:STA oldEvent
  200LDA &221:STA oldEvent+1
  210LDA #tuneStart MOD 256
  220STA &220
  230LDA #tuneStart DIV 256
  240STA &221
  250.tuneAlreadyInitialised
  260LDA #240:STA tuneInitialised ;Set initialised flag
  270STA tuneCounter ;Also use as tune start delay (.25 seconds)
  280LDX #tuneCounter MOD 256
  290LDY #tuneCounter DIV 256
  300LDA #4
  310JSR &FFF1 ;Write interval timer
  320LDA #0
  330STA tuneOffset; Set tune to Sart position
  340LDA #14
  350LDX #5
  360JMP &FFF4 ; *fx 14,5
  370.tuneStart
  380PHP
  390CMP #5; Interval timer crossing zero
  400BNE eventNotForMe 
  410PHA
  420TXA:PHA
  430TYA:PHA
  440LDX tuneOffset; Current tune offset
  450LDA durations,X ; Get note duriation
  460BNE tunenotwrapped; Duration zero indicates end of tune
  470STA tuneOffset; Store zero in offset
  480LDA durations ;We are at zero so don't need offset to get duration
  490.tunenotwrapped
  500STA tuneCounter ;Write duration to counter block
  510LDX #tuneCounter MOD 256
  520LDY #tuneCounter DIV 256
  530LDA #4
  540JSR &FFF1 ;Write interval timer
  550LDX tuneOffset; get back offset
  560LDA notes,X ; Get note value
  570STA tuneNote;Store in sound block
  580INC tuneOffset;increase offset
  590LDA #&7
  600LDX #tuneSound MOD 256
  610LDY #tuneSound DIV 256
  620JSR &FFF1 ;Play sound
  630PLA:TYA
  640PLA:TXA
  650PLA
  660.eventNotForMe
  670PLP
  680JMP (oldEvent)
  690.tuneSound
  700EQUW &13;Channel
  710EQUW 1;Envelope
  720.tuneNote
  730EQUW 0 ;Note
  740EQUW 10 ;Duration
  750.tuneCounter
  760EQUB 0
  770EQUD &FFFFFFFF
  780.oldEvent
  790EQUW 0
  800.tuneOffset
  810EQUB 0
  820.tuneInitialised
  830EQUB 0
  840OPT 0
  850.notes
  860EQUS notes$
  870.durations
  880EQUS durations$
  890]
  900NEXT
  910PRINT "Code end &";~P%
  920CALL startTune
  930END
  940REM Notes
  950DATA 117,129,137,145,149,145,137,125,109,117,125,129,117,117,113,117,125,113,97
  960DATA 117,129,137,145,149,145,137,125,109,117,125,129,125,117,113,105,113,117,117,0
  970REM Durations
  980DATA 235,215,235,225,245,235,215,235,225,245,235,215,235,225,245,235,215,235,215
  990DATA 235,215,235,225,245,235,215,235,225,245,235,225,245,235,225,245,235,195,95,0
I thought i had a good envelope until I added the music and it sounded like a music box . There'sthis post amongst several Envelope topics.

viewtopic.php?t=4802#p43883

viewtopic.php?f=32&t=4923
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

Unfortunately progress has slowed somewhat so there's not much to say here. I have been playing through the first few levels a bit to test the balance. I have also implemented a boss fight at the "end" of each dungeon. This has made balancing even more tricky so there will be quite a bit of work to do here...
User avatar
ChrisB
Posts: 90
Joined: Wed Oct 05, 2011 10:37 pm
Location: Surrey
Contact:

Re: Untitled Dungeon Game

Post by ChrisB »

Time for another update.

I've spend a lot of time playing and balancing and a think (hope) that this is now complete. There will defiantly need to be a small beta test phase (just not quite yet :wink: ). I now have 80 cards, 69 "treasures" and 46 enemies (including the 7 end of level bosses).

I've also optimised various bits of the code to remove some of the lookup tables so the text in particular takes significantly less space - there is still over 4K of various pieces of text excluding the story. I've also tweaked the combat speed and added various fixes to graphical glitches that were present.

Left to do is a few audio cues to add and a few more tweaks to messages. I'm also looking to implement a volume control. Lastly I'm also looking at the maze storage and want to refactor that. It's taking a lot of space (which in itself isn't a problem) but this causes a couple of gameplay pauses for movement and the minimap redraw that I want to eliminate. I also think the monster storage could be better.
User avatar
Arcadian
Site Admin
Posts: 3793
Joined: Fri Nov 24, 2000 12:16 pm
Contact:

Re: Untitled Dungeon Game

Post by Arcadian »

Wow Chris sounds like you've been busy over Xmas!

Do you fancy bobbing along to this Thursday's Dev Night to give us all a demo of the new version?
For a "Complete BBC Games Archive" visit www.bbcmicro.co.uk
Post Reply

Return to “new projects in development: games”