User Tools

Site Tools


developmenteras:bhlegacy

This is an old revision of the document!


This is an article of one Brick Hill Development era. If you want to take a look on other development era, please refer to Development Eras article.
FIXME - Now the article is better. Needs more information on Released features.

Brick Hill Legacy is a mainline client originally released in October 2017 by brick-luke as a result of the whole codebase rewrite. Alongside with the client release, the mainline release also had its new Workshop (updates has ended in 2018) with the Host executables (was later replaced with Node Hill in 2020), all written in GameMaker 8.1 (late legacy clients were updated via GameMaker 8.2 Project1)2) ).

Released Features

  • Optimized Set loading (2021 (middle?) and later)
  • Brick Physics (Late 2017 & 2021 and later)
  • Health bar (2019 and later)
  • Projectiles (2019? and later)

Unused or removed features

Figures

  • (Late 2017, removed around 2018-2019)

Figures are simplified Roblox packages, originally meant to change your avatar fundamentally. The first and the last figure “Patient Zero” was released in the 2017 Brick Hill Halloween event. It is unknown about its implementation in the Brick Hill Legacy client.

Fig. 1: "Patient Zero" Figure. 2019 Site render.

Scripts

  • (GML3) compatibility has been removed with the release of Node Hill)

Scripting as a feature became a part of Brick Hill ever since Role Block. Scripting support for GML has been abandoned (and got changed with JavaScript) due to technical difficulties supporting it on Node Hill.

Brick Stickers

Like in Roblox, Brick Stickers4) were supposed to work as Decals. Despite the obj_brick having such options with the possibility to assign the images via Brick Parameters the game's code will never get to draw the stickers, due to such code being cut off in draw_brick script of Legacy Workshop. Possibly removed due to technical difficulties.

Set structure changes

Before Brick Hill Legacy

Before the October 2017 Release, Brick Hill has used the pre-legacy format of defining sets, for example:

[environment]
ambient=ffffff
baseplate=100
ground=19d900
[bricks]
" brick1=" 0 0 0 100 100 0 2392627 1 1
" brick2=" 6 -2 0 1 1 4 0 1 1
" brick3=" 1 -2 4 12 3 0 7757887 1 1

Where “ brickX=” is for brick names, 0 0 0 are for X,Y,Z position, 100 100 0 are for X,Y,Z scale, 2392627 is GameMaker raw color, 1 1 are for transparency and shape. Additionally, you may also add the Brick Model as an additional parameter which can be read by load_bricks script and can be even drawn in the pre-Legacy Workshop, though it requires URL patching because of Brick Hill Beta site (as of first11 ) API connection.

After the rewrite

As it has been said earlier, clients, hosts and workshops (Legacy workshop still accepts the pre-legacy format in a form of convertation) made after October 2017 are accepting a new Set structure, for example (double slash comments must be removed):

B R I C K  W O R K S H O P  V0.2.0.0 // Workshop version
// Environment //
0 0 0 // Ambient color
0.14 0.51 0.20 1 // first three numbers are for Ground Color, the "1" at the end is for Ground transparency
0.49 0.70 0.90 // Sky color
100 // Baseplate size
400 // Sun intensity
// Bricks //
-12 3 -6 4 4 4 0.87 0 0.05 1 //X,Y,Z position; X,Y,Z scale; R,G,B color; Brick transparency
	+NAME brick0 // Brick Attributes
	+SCRIPT obj_item.Model = '566eb526'; // GML scripts were abandoned in favor of Node Hill release
	+SCRIPT 
	+SCRIPT s = define("onClick");
	+SCRIPT s.script = '
	+SCRIPT 	var user,sword_length,sword_damage;
	+SCRIPT 	user = arg[0];
	+SCRIPT 	if user.Arm == user.tool[0] {
	+SCRIPT 		sword_length = 4;
	+SCRIPT 		sword_damage = 10;
	+SCRIPT 		with obj_client {
	+SCRIPT 			if(id != user) {
	+SCRIPT 				if(alive) {
	+SCRIPT 					if power(xPos-user.xPos,2)+power(yPos-user.yPos,2)+power((zPos+4*zScale)-(user.zPos+2.5*zScale),2) <= power(sword_length,2) {
	+SCRIPT 						playerAddDamage(id,sword_damage);
	+SCRIPT 						if playerGetHealth(id) <= 0 {
	+SCRIPT 							playerKill(id);
	+SCRIPT 							playerSetHealth(id,100);
	+SCRIPT 							messageAll(user.name+" killed "+name);
	+SCRIPT 						}
	+SCRIPT 					}
	+SCRIPT 				}
	+SCRIPT 			}
	+SCRIPT 		}
	+SCRIPT 	}
	+SCRIPT ';
	+ROT 25 // Z rotation (SandPile accepts 3-axis rotation and Legacy Z rotation)
	+SHAPE slope //Brick Shapes: slope, plate, wedge, spawnpoint, arch, corner, corner_inv, dome, bars, flag, pole, round, cylinder, round_slope, vent
	+NSTICKER 1 // -
	+ESTICKER 2 // |_ refer to Removed Features 
	+SSTICKER 3 // |
	+WSTICKER 4 // -
	+MODEL 412332 // Requires connection to Brick Hill API to work
	+LIGHT 100 100 100 25 // Light: 100 100 100 - R,G,B Colors; 25 - Range
	+COLOR 100 100 100 // Self-explanatory: R,G,B colors.
	+NOCOLLISION // Disables brick collision

>TEAM brickrot // Creates a new team "brickrot" with red color.
>SLOT Sword // Creates a new item slot

Notes

1)
Latest Brick Hill Legacy source code, was leaked unofficially as new_legacy.
2)
GameMaker 8.2 is a GameMaker 8.1 modification project. Though this may be referred as a game engine, it's an ''unofficial, unendorsed, open-source improvement patch for Game Maker 8.1''.
3)
GameMaker Language.
4)
NSTICKER, ESTICKER, SSTICKER and WSTICKER. Defined in new_brick script as brick.north, brick.east, brick.south and brick.west, respectively.
developmenteras/bhlegacy.1762988005.txt.gz · Last modified: by blamedenny