Skip to content

The Solace Toolkit (TK) for Game Development offers a Data-Oriented Framework to build and design games in your engine of choice.

Notifications You must be signed in to change notification settings

JRBowman/solace-toolkit

Repository files navigation

Solace Toolkit (TK) for Game Development

devspaces solace-toolkit solace-toolkit solacetk solacetk

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.

Build / Deployment Instructions

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!

Development Instructions

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)

  1. Install Node.js LTS or greater
  2. 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
  1. Open the solace-toolkit git repo in your editor of choice and use the ng 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 to ng g
ng g component <component-name>
  • Run the Angular application using the ng development server:
ng serve
  • ng serve will serve the application using http://localhost:4200/

Develop with DevFile

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

Data-Oriented Framework

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

Wiki

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.

Data Operations and Processing

Variable Substitution, Data Operations and Methods, and more. This section explains the existing supported Data Operations within the Toolkit.

Variable KeyPair Operations

Condition KeyPair Operations

Variable Substitution

$(var) -> takes 1 variable name argument and substitutes the token with the variable value.

RandSet Function

randset(x,...N) -> takes arguments delimited by , - randSet randomnly chooses an item from the provided Set and uses that value.

Rand Function

rand(min,max) -> takes 2 arguments for Min and Max values to randomly select between (standard rand function).

Behaviors -

States -

Animations -

Events and Messages - image image

Eventing in SolaceTK, being data-only in design, defines the details of an action that can be executed by its owner.

  • Events are defined by Conditions, Owner Data Changes, and Messages.

    • Messages are defined with Recipients of a RecipientType and Recipient Data Changes for each targetted.

      image image

    • Messages are sent to Recipients via a Core Message Queue and processed by each Recipient's internal Message Queue.

      • These features are part of the specification of implementation against the data
  • 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

Environment Design - image image

Project Management - image

About

The Solace Toolkit (TK) for Game Development offers a Data-Oriented Framework to build and design games in your engine of choice.

Topics

Resources

Stars

Watchers

Forks