Screwball Scramble - Paul Collins

Do good things come in threes or twos? Frankly, in this compo I'll take what I can get. That being said, it is true to say that this is the second screwball scramble game and I rather like it.

Now, is it fair to compare this with the earlier entry by Rob? No. I say not, sir. They are both totally separate beasts. Where Rob's entry was a more whimsical and irreverent take on the classic 80's marble game, Paul's game has an attention to detail and level of quality that you'd expect from a developer in the 80s working for Ocean making the licensed game. Well almost. Sort of. 

So, by now, we are familiar with the original physical game. And Paul has gone to exceptional effort to reproduce the look of the game. Graphically, it is excellent. 

The style of play is also really rather good. It's a series of mini games each with a different feel and challenge. The game is hard, and if you die you go back to the start. At the moment I have the hang of most of the game, but have gotten my marble stuck on the invisible maze. I've been trying to free it for some time but it seems to be lost forever! 

Music and sound effects are present too. When you die the game plays a small tune. This is very good at first, but after 10 deaths or so it is an annoying pause while you wait to try again. However, its adds to the frustration of dying in a way that keeps me wanting to try again.

As you navigate the board, the sound effects increase in pitch, to create a sense of rising tension. This works very well in deed. There is also an in-game timer which supports the sound to further add to the tension. You want to push your luck and go for a speed run, but will probably do better if you just keep calm and take it slow.

The game is made in a compiled basic, and overall it works very well indeed. The controls are fluid. The mini games are thoughtful, the sound effects add drama and the ball is nicely animated. This is a very well thought through game that is quite fun.

Final thoughts

Hats off the Paul. He has created something really quite special. I know he spent a long time perfecting this, and it shows in every aspect of it's execution. Good things are worth waiting for. Well done!

Get it here.

PS, I have included  the develop's notes provided to me, I think you'll find them interesting:

Paul's Notes

Tools used, in order of appearance:

  • Microsoft Paint (lol) to draw the game playfield in black and white.
  • BMP2SCR, to convert that image (and the loading screen from the official game logo).
  • Art Studio 128, to colour those monochrome images.
  • Screen Compressor, to compress the loading screen.
  • Hisoft BASIC, to compile my BASIC program into fast machine code.
  • Turbo Compressor, to compress the compiled game code.

You can have a look at the BASIC source code at the end of the tape. It isn't commented at all so it may be rather a difficult read. The whole thing is done with INK 8; PAPER 8; OVER 1 printing, so that the ball doesn't erase any graphics or colours that it passes over.

There are actually 9 UDGs for the ball. This allows the 8x8 ball to move in steps of 4 pixels: it can be in a single character cell, or split between 2 cells horizontally, or 2 vertically, or 4 on both axes! The ball position is tracked with variables a,b,c,d: it's PRINT AT a,b and then c and d indicate whether to adjust the position by half a cell (4 pixels) i.e. use the alternate UDGs.

Once I had drawn the game board, I printed it out and worked out the locations of important features, like maze edges, the catapult bowl, etc. Then I decided how to operate the features (keystrokes etc.) and worked out the logic for that. It was really hard to get the blind maze working right!

In the BASIC, starting at line 20, you can see the main game loop:

  • GOSUB 1000 = draw the ball
  • GOSUB 1010 = update the timer
  • GOSUB 100+30*l = run the special logic for the current "level" (section of the board): this usually sets some values indicating which direction the ball should move next, and whether we have fallen off the board (ded=1) or finished the course (win=1) -- although some sections handle the moving and drawing on their own, to simplify things.
  • GOSUB 1000 = undraw the ball (i.e. draw it again with OVER 1)