This is the first of my on going goal of building tools for quick game creation. The tools would be used to iron out the kinks or just provide abilities to my games, be them full projects or quick game jams.
This first tool will be my main focus and will constantly be tweaked and edited to suit different needs or just to mess around with.
If anyone has and Ideas, questions, code improvements, grammatical/speiling mistakes PLEASE comment them down below, thanks.
POSTPONED
THE DEBUG CONSOLE
The debug console is a refined and rewritten project that I was working on a while ago that being a command prompt simulation [view here]
From that base I've made the Debug menu a single object that can be dragged and dropped into any project. With the precise goal of being completely customize-able to the users needs.
The object handles user text input and phrases it to run a user defined command script.
How to use
The user would create the command scripts they need for there game.
There is a provided blank default template script for creating your own command script.
When the user presses enter it saves what they typed in a variable which holds the input string.
As of now it runs a chain of scripts to filter what commands have been typed and matches those words to a ds_grid holding the commands we want, then sets the value of the command to true in a different grid.
Once we have done that we read the grid and check how many are true, if more then one we give an error, if none we give an error, if one we then move on to running the command. We pull the command name from the grid and then add "scr_cmd_" to it, (so we can execute the script through code and so we dont have one worded named scripts).
The user would need to go into the debug menu object to user_event[0] and update the command grid, if more scripts are needed they will need to update the size of the grid.
(I will make a video on how to do this in detail when the tool is ready for full release)
In obj_debug_menu Event: Create
Might rewrite this later for the grid to get the size dynamically based on the amount of commands set up in the create event
Default Commands implemented
Help:
Displays info about given command,
Help [Command to get help]
Print:
Prints the value of a given global variable, if using a resource name it will give the value of the given variable for the given resource name,
print [Global Var/Resource name] [local var (FOR RESOURCE NAME ONLY)]
Set:
The Set statement can change a given value, to the given global variable or an local variable that is in an object. The New value must be a real number. The type can only be an object or a global.
Set [ Type (object/global) ] [ ( global.Varname / object_name.Varname ) ] [ Value ]
note: this does have the ability to crash the game if used without cation
Script_execute:
script_execute [script_id] : runs the given script.
note: this will not run any command script that must be called by the debug console
note: this does have the ability to crash the game if used without cation
System:
The system command exists to combine smaller function commands into one. These are typically game related commands.
system [command] (Quit, Fullscreen, room_next, room_last, restart)
note: Ideally you'd replace the fullscreen script for just being a on/off switch for your fullscreen code
Debug:
The Debug command exists to combine smaller function commands into one. These are typically debug/engine style commands. ex: (show_debug_overlay)
Debug [command] [Bool]
GIFS
CURRENT BUGS
memory leak with syntax adding (FIXED in V1.0)
-a hot patch for release version is to just remove the code that adds the syntax to the syntax grid
DOWNLOAD!
CURRENT VERSION: 0.5
NEXT VERSION: 1.0
I will release the final (1.0) on the marketplace for a few dollars nothing major.
You are free to use the in development build of the debug console as long as you credit me and your use of it in your project. please be respectful thanks.
its currently in the form of a local package that you can import into your project.
[Download Link]
This first tool will be my main focus and will constantly be tweaked and edited to suit different needs or just to mess around with.
If anyone has and Ideas, questions, code improvements, grammatical/speiling mistakes PLEASE comment them down below, thanks.
POSTPONED
THE DEBUG CONSOLE
The debug console is a refined and rewritten project that I was working on a while ago that being a command prompt simulation [view here]
From that base I've made the Debug menu a single object that can be dragged and dropped into any project. With the precise goal of being completely customize-able to the users needs.
The object handles user text input and phrases it to run a user defined command script.
How to use
LICENSE:
EvansDebugConsole
Copyright © 2020 EvanskiStudios
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
1. The end-user (you) must supply credit for use of the software in any shape way or form that it is used in.
2. The end-user (you) must not redistribute the software in an opensource forum.
Note: you are allowed to release what you use the software for in an open-source fashion being you have removed the source of this software from your use of said software, Condition 1 still applies.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
EvansDebugConsole
Copyright © 2020 EvanskiStudios
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
1. The end-user (you) must supply credit for use of the software in any shape way or form that it is used in.
2. The end-user (you) must not redistribute the software in an opensource forum.
Note: you are allowed to release what you use the software for in an open-source fashion being you have removed the source of this software from your use of said software, Condition 1 still applies.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
MIT License FAQ - Tawesoft Knowledge Base
The MIT License is an agreement commonly used by software developers when they release Free and Open Source software.
www.tawesoft.co.uk
There is a provided blank default template script for creating your own command script.
When the user presses enter it saves what they typed in a variable which holds the input string.
As of now it runs a chain of scripts to filter what commands have been typed and matches those words to a ds_grid holding the commands we want, then sets the value of the command to true in a different grid.
Once we have done that we read the grid and check how many are true, if more then one we give an error, if none we give an error, if one we then move on to running the command. We pull the command name from the grid and then add "scr_cmd_" to it, (so we can execute the script through code and so we dont have one worded named scripts).
The user would need to go into the debug menu object to user_event[0] and update the command grid, if more scripts are needed they will need to update the size of the grid.
(I will make a video on how to do this in detail when the tool is ready for full release)
In obj_debug_menu Event: Create
GML:
#region //CON LIST
cmd_list_size = 10; //max size of grid
cmd_list = ds_grid_create(2,cmd_list_size); //create grid
ds_grid_clear(cmd_list,0); //clears it of junk memory allocation
var grid = cmd_list; // local variable for calling the grid
//set all commands to false
for (var i = 0; i < cmd_list_size; i++)
{
ds_grid_add(grid, 1, i, false);
}
//COMMANDS NEEDS TO BE UPPER CASE
grid[# 0, 0] = "SYSTEM";
grid[# 0, 1] = "PRINT";
grid[# 0, 2] = "HELP";
grid[# 0, 3] = "SET";
grid[# 0, 4] = "SCRIPT_EXECUTE";
grid[# 0, 5] = "PH";
grid[# 0, 6] = "PH";
grid[# 0, 7] = "PH";
grid[# 0, 8] = "PH";
grid[# 0, 9] = "PH";
#endregion
Default Commands implemented
Help:
Displays info about given command,
Help [Command to get help]
Print:
Prints the value of a given global variable, if using a resource name it will give the value of the given variable for the given resource name,
print [Global Var/Resource name] [local var (FOR RESOURCE NAME ONLY)]
Set:
The Set statement can change a given value, to the given global variable or an local variable that is in an object. The New value must be a real number. The type can only be an object or a global.
Set [ Type (object/global) ] [ ( global.Varname / object_name.Varname ) ] [ Value ]
note: this does have the ability to crash the game if used without cation
Script_execute:
script_execute [script_id] : runs the given script.
note: this will not run any command script that must be called by the debug console
note: this does have the ability to crash the game if used without cation
System:
The system command exists to combine smaller function commands into one. These are typically game related commands.
system [command] (Quit, Fullscreen, room_next, room_last, restart)
note: Ideally you'd replace the fullscreen script for just being a on/off switch for your fullscreen code
Debug:
The Debug command exists to combine smaller function commands into one. These are typically debug/engine style commands. ex: (show_debug_overlay)
Debug [command] [Bool]
GIFS
CURRENT BUGS
memory leak with syntax adding (FIXED in V1.0)
-a hot patch for release version is to just remove the code that adds the syntax to the syntax grid
DOWNLOAD!
CURRENT VERSION: 0.5
NEXT VERSION: 1.0
I will release the final (1.0) on the marketplace for a few dollars nothing major.
You are free to use the in development build of the debug console as long as you credit me and your use of it in your project. please be respectful thanks.
its currently in the form of a local package that you can import into your project.
Last edited: