Jump to content
IGNORED

WIP Frake of Bemer


Dmitry

Recommended Posts

In the April 1984 issue of Compute! is a favorite type-in game called Worm of Bemer. It was largely written in basic, and is a great example of a basic action game.

 

The author challenged readers to improve upon the game, and I do not know how many times this has already been done, but my son and I are taking the challenge!

 

The author Stephen Fultz said "Some features you might add include a routine to save the high score to disk, adding more players, or having Nerm go to a different room depending on which exit he takes. "

 

Now - I'm telling everyone about the WIP, because I just love hearing all the news about other works in progerss, and I hope everyone enjoys various updates around this game as well.

 

Also, so that this doesn't become a never ending project, the feature list is set in stone. We are taking Stephens challenge by adding these features:

 

1. Save high score to disk

2. Two player mode

3. Different exits lead to different room

 

PLUS:

 

4. Rewriting in C/Assembly

5. 2 player mode will be competitive or cooperative

6. And re-doing the graphics, including new welcome screen and animated snakes.

 

There is always the possibility that the game never finishes, but I have a good feeling about this one.... be setting out the goals, in public no less, I will not let feature creep cause this to never finish....lol

 

This weeks task, is to re-do the Welcome screen.

 

Here is the original

 

WelcomeOriginal

One thing we could do is change the fonts only - and leave it at that, here is a new font:

Dima is reworking the font

 

And lastly, we could try to put an image on the screen - or do that and the fonts also, here is a mockup of placing an image:

 

Welcome New

 

 

  • Like 6
Link to comment
Share on other sites

Similar game to Millipedes http://www.atarimania.com/game-atari-400-800-xl-xe-millipedes_13847.html

 

I created the concept of this game. Mixture of normal, poison, bonus mushrooms. The object is to grab all the bonus objects to end the level, the good objects make you grow longer but while doing that the poison ones which cause you to shorten become more numerous and block your progress.

  • Like 1
Link to comment
Share on other sites

I took a look at Millipedes. I think Nerm of Bemer and Millipedes are similar... In that they are classic snake games and run speedily in basic.

 

I like the colorful millipede. In Nerm, the worm has to return home. In the original that really just meant completing the levels. But in a game where doors actually lead somewhere, it implies finding the home.

 

Although minor conceptual differences, the main fun for me will be remaking the look. I will be going for animated snake body and head, colorful lands to explore and I'm thinking of animated mice.... But I can scope creep so maybe no animated mice, but I have a top screen animation...

 

The main fun is can it look elegant and ppl say, hey that does look good.... Of course I am cheating and not limited to the speed of basic

Link to comment
Share on other sites

This is turning into a fascinating study of Atari 800 snake games! Thanks for that share, looks like a fun game.

 

You know, it's a shame my mac is at Apple being repaired. I did set up my Windows laptop today, so I can compile again, but I might as well face it, I just lost a day....

 

oh well, no matter. I may just see if I can get a list of all the snake games....maybe that'll be my area of expertise, lol :)

Link to comment
Share on other sites

 

Here is Atalan the snake. My first try at animation was going to be 1/2 character shifts.....not full character as was done in Nerm of Bemer or Atalan.

But still the snake will only actually glide along full character ruts, so to speak.

 

But now I'm thinking if I want to do the best snake game, i need completely smooth animation. The snake animation has to be top notch, to stand out.

Link to comment
Share on other sites

  • 2 weeks later...

 

I've written it about 90% in Assembly so far.

 

Here are some frustrating issues:

1. The linker config is not 'mastered', I have a setup that works. But I do not understand why I can't configure memory as others have done - blows up when I try it.

2. IOCB routines are not mastered. The main issue with this, is that if I turn on an IOCB channel at the beginning, my first screen goes to graphics 0. Makes no sense. So I have a new 'first screen' that is a blank screen that is taken away immediately and replaced with the welcome screen. I hate silly hacks like this - I need to figure out why I can't set it up - but, I have to put it aside for a bit.

3. Atari800MacX shows the colors I wanted (green), but Altirra has a blue top. Hmmm, wonder how it looks on a real Atari? I suspect we all know the answer.

4. Sound isn't exactly the same. Someone can tell me if I'm wrong, but i think it's because in basic bumping up two sound statements together, actually has a delay, one runs - then the second one. It isn't immediate, it's enough of a delay the ear picks up on it. I may just live with sound being different on this version. So 'no changes', on the first version, really means 'made it worse'? LOL...here is a version, only slightly worse - in assembler. What a sales pitch.

 

But, anyway, then I'll eventually have Frake...

 

To the good news - Eclipse works beautifully. I hit the little button, compiles and runs. That makes coding so much faster.

 

My son is doing room design, and he's got some rooms done. He also did the snakes. The original splash screen idea, I'm no longer favoring it, and will probably have an animated splash.

Edited by Dmitry
  • Like 3
Link to comment
Share on other sites

p.s. if it wasn't clear, I'm doing this in 2 steps

 

