Skip to content

Features

Hyomoto edited this page Nov 25, 2020 · 12 revisions

The Core module is the framework on which FAST's modules are built, and it must be installed to use them. Unlike the other modules it contains general, all-purpose functions to fill in notable omissions in GML. It's major pieces are a function library, a text parser and string formatter, a slew of wrappers for native data structures, garbage-collected data structure replacements, a simple event framework, a publisher-subscriber framework, and file and logging routines.

While FAST Core contains useful file handling routines for common datatypes, Database utilizes the DsTree structure and a JSON-like language for writing external databases. This module is designed for large data sets, such as RPGs or strategy games, where tweaking values and managing external files can be cumbersome, but is also perfect for handling localization files. Databases can be easily re-loaded during runtime, allowing you to make persistent changes and test them without recompiling. Lastly, if you want to offer modding in your game, databases are a great starting place: expose the parts of your game you want to allow editing as database files and their plain-text interface means anyone can modify and redistribute them easily.

A common problem with GMS is how to consolidate inputs from different sources, ie: touchscreens, the mouse, keyboard and gamepads, into a simple interface. These problems are compounded if you want to offer up the ability to rebind keys or offer alternative layouts. FAST Input Handling seeks to solve both of these problems by providing an easy-to-define, easy-to-bind and easy-to-use InputDevice. InputDevice uses no complex functions, and offers an extremely intuitive and simple syntax. Lasty, InputDevice only polls controls that are "in-use", meaning no matter how many inputs you define, overhead is always kept to what is in use.

Pointer

Pointer is still under development. It's purpose is to do for pointer interfaces what Input Handling does from controller interfaces: make them easy to write, and powerful to work with.

Resolution scaling is one of the most annoying things to get right in GMS. Supporting multiple resolutions, especially with pixel perfect games, can be tedious and annoying. FAST Render provides a simple interface to work with and tries to provide just the right results for the user without requiring complex management or setup. The render itself is also easily extensible, allowing you to inject your own features into FAST's render pipeline if needed. Lastly, render piggyback's off of GMS's built-in views making it extremely easy to set up and modify.

Scripting is a powerful toolkit for writing Lua and Yarn-like scripts that can be compiled and ran on-demand. These scripts can be recompiled during runtime, allowing you to write and test them without having to recompile your program. Also, since FAST is entirely GML-based, it is also portable to any exports that support reading from external files.

Clone this wiki locally