squishjs v1.0.10
Squish
This repo contains the game library used by homegames-core and homegames-web to efficiently serialize & deserialize game data.
squish/unsquish
This is just serialization/deserialization. Conceptually similar to protobufs, squish contains schema definitions shared by the server and client that lets us transmit game data as efficiently as possible.
const { squish, unsquish, Colors, GameNode, Shapes, ShapeUtils } = require('squish-1006');
const node = new GameNode.Shape({
shapeType: Shapes.POLYGON,
fill: Colors.COLORS.RED,
coordinates2d: ShapeUtils.rectangle(20, 20, 10, 10)
});
const squished = squish(node);
[
3, 0, 0, 53,
2, 43, 0, 11,
[Number: 0], [Number: 0], [Number: 32], [Number: 61],
[Number: 3], [Number: 90], [Number: 63], [Number: 44],
44, 0, 3, 53,
0, 7, 255, 0,
0, 255, 55, 0,
4, 3, 52, 0,
23, 20, 0, 20,
0, 30, 0, 20,
0, 30, 0, 30,
0, 20, 0, 30,
0, 20, 0, 20,
0
]
const unsquished = unsquish(squished);
Shape {
node: InternalGameNode {
id: [Number: 326103906344],
children: [],
color: undefined,
handleClick: undefined,
coordinates2d: [ [Array], [Array], [Array], [Array], [Array] ],
border: undefined,
fill: [ 255, 0, 0, 255 ],
text: undefined,
asset: undefined,
effects: null,
input: null,
listeners: Set(0) {},
playerIds: [],
subType: 3
},
id: [Number: 326103906344]
}
Game
The Game
class is a base class that allows external components (eg. a Squisher
) to listen to state updates. All games in Homegames extend the Game
class.
Versioning
Homegames core & web use multiple versions of squish. This allows games using older versions of squish to remain compatible with newer versions of Homegames.
17 days ago
21 days ago
23 days ago
2 months ago
4 months ago
8 months ago
9 months ago
9 months ago
11 months ago
9 months ago
9 months ago
11 months ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago