Skip to content

Commit 25654c0

Browse files
committed
Added Squall info.
1 parent a638fe1 commit 25654c0

File tree

12 files changed

+75
-95
lines changed

12 files changed

+75
-95
lines changed

content/components/_index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
title: "Components"
33
menu:
4-
main:
5-
weight: 7
4+
main:
5+
weight: 7
66
---
77

88
The Worldforge project is made up of many different components, which initially can be confusing. Creating a virtual
@@ -19,7 +19,7 @@ about [Ember the client](ember) and [Cyphesis the server](cyphesis).
1919

2020
If you're more patient you perhaps rather want to also read up on the [Atlas](atlas) protocol, or the [Eris](eris)
2121
client library, or the [Mercator](mercator) terrain system. You might be interested in the [Varconf](varconf)
22-
configuration system, the [WFMath](wfmath) math library or the [Metaserver](metaserver). Keep in mind that all code is
23-
available for all of our systems, for you to both inspect and alter.
22+
configuration system, the [WFMath](wfmath) math library, the [Metaserver](metaserver) or the [Squall](squall) assets
23+
sync library. Keep in mind that all code is available for all of our systems, for you to both inspect and alter.
2424

2525
You also want to take a look of the default [worlds](worlds) that we provide.

content/components/atlas/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ implementation independent, but so far there has been no need for alternative im
1515
the protocol specification can be found at the [wiki](http://wiki.worldforge.org/wiki/Atlas_Protocol).
1616

1717
Source
18-
The source for Atlas-C++ is available at [Github](https://github.com/worldforge/atlas-cpp).
18+
The source for Atlas-C++ is available at [Github](https://github.com/worldforge/worldforge/tree/master/libs/atlas).

content/components/cyphesis/_index.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,12 @@ Some of the features provided are:
2121

2222
### Download
2323

24-
We provide pre-build binaries for Linux.
25-
26-
Either as a [Snap package](https://snapcraft.io/cyphesis)
27-
Or as [native packages](https://software.opensuse.org//download.html?project=games%3AWorldForge&package=cyphesis) for
28-
multiple distros
24+
We provide pre-build binaries for Linux as a [Snap package](https://snapcraft.io/cyphesis)
2925
These packages are all automatically built from the latest source.
3026

3127
### Building
3228

33-
For building see the instructions found in the [source](https://github.com/worldforge/cyphesis).
29+
For building see the instructions found in the [source](https://github.com/worldforge/worldforge/tree/master/apps/cyphesis).
3430

3531
### Running locally
3632

content/components/ember/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ We provide automatically [built binaries](/downloads), using the latest source.
2929

3030
### Development and more info
3131

32-
If you're interested in developing Ember, the source is available on [Github](https://github.com/worldforge/ember/).
32+
If you're interested in developing Ember, the source is available on [Github](https://github.com/worldforge/worldforge/tree/master/apps/ember).
3333
There's also a lot more information on the [wiki](http://wiki.worldforge.org/wiki/Ember).

content/components/eris/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@ important in-game (IG) operations such as entity creation, movement and updates.
1919

2020
### Source
2121

22-
The source code for Eris can be found on [Github](https://github.com/worldforge/eris).
22+
The source code for Eris can be found on [Github](https://github.com/worldforge/worldforge/tree/master/libs/eris).

content/components/mercator/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ crater could be applied.
2121

2222
### Source
2323

24-
The source code for Mercator can be found on [Github](https://github.com/worldforge/mercator).
24+
The source code for Mercator can be found on [Github](https://github.com/worldforge/worldforge/tree/master/libs/mercator).
2525

2626
### Dependencies
2727
Mercator depends on WFMath.

content/components/squall/_index.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
title: "Squall"
3+
menu:
4+
main:
5+
weight: 3
6+
parent: "Components"
7+
8+
---
9+
10+
Squall is the component which makes it possible to sync media from the server to the client.
11+
12+
### Requirements
13+
14+
Since we had a couple of extra requirements we didn't want to just use basic file transfers for syncing media. The main
15+
requirements we had were:
16+
17+
* Allow the client to connect to different servers, each with slightly different media. The idea here is that we provide
18+
base media, and then will let servers extend this with their own media. Thus we envision that a lot of the media will
19+
be similar. So for example, a client would connect to two different servers, which share 90% of common assets. These
20+
common assets wouldn't need to be re-downloaded.
21+
* Have a built in mechanism for when assets are updated. This ties in to the vision we have about a development loop
22+
where the world is created inside a running server, without the need to restart the server. To accomplish this we need
23+
a good way to inform the client about changed assets. Whenever something changes the client should download the
24+
changed asset only.
25+
* Use simple and tested existing file transfer mechanisms. Such as HTTP. We want to make it simple to expose assets
26+
using a basic file server.
27+
28+
### Design
29+
30+
All of these requirements led to the design of Squall. It borrows ideas from both Git and BitTorrent, in the sense that
31+
all assets are represented by hashes of their content. This also goes for directories.
32+
33+
An effect of this is that a client only needs to download any hashes that it's missing. Thus fulfilling requirement #1.
34+
35+
Since directories also are computed using hashes of their content, any change to an assets will resonate to all its
36+
parent directories and in the end to the root directory. Thus every change will result in a new hash for the root, which
37+
can be commnuicated to the client. Thus fulfilling requirement #2.
38+
39+
And since we only need to expose data attached to hashes it's easy to serve data using a standard file server. Thus
40+
fulfilling requirement #3.
41+
42+
### Stand alone library
43+
44+
The Squall library is licensed under the MIT license, with the hope that it might find use outside of Worldforge. While
45+
it's contained in the monorepo it's also possible to build standalone.
46+
47+
### Source
48+
49+
The source for Squall is available at [Github](https://github.com/worldforge/worldforge/tree/master/libs/squall).

content/components/varconf/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ recommended that developers use Atlas to store complex data.
2020

2121
### Source
2222

23-
The source code for Varconf can be found on [Github](https://github.com/worldforge/varconf).
23+
The source code for Varconf can be found on [Github](https://github.com/worldforge/worldforge/tree/master/libs/varconf).

content/components/wfmath/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ the basic math objects that are used to build these shapes (points, vectors, mat
1212

1313
### Source
1414

15-
The source code for WFMath can be found on [Github](https://github.com/worldforge/wfmath).
15+
The source code for WFMath can be found on [Github](https://github.com/worldforge/worldforge/tree/master/libs/wfmath).
1616

1717
### Geometries
1818

content/develop/_index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@ Everything we do is 100% Free Software. All of our code is available, as is all
1515

1616
#### Getting involved with the community
1717

18-
If you want to get involved with the project you absolutely have to subscribe to the mailing lists. Most of the
18+
If you want to get involved with the project you absolutely have join the chat on Gitter. Most of the
1919
day-to-day communication happens through the [Gitter](https://gitter.im/Worldforge/Lobby) channel, and that also where
2020
you most easily can get in contact with other developers. This site also has a helpful "Open Chat" feature to the right.
2121

2222
In general you should look through how you can interact with the [community](/community).
2323

2424
#### Diving into the code
2525

26-
If you're a coder and want to help out with coding you should start by getting all code set up using
27-
the [Hammer tool](/develop/build-source). We provide a lot of different libraries, and getting everything to compile can
28-
often be tricky. The Hammer tool will help you getting all of this sorted.
26+
If you're a coder and want to help out with coding you should start by getting all code set up by cloning and building
27+
[the code](https://github.com/worldforge/worldforge). We provide all of the code needed both for server and client in
28+
a monorepo.
2929

3030
Once that's done you probably want to look closer at how everything [fits together](/develop/technical-overview). You
3131
will want to look closer at the various [components](/components). Look through the code

0 commit comments

Comments
 (0)