Point und Click Adventures auf dem Atari 8bit

8bit Dude arbeitet an Programmbibliotheken, die es ermöglichen, Point & Click Adventures zu erstellen.

8bit-Goblin ist eine Tech-Demo im Point-and-Click-Stil, die in Version 0.3.3 eingeführt wurde. Der Code zeigt, wie man Szenenmanagement implementiert, einschließlich: interaktive Objekte, wählbare Gegenstände, Szenenanimation…

Update in Version 0.5: Die Skripting-Engine funktioniert jetzt auch mit Textdateien, wie z.B. unten im Beispiel. Link zur Entwicklerseite:

Codebeispiel:

# Definitions (WANRING: use same values for ALL scene files and inside definitions.h)
#define MAX_POLYGON  19
#define MAX_CHUNK     5
#define MAX_INTERACT  7
#define MAX_TRIGGER   5
#define MAX_MODIFIER  2
#define MAX_PATH      6

# Chunks (just as memo)
0: Notable
1: Old Men
2: Bottle
3: Sausage
4: Switch

# Animation Frames (just as memo)
2: Idle Left
8: Idle Right
14: Surprised

# Boundary Polygon (see MAX_POLYGON)
# Player can only move inside the area defined by this polygon
X:   0;  53; 120; 138;  65;   0;  0; 32; 180; 270; 282; 251; 232; 210; 229; 320; 320;   0;   0
Y: 138; 162; 169; 144; 138; 107; 99; 95;  78; 102; 120; 137; 124; 143; 168; 116; 180; 180; 138

# Interacts (see MAX_INTERACT) 
# Interactive elements can have the following flags: DISABLED, ACTIVE, PICKABLE.
# When the mouse is clicked within the element area, the player moves to the specified coordinates and the chunks/path/question/answer are shown. 
#    Label       Click Area    Move To    Flags   	Chunks   Frame  Path      					    Question     									    Answer					         
#                X    Y    R   TX   TY			  CHK   BGG
I: "Notable";   55;  81;  15;  90;  93;  ACTIVE;  255;  255;    2;  255;  "Dear sir, you look powerful.\nPlease help me with my quest?"; "Go away, I am busy!"
I: "Old Men";  222;  66;  15; 194;  86;  ACTIVE;    1;    1;    8;  255;  "Hey villagers, do you know\nthe house of lord Tazaar?"; 	  	 "We are hungry!! But the\nnotable keeps all the food."
I: "Bottle";   260;  70;   7; 240;  94; PICKABLE;   2;  255;    8;  255;  ""; 														  	 ""
I: "Flower";   230; 134;  10; 208; 141; PICKABLE; 255;  255;    8;  255;  ""; 														  	 ""
I: "Sausage";   69;  60;   7;  94;  93;  ACTIVE;    0;    0;    2;    0;  ""; 														  	 "Hey, don't touch that!"
I: "Switch";    32;  77;   5;  18; 101;  ACTIVE;    4;    4;    8;    2;  ""; 														  	 ""							    
I: "Fountain"; 300; 170;  30; 300; 170; DISABLED; 255;  255;    8;  255;  ""; 														  	 ""

# Triggers (see MAX_TRIGGER)
# When the specified item is given to the target, the modifier is triggered
#    Item	    Target   Modifier CHK   BGG   							Answer
T: "Bottle";  "Notable";     0;   255;  255;  "Just what I need in this heat!\nWould you like some sausage?"	
T: "Bottle";  "Old Men";   255;	    1;    1;  "We are not thirsty...\n...We are hungry!!"
T: "Flower";  "Notable";   255;	  255;  255;  "No, thank you..."	
T: "Flower";  "Old Men";   255;	    1;    1;  "No, thank you..."
T: "Sausage"; "Old Men"; 	 1;	    1;    1;  "Thank you kind sir!\nGo right, to the fountain."

# Modifiers (see MAX_MODIFIER) 
# This interact gets updated with new parameters
#   Interact      Flags    CHK   BCG   Path   		     Question   			 		           Answer
M: "Sausage";   PICKABLE;    3;  255;	255;  "These old men look hungry...";  ""
M: "Fountain";   ACTIVE;   255;  255;	255;  "";		   					   "Well done little goblin!\nThe tech-demo ends here!" 

# Paths (see MAX_PATH)
# Series of player animation paths (255 terminates a series)
#	 X1   Y1  Speed Frame Next Path	
P: 	161;  97;  24;   14;	   1 
P: 	243; 116;  16;   14;     255 
P: 	 18;  72;  16;   14;	   3 
P: 	 18;  64;   4;   14;	   4 
P: 	 18;  72;   4;   14;	   5 
P: 	 18; 101;  12;   14;     255