Jump to content

Maze Man


Recommended Posts


Honestly, I have gotten a bit discouraged. I know it's not good--- but I've hit a rut on the TI right now. I need to finish Calimari Carl, I need to get some motion going on Beryl Reichardt, and I can't seem to get any of it done. So much so that I have spent 3 hours in the last two days playing NHL Hockey '96 on my Super Nintendo instead of working on code. Sometimes I hit a wall and I can't get off my ass to brush off the dust and move on. I watch how much success you guys have in assembly and it is inspiring, but it is also frustrating. I love XB, but I've gotten a dangerous taste for assembly and I feel like I'm playing with a toy instead of writing a game nowadays when I code in XB. I can't seem to finish a simple task even in XB, so when I try to do simple things in assembly it REALLY gets me down in the mouth.


It's not that I don't WANT to do it... of course I would love to pound away for hours on end and come up with something great. Recently I've just been trying to stay in the TI-state of mind by posting pictures of my books, going through boxes of stuff I have in storage, trying to recover an old tape game I found... Anything but coding, sadly. Your rendition of my Beryl Reichardt scroller is absolutely my favorite piece of code I've ever seen in action. As much as I love Never-Lander, Pitfall!, Parsec, Henhouse... when I watch your program execute with my graphics, I get very excited. I think I actually teared up the first time I ran it. (don't tell anyone)


But it kind of made me embarassed by my original version, and I basically just lost interest... At that point, I was making alot of assembly progress... but how could I take something as brilliant as your scroller and add my hacky kid-code to it?? I made a decision to get back to basics and really LEARN memory and source code. What happened, though, was that I essentially got lost and forgot most of what I learned.


It is an indictment of my insecurity with coding. I started writing games less than two years ago, I have absolutely ZERO programming experience except in BASIC and XB, and the whole concept (while simple) largely eludes me. You guys are great, and I love watching the brillance unfold. I just hope I can contribute someday the way you guys do. If I were fluent in assembly, I'd put out some ridiculous sh**. I'm passionate about writing games, but I'm no good in assembly and I'm disillusioned with XB... That's a tough spot to be in.


Owen, you are at a similar stage to me when I was young. I started tinkering with computers in about 1982 I think. By the time I was 14 I was trying to learn machine code on the ZX Spectrum. I could understand each individual instruction, but I couldn't put anything together by myself, whereas BASIC was natural to me (though slow).


I later moed to assembly on the TI (1991). I still remember how much of a brain-fuck it was coding assembly with the mini-mem line-by-line assembler. I actually used to write my code in a notebook, with lots of notes. \I found it MUCH easier to work on paper, and still do, generally. If I'm working on a really *hard* problem, I *have* to get away from the computer and just write with pencil and paper. The computer is a distraction at that point.


All I can say is, it will start to become more natural to you. Hopefully Matt's book will come out soon and you'll be off. ;)


Incidentally, regarding TurboForth, I plan to have a section at the back of the book that takes you through the complete design of a (simple) game in TurboForth from start to finish. That's the plan, anyway. It's gonna be a big motha of a book the way things are shaping up!



Link to comment
Share on other sites

I've done random mazes like this with preset strings. It's a nice way to do it. What it does is print 20 random 1 line strings and then draws a border around them. But what I like best in this program that I have not done that I think is great is this,


240 DIM A(5,5,4),B(100),C(100)
260 FOR J=1 TO 5
270 FOR K=1 TO 5
290 FOR L=1 TO 4 :: A(J,K,L)=INT(100*RND) :: B(J*K*L)=A(J,K,L) :: C(J*K*L)=B(J*K*L) :: NEXT L
320 NEXT K
330 NEXT J

rem z is the random seed for the level
800 Z=A(J,K,L)

rem draws the top border
820 PRINT "zzzzzz  zzzzzzzzzz  zzzzzzz"

rem picks 20 random lines decided by the random seed in 810 will always be same for that level when you come back to it
830 FOR M=1 TO 20
840 AA=INT(20*RND)+1
850 ON AA GOSUB 350,370,390,410,430,450,470,490,510,530,550,570,590,610,630,650,670,690,710,730
855 NEXT M

rem draws the bottom and then side borders
860 PRINT "zzzzzz  zzzzzzzzzz  zzzzzzz"
880 CALL VCHAR(2,2,122,10)
890 CALL VCHAR(2,30,122,10)
900 CALL VCHAR(14,2,122,10)
910 CALL VCHAR(14,30,122,10)


This is storing 100 random numbers that they are going to use as random seeds before they draw the mazes.

So there are 100 random mazes made when you start the game and you can back travel to the same mazes later on because the random seed will always be reset to the level you are on. A very smart way to make the same maze over and over without having to store 100 screens of mazes. It is in fact a game that has 100 different levels and uses no memory to store any screen data for levels.

Link to comment
Share on other sites

So the idea is, for every "run", to generate 100 random seeds, so the 100 screens stay the same for that particular game. If you break and run it again, there should be a new world (=100 screens).


