Skip to content

Commit

Permalink
Start working on actual documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Starveldt committed Aug 4, 2024
1 parent 52e524e commit 0b74db7
Show file tree
Hide file tree
Showing 14 changed files with 124 additions and 7 deletions.
Binary file added .moonwave/static/introduction-explorer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .moonwave/static/introduction-model.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .moonwave/static/introduction-store.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Weaver

Weaver is a lightweight game framework meant for simple yet seamless game networking and synchronization. Weaver adheres by a single-script architecture, with a setup for the creation of services and controllers, allowing quick, painless communication from script-to-script, without the need of BindableEvents/Functions.
Weaver is a fast, lightweight game framework meant for simple yet seamless game networking and synchronization. Weaver adheres by a single-script architecture, with a setup for the creation of services and controllers, allowing quick and painless communication from script-to-script without the need of BindableEvents/Functions.

This was originally developed as a replacement for [Knit](https://github.com/Sleitnick/Knit), but without the use of external libraries; there are no promises or extra packages to install, as all modules are packaged internally and created for Weaver.

All code is up-to-date with the latest technology in Roblox, including Luau typechecking.
All code is written in Luau and up-to-date with the latest technology in Roblox, including typechecking.

# Documentation

Weaver's documentation, examples, and basic usage can be found [here](https://paracosm-daemon.github.io/Weaver/).
More information about Weaver and its usage can be found in the [documentation](https://paracosm-daemon.github.io/Weaver/).

# Credits

This repository's tools are managed using [Rokit](https://github.com/rojo-rbx/rokit), a next-generation toolchain manager.

The tool [Lune](https://github.com/lune-org/lune) is used for publishing the module to the Roblox marketplace.
[Lune](https://github.com/lune-org/lune) is used for publishing the module to the Roblox marketplace.

All documentation was made using [Moonwave](https://github.com/evaera/moonwave).
All documentation was created using [Moonwave](https://github.com/evaera/moonwave).
4 changes: 4 additions & 0 deletions docs/extras/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"label": "Extras",
"position": 3
}
7 changes: 7 additions & 0 deletions docs/extras/execution-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
sidebar_position: 1
---

# Execution Model

parted
7 changes: 7 additions & 0 deletions docs/extras/migrate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
sidebar_position: 2
---

# Migration from Knit

parted
25 changes: 25 additions & 0 deletions docs/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
sidebar_position: 1
---

# Introduction

Weaver is a fast, lightweight game framework meant for simple yet seamless communication between the server and the client. Weaver adheres by a single-script architecture, with a setup for the creation of services and controllers, allowing quick and painless communication from script-to-script without the need of BindableEvents/Functions.

Weaver is based off of the archived framework [Knit](https://github.com/Sleitnick/Knit). The structure that Weaver has is identical to Knit, making migration a simple process.

If you feel like Weaver is the framework for you, read about [getting started here](tutorial/getting-started).

## Why Weaver?

### Reliability

Since Weaver's structure is built around a single-script architecture, your code is guaranteed to run in an order you can easily manage. [WeaverServices](/api/WeaverServer#WeaverService) and [WeaverControllers](/api/WeaverClient#WeaverController) will always be ready on WeaverInit, and fully initialized on WeaverStart. You can also read more about [Weaver's execution model](extras/execution-model).

### Infrastructure

Weaver allows for a simpler way of networking between the server and client. You don't need to add [RemoteEvents](https://create.roblox.com/docs/reference/engine/classes/RemoteEvent) or [RemoteFunctions](https://create.roblox.com/docs/reference/engine/classes/RemoteFunction) to your game's hierarchy at all; Weaver automatically bridges the gap between the server and the client.

### Accessibility

Weaver is greatly accessible - from grabbing the module via Roblox's Creator Store to using it as a package in Wally, installation is straightforward and made to fit your workflow. To see the ways to acquire Weaver, read about the [installation methods available](tutorial/getting-started#installation).
4 changes: 4 additions & 0 deletions docs/tutorial/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"label": "Tutorial",
"position": 2
}
5 changes: 5 additions & 0 deletions docs/tutorial/first-project.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sidebar_position: 2
---

# Example Project
31 changes: 31 additions & 0 deletions docs/tutorial/getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
sidebar_position: 1
---

# Getting Started

As of right now, Weaver is currently available on the Roblox Creator Store, and it is useable as a Wally package. Below are the current ways to install Weaver and get it working in your game.

## Installation

### Method 1 - Wally

Since Weaver is available as a package for [Wally](https://github.com/UpliftGames/wally), the package manager, you are able to install it by adding this beneath `[dependencies]` in your `wally.toml` file:

`Weaver = "paracosm-daemon/weaver@^0.0.1"`

### Method 2 - Roblox Creator Store

Weaver is also available as a module on the Roblox Creator Store. Installing it is relatively simple.

First, [get the model](https://create.roblox.com/store/asset/18772004646/Weaver). To add it to your inventory, you simply click the "Get Model" button.

![Weaver's page on the Roblox Creator Store](/introduction-store.png)

Once you've acquired the model, you're free to add it into Studio. You should see it within your inventory:

![Weaver in Roblox Studio](/introduction-model.png)

Finally, insert the model into your game, and then slot it somewhere you can easily access. Usually, it may go in a folder like `ReplicatedStorage/Shared/Weaver`, but it's up to you.

![Weaver in the Explorer tree](/introduction-explorer.png)
34 changes: 34 additions & 0 deletions moonwave.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
gitSourceBranch = "main"

[[classOrder]]
section = "Core"
classes = ["WeaverServer", "WeaverClient"]

[[classOrder]]
section = "Networking"
classes = ["RemoteSignal", "Signal", "SignalConnection"]

[home]
enabled = true
includeReadme = false

[docusaurus]
url = "https://paracosm-daemon.github.io"
baseUrl = "/Weaver"
tagline = "A fast, lightweight game framework for Roblox"

[footer]
style = "dark"
copyright = "Copyright © 2024 Oliver S. Built with Moonwave and Docusaurus."

[[home.features]]
title = "Simple Structure"
description = "Since Weaver is built around a single-script architecture, communicating between multiple modules is seamless - ditto for communication between the server and the client."

[[home.features]]
title = "Painless Networking"
description = "Due to the nature of Weaver, all networking is made simple, as services and controllers natively support Weaver's RemoteSignal implementation; you don't need to use any Instances."

[[home.features]]
title = "Effortless Integration"
description = "Weaver doesn't take much effort to install. Once it's added into your Roblox project, there is little setup required to get it working as intended and integrated with your codebase."
2 changes: 1 addition & 1 deletion selene.toml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
std = "roblox+luau"
std = "roblox+luau"
2 changes: 1 addition & 1 deletion wally.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ registry = "https://github.com/UpliftGames/wally-index"
realm = "shared"
include = ["src"]

[dependencies]
[dependencies]

0 comments on commit 0b74db7

Please sign in to comment.