Scythe
SCYTHE is a lightweight, C#-based game engine focused on modifiability and rapid iteration using Raylib.
๐ฎ TypeScript game numeric engine for RPG & strategy games. Zero dependencies, type-safe formula parsing, battle systemโฆ
The TypeScript-first numeric engine for games.
Decouple logic from code, manage complex formulas with ease, and build robust RPG/SLG/Card systems.
Installation ยท Quick Start ยท Documentation ยท Examples ยท Roadmap ยท Online Demo
SoonFx is a TypeScript-first numeric engine designed specifically for games. It addresses the common challenge of managing complex game logic, formulas, and numeric relationships that often become hardcoded "spaghetti code."
In many game projects, damage calculations, resource production rates, and other numeric logic are hardcoded directly into the source code.
SoonFx decouples logic from code.
Stop hardcoding formulas. Build them visually.
SoonFx Runtime is the engine that powers the SoonFx Editor. It allows game designers to configure complex logic without writing a single line of code, while developers can safely execute it at runtime.
Note: While SoonFx Runtime can be used standalone for math and expressions, its true power is unlocked when paired with the Editor.
SoonFx is designed for numeric-heavy game genres:
To use this library in your project:
npm install @soonfx/engine
Clone and setup the development environment:
# Clone the repository git clone https://github.com/soonfx-engine/core.git cd core # Install dependencies npm install # Build the project npm run build # Run examples cd examples npm install npm run dev
import { fx } from '@soonfx/engine';
// 1. Mathematical utilities
const distance = fx.distance(0, 0, 10, 10);
console.log('Distance between points:', distance); // 14.142135623730951
// 2. Expression evaluation
const result = fx.evaluateExpression('(2 + 3) * 4');
console.log('Expression result:', result); // 20
// 3. Numeric processing
const fixed = fx.fixedDecimal(3.14159, 2);
console.log('Fixed to 2 decimals:', fixed); // 3.14
import { Eve, Call, CallCenter } from '@soonfx/engine';
// Create event call center
const callCenter = new CallCenter();
// Listen to events
callCenter.addEventListener(Eve.SHIFT_ADD_BOARD, (data) => {
console.log('Board added event triggered:', data);
});
// Send events
Call.send(Eve.ADD_DATABASE_DATA, [data, body, index]);
// Calculate distance between two points const distance = fx.distance(x1, y1, x2, y2); // Vector dot product const dotProduct = fx.dot(p1x, p1y, p2x, p2y); // Vector cross product const crossProduct = fx.cross(p1x, p1y, p2x, p2y); // Calculate vector length const length = fx.length(a, b); // Coordinate transformation const coord = fx.coordinate(x, y, angle, distance);
The Player class provides character attributes, battle calculations, and combat simulation. See the Examples section below for complete battle system demonstrations.
@soonfx/fx
โโโ Core Systems (core/)
โ โโโ EventManager Event management
โ โโโ System System base class
โ โโโ Types Type definitions
โ
โโโ Mathematical Modules
โ โโโ Vector Vector operations (dot, cross, distance)
โ โโโ Numeric Numeric processing (fixedDecimal, currencyConversion)
โ โโโ Geometry Geometric calculations (coordinate, length)
โ
โโโ Expression System
โ โโโ Parser Expression parser
โ โโโ RPN Converter Reverse Polish Notation converter
โ โโโ Evaluator Evaluation engine
โ
โโโ Data Management (data/)
โ โโโ Layers Layer system
โ โโโ Metadata Metadata management
โ โโโ Models Data models
โ โโโ Storage Storage system
โ
โโโ Game Systems (game/)
โ โโโ FXCentre Game engine core
โ โโโ Player Player character system
โ โโโ Formulas Formula calculation system
โ
โโโ Communication (communication/)
โ โโโ Events Event system
โ โโโ Call Event calling
โ โโโ Message Message passing
โ
โโโ Utilities (utils/)
โโโ ExtendsUtil Extension utilities
Check out the example project for complete development examples.
See the Getting Started section in Contributing for setup instructions.
SoonFx provides complete TypeScript type definitions:
// Automatic type inference const distance: number = fx.distance(0, 0, 10, 10); // Full IntelliSense support fx. // IDE will show all available methods
We welcome all forms of contributions!
First, clone the repository:
git clone https://github.com/soonfx-engine/core.git cd core
# Navigate to examples directory cd examples # Install dependencies npm install # Start development server npm run dev # Build for production npm run build
# Install dependencies npm install # Build the project npm run build # Run tests (if available) npm test
See our Roadmap for planned features and improvements.
View the complete changelog
This project is licensed under the Apache 2.0 License. You are free to use, modify, and distribute this project.
If you encounter any issues:
If this project helps you, please give us a Star! It means a lot to us.
Made with โค๏ธ by SoonFx Team
Copyright ยฉ 2025 SoonFx Team. All rights reserved.
more like this
SCYTHE is a lightweight, C#-based game engine focused on modifiability and rapid iteration using Raylib.
Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.
search projects, people, and tags