100 screens is pretty big for a game (or maybe I never go that far into games). I think I played it 4 times, and every time I ended up with no arrows and trapped in a room between 2 screens. Is there a way to "get out" ? The objects also began disappearing (none showed up when I moved between screens) the more I played. This of course only happens when I play the game.



Edited by sometimes99er
Link to comment
Share on other sites

Yeah 100 screens is really big, looks like the array DIM A(5,5,4) would make a 5 screen by 5 screen maze stacked 4 high.


"I think I played it 4 times, and every time I ended up with no arrows and trapped in a room between 2 screens. Is there a way to "get out" ?"

I have not played it yet but I was wondering if it would produce unaccessible sections of the maze being random like it is.

Link to comment
Share on other sites

John, Mark, and Matthew...


Thank you guys for your encouragement--- I got started playing with assembly again and it has re-energized my desire. Then Maze Man has given me some very cool ideas also. :) I'm glad I was able to get it transferred for everyone--- it is teaching me quite a bit.


I think I just became totally exhausted with BASIC syntax and line numbers while working on "Carl". So I got out my Wycove disks and started Forthing... Then I had a talk with Matthew and he inspired me to start playing with assbly again.... I am successfully re-energized again. Don't expect Beryl Reichardt in the next month or two, but I can tell you I'm pretty close to achieving a very neat scrolling adventure demo. :). You guys continue to inspire, so I thank you!

Link to comment
Share on other sites

Maze Man is proving to be quite a nicely designed game--- I have no idea who wrote it or when.... But the mystery is kind of cool.


Maybe we should re-make this in our own image. :)

I'm going to post it with the next update of the gameshelf. Too bad there is no author known... Thanks for saving it from oblivion! Who knows? The author may stumble across it someday and step up. It has already happened many times since the gameshelf site was launched.

Link to comment
Share on other sites

In the normal unprotected state the value of -31931 is zero. I suppose if there was a command line in the program which was CALL LOAD(-31931,128) it would protect the program only after the first time this line was encountered, but prior to this no protection would exist. Would be a strange way to do things but it should work….


Me guesses you guys don't have access to a TI Extended Basic manual?

Specifically, the SAVE section?


SAVE DSK1.GAME,PROTECTED ring any bells?


You can't LIST or EDIT a PROTECTED program. Only RUN it!

Edited by ti99_forever
Link to comment
Share on other sites

From the XB manual SAVE command, pg 163:



SAVE device.program-name [,PROTECTED]

SAVE device.program-name [,MERGE]



Only the PROTECTED option is available with cassette recorders.


By using the keyword PROTECTED, you may optionally specify that a program can only be run or brought into memory with OLD. The program cannot be listed, edited, or saved. This is not the same as using the protection available with the Disk Manager Module. NOTE: Be sure to keep an unprotected copy of any program because the protection feature is not reversible. If you also wish to protect the program from being copied, use the protect feature of the Disk Manager module.


--- end quote ---


Funny, the text says the PROTECTED option can only be used with the cassette, but then gives this example:




I wonder what the PROTECTED option really does?




Good, someone read the manual! It just sets that stupid bit is all...

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Someone's got the TI Maze Man up for sale right now, if you're looking for the original...


eBay Auction -- Item Number: 1206566287071?ff3=2&pub=5574883395&toolid=10001&campid=5336500554&customid=&item=120656628707&mpt=[CACHEBUSTER]

Unless you are a collector, $40 seems way over the top as far as pricing is concerned.



It totally is. I'd like to have it, and I'd probably pay more than I should for it, but $40 is over the line for me, for one cassette game.

Link to comment
Share on other sites

Is it just me or prices for vintage computer items are going through the roof? I mean it's bordering on ridiculous, and makes me think that we have a bunch of misinformed amateurs trying to dump items they have very little knowledge of and thinking they can make a fortune on. They don't realize that the people who truly appreciate these machines are getting older and know the true price of owning a vintage machine in terms of space, additional peripherals, software and learning curve, and so will be very disinclined to pay the hundreds or ever thousands of dollars asking price. But I guess there are always suckers :)

Link to comment
Share on other sites

RE: pricing, it always gets crazier around Christmas time. I agree though that prices are trending higher now that collecting is more of an in thing and more and more systems are getting interesting modern day solutions (flash cards, interfaces, etc.) to old problems. With that said, I still find good deals here and there, so I can't complain too much.

Link to comment
Share on other sites

I think it's all cyclical. On Ebay, when one item flukes its way to a higher price, the next few people who sell a similar thing all think they're gonna get that much or more -- the high-water mark becomes their minimum. At some point, that fails, when someone gets fed up and dumps their item(s) in a cheap auction just to be rid of them, but then the cycle continues again.


I have paid stratospheric prices for a game if I've never seen it, or if the packaging looks cool -- like with that Dungeon Key game I recently bought, or the Moonbeam Software titles I bought from Ernie Pergrem recently. But it's tougher to pull the trigger when it's a cassette, a xeroxed instruction sheet, and a plastic baggie.


Fundamentally, all collecting is ridiculous -- none of these things can feed, clothe, or shelter us. It's just up to all of us to what degree we choose to indulge the insanity. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...