Still Early in Development! The current state of things are "Pre-Alpha", but development is nearing a point where it can enter an alpha release where it should be 'fully' functional to it's purpose!
The Solace Toolkit (TK) for Game Development offers a Data-Oriented Framework to build and design games in your engine of choice.
* While this is a Data Framework that can be implemented with any game engine - SolaceTK provides an implementation with Unity Engine
and makes use of the WebGL builds to create a comprehensive 'Test Harness' to design and test SolaceTK Data in the engine without build times or installing the engine, the entire development experience and lifecycle can take place in a web-browser!
** Version 1 currently only supports Animation
importing using Aseprite .ase
and .aseprite
files - the API uses Aseprite on the backend to create Sprite Sheets, Preview Gifs, and initial Animation Frame Data from Aseprite JSON. Version 2 will fully support importing pre-configured Sprite Sheets as .png
as well as other formats.
This repository contains the Angular 15
User Interface of SolaceTK - building the Application for Deployment only requires Node.js
and NPM
:
# Install all the dependencies
npm install
# Generate the build of the application
npm run build
The compiled artifact is a static website that can be delivered via any desired HTTP Web Server.
This repo contains a Dockerfile
that builds SolaceTK as a container using NGINX
as the default web tier - httpd, IIS, etc. should all work fine should you run this application build through a Source-to-Image
/ BuildPacks
process!
The User Interface uses Angular
, Angular Materials
, ngx-markdown
as the primary Framework, UI Library, and .md Markdown renderer - to get started with development, you must prep your environment with the following pre-requisites: (more details can be found using the Angular: Local Environment Setup
guide)
- Install Node.js LTS or greater
- Install the Angular CLI (ng) globally:
- Windows Users -> Allow RemoteSigned script execution in PowerShell:
PS: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
npm install -g @angular/cli
- Open the
solace-toolkit
git repo in your editor of choice and use theng CLI
commands to work with the application:
- Perform an npm install in the source code directory
npm install
- Generate new Angular
Components
or other constructs (component.ts, component.html, component.css, etc.)ng generate
can be shortened tong g
ng g component <component-name>
- Run the Angular application using the ng development server:
ng serve
ng serve
will serve the application usinghttp://localhost:4200/
Use OpenShift DevSpaces
or Eclipse Che
(or another service supporting DevFile spec) to start working on the application!
https://<devspaces-url>#https://github.com/JRBowman/solace-toolkit.git
This Toolkit uses a Data-Oriented Framework self-titled Soldof (Solace Data-Oriented Framework) - It is comprised of a series of Interfaces and Data Contracts which define Data Models that encompass the general needs of the game system:
Actor Controllers that have Behavior Systems which define Branches that select States by Conditions - providing Animation, Action/Movement, and State Management.
Each of these components of the game system are captured as Serialized Data Models - The Models collectively define Objects and Behaviors that can be applied and implemented against Objects in the Game Engine of Choice, using the Data Contracts and Interfaces Defined by the Models
Review the Wiki to learn more about the Data-Oriented Framework and how to use this Toolkit!
- TODO: add the links to the Wiki .md files.
Variable Substitution, Data Operations and Methods, and more. This section explains the existing supported Data Operations within the Toolkit.
$(var)
-> takes 1 variable name argument and substitutes the token with the variable value.
randset(x,...N)
-> takes arguments delimited by ,
- randSet
randomnly chooses an item from the provided Set and uses that value.
rand(min,max)
-> takes 2 arguments for Min and Max values to randomly select between (standard rand function).
Eventing
in SolaceTK, being data-only in design, defines the details of an action that can be executed by its owner.
-
Events
are defined byConditions
,Owner Data Changes
, andMessages
. -
Conditions
are sets of KeyValuePairs that correspond with StateData of the owner. -
Owner Data Changes
are sets of KeyValuePairs that make changes to the owner's StateData