Skip to main content

Roadmap

caution

All of this is subject to change

Roadmap​


qASIC version 0.2.3​

This update will bring gamepad and multiplayer support. I'm planning to use Unity's built in gamepad API. If that won't work out, gamepad support will have to be installed separately (there will be an easy built in way to do this).

It is possible that I'll implement some kind of code generator, so that Actions and Axes could be refrenced inside of C# directly.

qASIC version 0.2.4​

Bugfixes and minor improvements.

qASIC version 0.3.0 - Options System update​

In this major update the Options System will receive a much needed upgrade. Settings will be much easier to create with property and variable attributes. A lot of Menu Option scripts will be replaced by a much easier solution. Resolution and framelimit dropdowns will now be replaced by string and int ones respectively with an additional script for the resolution for populating the dropdown with avaliable resolutions.

There will also most likely be a way to specify a list of avaliable options in code to get rid of that extra component.

The last thing that will come in this update will be file structure overhaul. This new structure will allow me to make qASIC avaliable to add as a git package in the package manager.

qASIC version 0.3.1​

Bugfixes and minor improvements.

qASIC version 0.3.2 (not confirmed)​

This version will bring a lot of segregation tools for settings. This means that settings won't have to be added manualy and instead will be automatically populated in the menu.

In addition I'm planning on adding other tools for making the settings menu UI easy to create. This feature might get separated into a different update.

qASIC version 0.4.0 - Console update​

This set of updates will bring a lot of console improvements.

Console window will receive a much needed update. It will now feature a resizable moving window, log stacking, new look, dark and light mode, runtime adjustable font size and notification mode1.

Making commands will be much easier. Instead of creating a whole new file for changing a small variable, you will now be able to add an attribute to a field, parameter or method.

There are also going to be new attributes for modifying the look of logs for classes and methods.

Example
[LogPrefix("Player")]
[LogColor("player")]
public class Player : MonoBehaviour
{
private void Awake()
{
Initialize();
qDebug.Log("Player Initialized!");
//Result:
//[Player] Initializing player... (in color "init")
//[Player] Player Initialized! (in color "player")
}

[LogColor("init")]
private void Initialize()
{
qDebug.Log("Initializing player...");
}
}

The console will also be able to be used in the editor. Commands will now have an option to be set to run at runtime, in editor or both.

info

1 - Console notification mode allows you to see certain logs when the console is minimized. These logs will appear in the corner of your display. Which logs get shown can be customized in the console settings and at runtime.


Potential features​

Scene Manager​

This new system would take care of loading and unloading scenes. It will use scene collections to identify what scenes to load in addition to the requested one via code. These collections will be set manually or using regex.

Example
public class ExampleScript : MonoBehaviour
{
private void Example()
{
//Collections:
//1. Gameplay
// - Required scenes: UI, Gameplay Managers, Systems, Audio
// - Target scenes: scenes that start with word "Level"
//
//2. Menu
// - Required scenes: Systems, Audio
// - Targeted scenes: Scenes that contain word "Menu"

//Player presses 'start'
qASIC.SceneManager.LoadScene("Level 1");

//Scene 'Main Menu' gets unloaded
//Scenes 'UI' and 'Gameplay Managers' and 'Level 1' get loaded

//Player presses 'exit to menu'
qASIC.SceneManager.LoadScene("Main Menu");

//Scenes 'UI', 'Gameplay Managers' and 'Level 1' get unloaded
//Scene 'Main Menu' gets loaded
}
}

There would also be an option to add a Loading Scene which would be shown while the other scenes get loaded.