1. Recreate "Nerm of Bemer" - the idea here, is no changes. But it will be in Assembly. That's what today's video is showing, progress towards that intermediate goal.

 

2. Create "Frake of Bemer" - which uses the Assembly/Nerm code base, but has 1. animated welcome screen, 2. updated fonts, 3. more responsive controls, 4. two player option, 5. saving of high scores, 6. Fine movement/animated snake, and 7. meaningful doors, i.e. you really do explore Bemer in search of Frake's home.

Link to comment
Share on other sites

https://youtu.be/MYoELhlgeik

 

Now, I've re-organized the code so that I use no c includes at all. Everything is currently using only assembler or atari os calls.

But IOCB stuff is where I've introduced bugs, you can see the inverted characters to the left.

 

In fact there are now several bugs. First screen goes to graphics 0. To circumvent that, I have a hidden first screen. The welcome screen is actually the 2nd screen in the app.

Drawing the borders - a single border character gets zero'd out, once I call the routine to draw top area. There is no reason whatsoever for that to happen.

You can see in the video there are inverted characters on the left, roughly tracking the snakes vertical position.

And, every once in a while some random character pops into view on drawing the snake head.

 

All these glitches were introduced in using IOCB. However, I'll live with them for now. When I do the rewrite for Frake, I simply won't use IOCB...so the bugs will disappear.

Link to comment
Share on other sites

 

Snake can be any length, in video playing with 240 length.

The dashboard has an active lives indicator now. Actually scoring too, I just haven't put anything to score on, just yet.

 

This would go fast, except I'm constantly updating the code base and tools, so that 'eventually' it will go really fast.

 

But let's face it, assembler is a little tedious.

 

added "oops" screen for death, although not respecting the color choices for level yet....but you'll have to trust me it works, the video doesn't show it above - that's a problem with the video recording, not the game.

 

added the sound for movement. It sounds vaguely like the original, but as before, I plug in the same numbers, get different results. Still can't figure out why Altirra won't give me any love - the game looks fine in Atari800MacX....I will have to try on a real atari eventually.

Edited by Dmitry
  • Like 2
Link to comment
Share on other sites

Still very much in progress. It's 90% written in assembler, I thought that was supposed to be fast, why can't I get any speed out of it?!??!

Are you using built in OS routines for get/put char or screen output? These are known to be slow.

Link to comment
Share on other sites

Not any more...I got rid of them because they were buggy. I was having all kinds of weird things occur.

 

Now, this game is still slightly buggy - even what I've wrote so far, because I only very quickly put in a routine for advancing the snake, I'll have to rewrite that. And it becomes obvious that my attempt at random numbers is a fail. The worms have an obvious pattern. I thought I was seeding it based on user input. Like the user would have to start the game at different times or strike a mushroom at different times - but somehow the worms form a very clear, and quickly rotating pattern. Maybe I'll make that 16-bit for at least a larger run before repetition.

Link to comment
Share on other sites

Still very much in progress. It's 90% written in assembler, I thought that was supposed to be fast, why can't I get any speed out of it?!??!

What speed do you want? As I see it.. most of the time (like 75%) it just waits in delay loop. Btw. the control response is really bad.

Link to comment
Share on other sites

Agreed, MaPa. As did the original Nerm. However, although I am doing this in two steps, the first being reimplement original Nerm, then 2nd step, rewrite... I am going to give even the Nerm version new controls...probably by next build

 

Btw it doesn't delay after 5 mushrooms on same life

Link to comment
Share on other sites

Oh ps the original Nerm had simple for next delay loops. Then it polled the joystick on this irregular rhythm. I have already changed delay to be jiffy based and in a precursor to the control change, put stick polling into the vbi. However the responsiveness fix will come when movement responds to those polled changes.... Next build. One tiny improvement today is that jiffy based delays work on accelerated machines, whereas the original Nerm would just run fast

Link to comment
Share on other sites

Oh just saw your question. Well just sharing... But my experience is a little surprising to me. First I put in iocb routines and then pull them. Then I put in math based locate, then change to table lookup. Then somewhere I may pass a value in memory but then realize oh you can just leave that value on the accumulator. So you do all this, and then it's still at this level of speed...plz. Just go faster already

Link to comment
Share on other sites

Oh just saw your question. Well just sharing... But my experience is a little surprising to me. First I put in iocb routines and then pull them. Then I put in math based locate, then change to table lookup. Then somewhere I may pass a value in memory but then realize oh you can just leave that value on the accumulator. So you do all this, and then it's still at this level of speed...plz. Just go faster already

Link to comment
Share on other sites

Yeah man, It's a classic, and I am having fun with it but I will also do it justice. When I finish with "Nerm" it will be overall faster, more responsive, able to work without a basic cart, be dos launchable, and keep proper timing on accelerated machines. But still the same game...."Frake" will then add pm graphics, char set animations, display list changes, new dashboard and fonts....big changes this weekend :). Lol... I'm obsessed

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.

Guest
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.

Loading...
  • Recently Browsing   0 members

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