• Hello Guest! We're hosting a challenge to welcome vintage Intel macs to the MLA during the month of July! See this thread for more information.
  • We've made some quality of life improvements to the Trading Post. More info here.

Generic Block Game - Happy #MARCHintosh 2026

Hi Everyone,

Just a little 'sneak preview' of some of the updates coming to Generic Block Game.

I've had amazing, and honestly quite surprising, positive feedback on my little Tetris clone 🤫 err, I mean Generic Block Game (all right reserved 🤪) , and a list of feature requests and bug reports (mostly the bug reports). 😜

While my first priority is obviously back country canoe camping with my kids on their summer holidays, in my "free time" I've been implementing the features I can and squishing the bugs.
Attached is a little sneak preview of the next release version. :)

COMING SOON!
Same block time...
Same block channel...
🦇😂

Aaron/DW
Dark Systems BBS
 

Attachments

  • aaa.png
    aaa.png
    168.5 KB · Views: 3
  • bbb.png
    bbb.png
    206.6 KB · Views: 3
  • ccc.png
    ccc.png
    180.8 KB · Views: 3
  • ddd.png
    ddd.png
    167.3 KB · Views: 3
I've had amazing, and honestly quite surprising, positive feedback on my little Tetris clone 🤫 err, I mean Generic Block Game (all right reserved 🤪) , and a list of feature requests and bug reports (mostly the bug reports). 😜
Why does the appearance of the blocks differ during the game play vs in the application icon or final score widow?
Maybe there should be an option to choose different styles of blocks? Or maybe there already is and I should try it before commenting? I'll try it in DingusPPC after it's done compiling.
 
Why does the appearance of the blocks differ during the game play vs in the application icon or final score widow?
Maybe there should be an option to choose different styles of blocks? Or maybe there already is and I should try it before commenting? I'll try it in DingusPPC after it's done compiling.
Good question! :)
The stats screen pulls the block shapes from CICN drawings in the resource fork.
Game play just uses standard QuickDraw recs and fills to try and keep the frame rate up.

The shapes are stored in a 4x4 struct

C:
/* Structs */
typedef struct {
    char map[4][4]; /* 4x4 bounding grid containing the active block */
    RGBColor color; /* 48-bit Classic QuickDraw RGB colour specifier */
    int type;
} Shape;

and the shapes are defined like this, including colours and a few other flags for specific functions:
C:
/* Defines the actual mapping and colours for the standard block shapes (I, J, L, O, S, T, Z) */
void InitShapes(void) {
    int i, x, y;
    for(i=0; i<7; i++) for(y=0; y<4; y++) for(x=0; x<4; x++) gShapes[i].map[y][x] = 0;
    
    /* Block structures are mapped with QuickDraw 48-bit colour values */
    /* I */ gShapes[0].type = 0; gShapes[0].map[1][0]=1; gShapes[0].map[1][1]=1; gShapes[0].map[1][2]=1; gShapes[0].map[1][3]=1; gShapes[0].color.red=0x0000; gShapes[0].color.green=0xFFFF; gShapes[0].color.blue=0xFFFF;
    /* J */ gShapes[1].type = 1;gShapes[1].map[0][0]=1; gShapes[1].map[1][0]=1; gShapes[1].map[1][1]=1; gShapes[1].map[1][2]=1; gShapes[1].color.red=0x0000; gShapes[1].color.green=0x0000; gShapes[1].color.blue=0xFFFF;
    /* L */ gShapes[2].type = 2;gShapes[2].map[0][2]=1; gShapes[2].map[1][0]=1; gShapes[2].map[1][1]=1; gShapes[2].map[1][2]=1; gShapes[2].color.red=0xFFFF; gShapes[2].color.green=0x8000; gShapes[2].color.blue=0x0000;
    /* O */ gShapes[3].type = 3;gShapes[3].map[0][1]=1; gShapes[3].map[0][2]=1; gShapes[3].map[1][1]=1; gShapes[3].map[1][2]=1; gShapes[3].color.red=0xFFFF; gShapes[3].color.green=0xFFFF; gShapes[3].color.blue=0x0000;
    /* S */ gShapes[4].type = 4;gShapes[4].map[0][1]=1; gShapes[4].map[0][2]=1; gShapes[4].map[1][0]=1; gShapes[4].map[1][1]=1; gShapes[4].color.red=0x0000; gShapes[4].color.green=0xFFFF; gShapes[4].color.blue=0x0000;
    /* T */ gShapes[5].type = 5;gShapes[5].map[0][1]=1; gShapes[5].map[1][0]=1; gShapes[5].map[1][1]=1; gShapes[5].map[1][2]=1; gShapes[5].color.red=0x8000; gShapes[5].color.green=0x0000; gShapes[5].color.blue=0xFFFF;
    /* Z */ gShapes[6].type = 6;gShapes[6].map[0][0]=1; gShapes[6].map[0][1]=1; gShapes[6].map[1][1]=1; gShapes[6].map[1][2]=1; gShapes[6].color.red=0xFFFF; gShapes[6].color.green=0x0000; gShapes[6].color.blue=0x0000;
}

I just thought the CICN looked nice. lol 😋

Might be fun to have a 'block theme' you can choose from though... interesting idea...
Standard
Halloween theme
Starwars theme
Fancy pants theme
1Bit theme
etc..

Going to have to think about this.
Thanks! :)
 
Back
Top