Quick Start
Get started with Basilisk in just a few minutes.
Overview
Basilisk is a cloud-based Content Management Platform for Live Service applications. The workflow consists of three main steps:
Define
Create a Basilisk Definition using BDL (Basilisk Definition Language) to define your data structures
Build
Create Data Builds from Google Spreadsheets using your definitions
Deploy
Publish Data Builds to Environments where your application can fetch them
Creating an Environment: Production
Environments are deployment targets where your Data Builds are published. To create a Production environment:
- Navigate to Environments in the Web Console
- Click "Create New Environment"
- Name it "Production" (or your preferred name)
- Configure safety features like forced diff review for production environments
Creating a Data Source
Data Sources are Google Spreadsheets that contain your content data. To set up a Data Source:
- Set Google Platform Credentials in Basilisk Web Console
- Create a Google Spreadsheet with your data
- Invite the Basilisk Worker service account (gserviceaccount) to the spreadsheet with read access
- Fill the spreadsheet with your data following the structure defined in your Basilisk Definition
Creating a Basilisk Definition
A Basilisk Definition describes the structure of your data using BDL. It defines Entities, Variables, Indexes, and Data Bundles.
| Description | Types of Examples | Real Examples | |
|---|---|---|---|
Entities | Main data structures that define collections of variables | Character, Weapon, Item, Quest | Hello, Character, Weapon |
Variables | Properties of entities with specific data types | id, name, level, health, damage | id, value, name, damage |
Indexes | Define how to look up entities in datasets | CharacterIndex, WeaponIndex | hello (index), CharacterIndex |
Data Bundles | Group entities into deployable units | Characters, Weapons, Items | client (databundle), Characters |
Your First Definition
Edit the spreadsheet and click Build. This prototype simulates Basilisk by validating the required columns (id, value) and producing a deterministic JSON output.
| A | B | |
|---|---|---|
| 1 | ||
| 2 |
entity Hello {
id: string,
value: string
}
index {
hello: {
sheet: "hello",
entity: Hello
}
}
databundle client {
hello: hello
}Creating a new Basilisk Data Build
To create a Data Build:
- Select the created environment
- Select the data source (Google Spreadsheet)
- Select the data definition
- Create a successful build
Fetching Data Builds in Binary or JSON Format
Once a data build is published to an environment, you can fetch it using various methods. Here are examples for different languages:
import axios from 'axios';
// Fetch binary data build
const response = await axios.get('https://your-environment-endpoint/data-build', {
responseType: 'arraybuffer',
headers: {
'Accept': 'application/octet-stream'
}
});
// Deserialize using Protocol Buffers
const dataBuild = YourProtobufClass.decode(new Uint8Array(response.data));Next Steps
Now that you understand the basics, explore these resources:
