Jump to content

Photo

Dark Maze (Version 1.1)


40 replies to this topic

#26 adamantyr OFFLINE  

adamantyr

    Stargunner

  • Topic Starter
  • 1,103 posts

Posted Thu Jul 6, 2017 9:21 AM

Nice, what's the high score anyone's achieved?



#27 InfernalKeith OFFLINE  

InfernalKeith

    Dragonstomper

  • 625 posts
  • Location:Toledo, OH

Posted Thu Jul 6, 2017 12:06 PM

20+ levels?  Man, I suck.  I think I've gotten through 6 or 7, tops...



#28 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 2,669 posts
  • Location:Eagan, MN, USA

Posted Thu Jul 6, 2017 3:17 PM

Somehow I missed posting this game on the TI Gameshelf... I'll correct that oversight with the next update.



#29 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 3,850 posts
  • Location:Denmark

Posted Fri Jul 7, 2017 2:36 AM

The level below is set to run a bit faster for demoing purposes. I sacrificed myself soon after and the score ended up at 47,970. :)

 

darkmaze.gif

  

  



#30 InfernalKeith OFFLINE  

InfernalKeith

    Dragonstomper

  • 625 posts
  • Location:Toledo, OH

Posted Fri Jul 7, 2017 12:23 PM

This is strangely hypnotic to watch...



#31 adamantyr OFFLINE  

adamantyr

    Stargunner

  • Topic Starter
  • 1,103 posts

Posted Fri Jul 7, 2017 2:31 PM

Fired it up myself... Wow I made a tough game! I wish it was more playable without using CPU Overdrive mode though. Part of me wants to make a "deluxe" version that uses assembly routines to do the GCHAR/map uncovering quickly, and then add multiple monsters as you descend deeper...

 

I won't though... the problem is, it wouldn't stop there. :) Then I'd want the maze generation to be fast too... and then response time would be sluggish... and I'd just end up crafting the whole thing in assembly. :D



#32 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 2,669 posts
  • Location:Eagan, MN, USA

Posted Fri Jul 7, 2017 3:13 PM

Fired it up myself... Wow I made a tough game! I wish it was more playable without using CPU Overdrive mode though. Part of me wants to make a "deluxe" version that uses assembly routines to do the GCHAR/map uncovering quickly, and then add multiple monsters as you descend deeper...

 

I won't though... the problem is, it wouldn't stop there. :) Then I'd want the maze generation to be fast too... and then response time would be sluggish... and I'd just end up crafting the whole thing in assembly. :D

 

Try Forth! I bet this thing would just blaze away in TF...



#33 InfernalKeith OFFLINE  

InfernalKeith

    Dragonstomper

  • 625 posts
  • Location:Toledo, OH

Posted Fri Jul 7, 2017 6:30 PM

I dunno if this is a weird side effect of age and nostalgia, but I find that I'm not turning CPU Overdrive on when I play games like this as much.  I like the slow, deliberate pacing you have to force upon yourself to move in "BASIC time."  I think it adds to the atmosphere of the game.

 

I'm dealing with that with the thing I'm trying to finish up now.  It's a slow-paced game and I like it that way, but I have a feeling most people are gonna be driven up a wall by it.



#34 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 2,669 posts
  • Location:Eagan, MN, USA

Posted Sat Jul 8, 2017 6:00 AM

I dunno if this is a weird side effect of age and nostalgia, but I find that I'm not turning CPU Overdrive on when I play games like this as much.  I like the slow, deliberate pacing you have to force upon yourself to move in "BASIC time."  I think it adds to the atmosphere of the game.

 

I'm dealing with that with the thing I'm trying to finish up now.  It's a slow-paced game and I like it that way, but I have a feeling most people are gonna be driven up a wall by it.

 

At first a slow TI BASIC game can be a bit irritating, but after a few minutes of play, assuming the game is well made, I find myself getting absorbed by it. I suspect that in this age of gigahertz processors and lightning fast shooters, many users may quit on these types of games within a few seconds without giving them much of a chance and thus miss out on a potentially great experience.

As for overdrive, I usually don't use it because it feels like cheating. Weird, huh?



#35 Willsy OFFLINE  

Willsy

    River Patroller

  • 2,995 posts
  • Location:Uzbekistan (no, really!)

Posted Mon Jul 10, 2017 9:34 AM

F**k me what an awesome game! I'm dying to port this to TF (I'd make a "how to" video series out of it) but I can't fathom how the maze drawing routine works.

Can someone break it down into pseudo code? :-)

#36 Astharot OFFLINE  

Astharot

    Star Raider

  • 73 posts
  • Married
  • Location:Rome

Posted Mon Jul 10, 2017 11:50 AM

Admantry your game is more near at deep dungeon for msx system.. look it here http://www.file-hunter.com/MSX/can give at you idea for deluxe version :-)



#37 adamantyr OFFLINE  

adamantyr

    Stargunner

  • Topic Starter
  • 1,103 posts

Posted Mon Jul 10, 2017 11:52 AM

Certainly!

  • Fill up the screen with wall patterns
  • Create 8 3x3 empty chambers randomly on the map board
    • The coordinates picked are spaced on even coordinates and sized to remain within the boundaries
    • The center coordinate of each chamber is stored in an array
  • From each chamber, plot in the four cardinal directions
    • If you hit a boundary, change direction clock-wise
    • If you encounter an empty space, stop and move on to the next direction/chamber
  • Done!

This short code snippet captures the maze generation:
 

100 CALL CLEAR :: CALL HCHAR(2,1,35,736):: FOR I=0 TO 3 :: READ VR(I),VC(I):: NEXT I
110 FOR I=1 TO 8 :: RANDOMIZE :: CALL PEEK(-31808,R,C) :: CR(I)=INT(R/29)*2+4 :: CC(I)=INT(C/19)*2+3
120 FOR J=-1 TO 1 :: CALL HCHAR(CR(I)+J,CC(I)-1,137,3) :: NEXT J :: NEXT I :: FOR I=1 TO 8 :: FOR J=0 TO 3 :: R=CR(I)+VR(J) :: C=CC(I)+VC(J) :: D=J
130 R2=R+VR(D) :: C2=C+VC(D) :: IF((R2=2)+(R2=24)+(C2=1)+(C2=32))THEN D=D+1 :: IF D=4 THEN D=0 :: GOTO 130 ELSE 130
140 R=R2 :: C=C2 :: CALL GCHAR(R,C,G) :: IF G=32 THEN 150 ELSE CALL VCHAR(R,C,32) :: GOTO 130
150 NEXT J :: NEXT I
160 GOTO 160
200 DATA 1,0,0,-1,-1,0,0,1

I was working with a 30 line limit with this one for the contest, so I did not make it as "smart" as it could have been. The original intent was to plot paths between chambers so that you were guaranteed there was no cut off areas.



#38 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 8,246 posts
  • Location:Cookeville, TN

Posted Mon Jul 10, 2017 11:55 PM

Soooooo nice.  :)  I remember this game fondly!!!



#39 adamantyr OFFLINE  

adamantyr

    Stargunner

  • Topic Starter
  • 1,103 posts

Posted Tue Jul 11, 2017 10:35 AM

Admantry your game is more near at deep dungeon for msx system.. look it here http://www.file-hunter.com/MSX/can give at you idea for deluxe version :-)

 

That's a cool one! It's not even on Moby Games... No worries, I have a long-standing game project besides my CRPG that's similar...



#40 Willsy OFFLINE  

Willsy

    River Patroller

  • 2,995 posts
  • Location:Uzbekistan (no, really!)

Posted Tue Jul 11, 2017 2:38 PM

Question re XB... it's been too long since I did any XB, and this line is perplexing me!!

 

130 R2=R+VR(D) :: C2=C+VC(D) :: IF((R2=2)+(R2=24)+(C2=1)+(C2=32))THEN D=D+1 :: IF D=4 THEN D=0 :: GOTO 130 ELSE 130

 

The bit that confuses me is the GOTO 130 ELSE 130, however, let's back up a bit...

 

Am I right in thinking that XB skips to the NEXT line number if the big IF clause evaluates to false?

 

And this:

 

IF D=4 THEN D=0 :: GOTO 130 ELSE 130

 

just means if D=4 then set D to 0 and go to 130, otherwise just go to 130.

 

Right? :dunce:



#41 Lee Stewart OFFLINE  

Lee Stewart

    River Patroller

  • 3,228 posts
  • Location:Silver Run, Maryland

Posted Tue Jul 11, 2017 3:54 PM

Question re XB... it's been too long since I did any XB, and this line is perplexing me!!

130 R2=R+VR(D) :: C2=C+VC(D) :: IF((R2=2)+(R2=24)+(C2=1)+(C2=32))THEN D=D+1 :: IF D=4 THEN D=0 :: GOTO 130 ELSE 130

The bit that confuses me is the GOTO 130 ELSE 130, however, let's back up a bit...

 

Am I right in thinking that XB skips to the NEXT line number if the big IF clause evaluates to false?

 

And this:

 

IF D=4 THEN D=0 :: GOTO 130 ELSE 130

 

just means if D=4 then set D to 0 and go to 130, otherwise just go to 130.

 

Right? :dunce:

 

Yup.

 

If you added another ELSE clause, failure of the first IF would take that route.

 

...lee






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users