Adventure Game Studio

AGS Support => Modules, Plugins & Tools => Topic started by: eri0o on Thu 28/04/2022 02:25:27

Title: TOOL: AGS Toolbox🧰 0.5.5
Post by: eri0o on Thu 28/04/2022 02:25:27
AGS Toolbox🧰 version 0.5.5

Get Latest Release agstoolbox.exe (https://github.com/ericoporto/agstoolbox/releases/download/0.5.5/agstoolbox.exe) | companion atbx.exe (https://github.com/ericoporto/agstoolbox/releases/download/0.5.5/atbx.exe) | GitHub Repo (https://github.com/ericoporto/agstoolbox)

(https://img.shields.io/pypi/pyversions/agstoolbox) (https://img.shields.io/pypi/v/agstoolbox) (https://pypi.org/project/agstoolbox/) (https://img.shields.io/github/release-date/ericoporto/agstoolbox?color=blue&label=%F0%9F%93%85) (https://github.com/ericoporto/agstoolbox)

🚨NOTE: A clean windows 11 installation may require you install this VC_redist.x64.exe (VS2017 redistributable) (https://download.visualstudio.microsoft.com/download/pr/11100230/15ccb3f02745c7b206ad10373cbca89b/VC_redist.x64.exe).

Hi, I made something intended for those that deal with multiple versions of AGS Editors and multiple AGS Game Projects. Place the agstoolbox.exe in a folder under your user, like "C:\Users\MY_USER\software", before you run it.

(https://i.imgur.com/UnwSeDU.png)

After you run the agstoolbox.exe, you will find a bluecup in your indicator area of your taskbar, near the clock area. Double click or right click it, to open the main panel.

Features

Right clicking any item on the list will show available actions, double clicking will execute the command marked in bold.

I made it initially for myself to help handle my own games and modules. It has also an additional pair tool, atbx, that provides the same functionalities through a command line interface - intended for CI and automation.

For people in Unity, this may be a similar AGS version of the Unity Hub. I actually modeled it on the JetBrains Toolbox, which I use to manage different versions of CLion, Android Studio and PyCharm - it's also developed in PyCharm!

Command Line Usage

NOTE: On Windows, due to OS and PyInstaller limitations, agstoolbox.exe doesn't work with command line arguments, so atbx.exe is for exclusive command line usage.

Code (bash) Select
$ atbx --help
usage: atbx [-h] [-s {bash,zsh,tcsh}] [-v] {list,install,open,build,settings,export} ...

agstoolbox is an application to help manage AGS Editor versions.

positional arguments:
  {list,install,open,build,settings,export}
                        command
    list                lists things
    install             install tools
    open                open an editor or project
    build               build an ags project
    settings            modify or show settings
    export              export from ags project

optional arguments:
  -h, --help            show this help message and exit
  -s {bash,zsh,tcsh}    print shell completion script
  -v, --version         get software version.

Copyright 2023 Erico Vieira Porto, MIT.

As an example, a command line to force install the latest 3.6 AGS Editor, as a managed Editor is as follows

Code (bash) Select
$ atbx install editor 3.6 -f
Will install managed AGS Editor release 3.6.0.47
 Downloading... 40475597/40475597 B |████████████████████████████████| AGS-3.6.0.47.zip
Extracting...
Installed release 3.6.0.47

The command line interface is working, but it is still quite limited, if you have more needs for it, please ask me!

Tab completion is also provided, the script for it can be generated with -s parameter, if you need help setting up just ask.



Experimentally, AGS Toolbox is also available on PyPI. Prefer the exe releases above for now, the PyPI releases are intended for uses of it's core parts and the atbx command line utility in continuous integration, the idea is if the pipeline has pip you can just use it to get agstoolbox and then atbx to get the editor setup in the pipeline - essentially two commands to setup AGS Editor in a CI environment.



AGS Toolbox is written in Python, so if you are interested in a new feature and want to contribute code, just ask me and I can explain the basics of it.
Title: Re: TOOL: AGS Toolbox🧰 0.1.1
Post by: Tarnos12 on Wed 04/05/2022 13:45:27
Looks great! I've been using multiple ags versions lately and this will definitely help.
The fact that it knows which version the project used is great.

I will try it out later today, thanks.
Title: Re: TOOL: AGS Toolbox🧰 0.1.1
Post by: eri0o on Wed 04/05/2022 14:16:23
Awesome! Let me know how it goes! Any ideas of things to add feel free to add here. :)

When I started, I wrote the features I had in mind to pursue, but of course I expect these and priorities can be adjusted as other people use it: https://github.com/ericoporto/agstoolbox#desired-features

A warn, I have not tested with AGS 4, because it has no releases so far, I have no idea what will happen.
Title: Re: TOOL: AGS Toolbox🧰 0.1.1
Post by: Tarnos12 on Wed 04/05/2022 14:41:58
Quote from: eri0o on Wed 04/05/2022 14:16:23
Awesome! Let me know how it goes! Any ideas of things to add feel free to add here. :)

When I started, I wrote the features I had in mind to pursue, but of course I expect these and priorities can be adjusted as other people use it: https://github.com/ericoporto/agstoolbox#desired-features

A warn, I have not tested with AGS 4, because it has no releases so far, I have no idea what will happen.

Ah I use 4.0 too, will test after making a backup.
Title: Re: TOOL: AGS Toolbox🧰 0.1.3
Post by: eri0o on Sun 02/04/2023 21:55:00
Really minor release fixing a crash that happened when the Editor version was too short - happened with Editor 3.4.3.

Working on additional things now.
Title: TOOL: AGS Toolbox🧰 0.2.3
Post by: eri0o on Mon 03/04/2023 02:58:43
Added a new 0.2.0 release


Note: if you use the startup with windows setting, I recommend to move the agstoolbox.exe file to a suitable place. I maintain my portable binaries under a directory I created in "C:\Users\MY_USER\software", if someone has a suggestion for a non-ProgramFiles location, mention yours.

Edit: Well, seconds after I realized I wasn't able to fetch 3.6.0 Release with this, and had to hack a better way to detect the AGS Release assets, so now it's a 0.2.1 release

Edit2: Minor adjustments to try to silently recover from invalid settings. Not sure it's enough yet.

Edit3: From 0.2.3 and onwards, right clicking on it on Explore you will be able to read which agstoolbox version you have.
Title: TOOL: AGS Toolbox🧰 0.4.0
Post by: eri0o on Sun 16/04/2023 14:19:45
Hey, 0.4.0 version of agstoolbox.exe adds a small search bar! Not much you can do in it yet, but it's useful for filtering stuff!

(https://user-images.githubusercontent.com/2244442/232314037-d3f30d0b-2cbc-427c-9e62-005046b9f76f.gif)

Also check past improvements in the command line version atbx.exe.
Title: Re: TOOL: AGS Toolbox🧰 0.4.1
Post by: eri0o on Tue 21/11/2023 00:28:35
Found a bug that prevented agstoolbox to get the newest releases from github and fixed! new 0.4.1 release can properly fetch the recent 3.6.1 releases! :)

There is an issue that I don't know why it happens that it appears I can't build ags games through command line with atbx, the editor gives an error "Unable to set EXE name/description: LoadLibrary failed". This doesn't happen when using agstoolbox, if you right click a project and select the Quick build option. I don't know why this happens yet.  :-\

Edit: tracked down the issue, it's due to pyinstaller using SetDllDirectory, detailed it here: https://github.com/ericoporto/agstoolbox/issues/31

The culprit appears to be SetDllDirectory is inherited by the child process (https://pretentiousname.com/setdlldirectory_inheritance/index.html).
Title: Re: TOOL: AGS Toolbox🧰 0.4.2
Post by: eri0o on Sat 25/11/2023 23:23:57
AGS Toolbox 0.4.2 released!

This fixes the longstanding issue that made AGS Editor give the "Unable to set EXE name/description: LoadLibrary failed" erro when building.

Now you can use both atbx build /my/project/path and also the Quick build functionality from agstoolbox interface without issues!

With this version, in theory, a simple github actions pipeline to build your ags game is now simply

Spoiler
Code (yaml) Select
name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v3

      - name: gets ags-toolbox
        run: |
          curl -Lo atbx.exe https://github.com/ericoporto/agstoolbox/releases/download/0.4.2/atbx.exe
          echo "${{github.workspace}}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
         
      - name: install ags
        run: |
          atbx install editor -q test-game/
         
      - name: build game
        run: |
          atbx build test-game/
[close]

Unfortunately, this still won't work with current 3.6.1 (but it should work with non-beta versions). Next 3.6.1.13 will fix the issue of running agseditor in command line in a pipeline environment.
Title: Re: TOOL: Toolbox🧰 0.4.5
Post by: eri0o on Sat 23/12/2023 01:55:01
Hey, AGS Toolbox 0.4.5 released! atbx.exe now can work with the newly AGS Editor v.3.6.1.14 in command line in GitHub Actions pipelines!

Code (yaml) Select
name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v3

      - name: gets ags-toolbox
        run: |
          curl -Lo atbx.exe https://github.com/ericoporto/agstoolbox/releases/download/0.4.5/atbx.exe
          echo "${{github.workspace}}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
         
      - name: install ags
        run: |
          atbx install editor -q test-game/
         
      - name: build game
        run: |
          atbx build test-game/

Above is an actual GitHub Actions pipeline that works correctly for building ags games!
Title: TOOL: AGS Toolbox🧰 0.4.6
Post by: eri0o on Sat 23/12/2023 20:43:47
new version 0.4.6 released, now atbx.exe can export script module from game projects in the command line!

You can do so like

Code (bash) Select
/atbx.exe export script my_game my_module .
The idea here is you can use it to export a script module from a pipeline to push the module as a release artifact in a repository.

Code (bash) Select
./atbx.exe export script --help
usage: atbx export script [-h] PROJECT_PATH MODULE_NAME OUT_DIR

positional arguments:
  PROJECT_PATH  path to the project with the module
  MODULE_NAME   name of the script module
  OUT_DIR       where to export the script module

optional arguments:
  -h, --help    show this help message and exit
Title: Re: TOOL: AGS Toolbox🧰 0.4.8
Post by: eri0o on Sun 14/01/2024 18:53:03
new 0.4.8 version!

Very minor update, noticed that Release Candidate versions of the AGS Editor were not possible to fetch and install, fixed that in this new release.
Title: Re: TOOL: AGS Toolbox🧰 0.4.9
Post by: eri0o on Sun 18/02/2024 23:30:25
new 0.4.9 version!

Very minor update again, noticed that AGS 4 releases of the AGS Editor were not possible to fetch and install, fixed that in this new release!  8-)
Title: Re: TOOL: AGS Toolbox🧰 0.5.0
Post by: eri0o on Thu 18/07/2024 00:16:00
new 0.5.0 version!

If for some reason AGS Toolbox can't find the specified project when using the command line interface, it will now give better logging, hopefully making it easier to understand issues that may arise when using it in CI environments.
Title: Re: TOOL: AGS Toolbox🧰 0.5.1
Post by: eri0o on Fri 19/07/2024 06:17:38
new 0.5.1 version!

This version adds an experimental AGS Template export.

atbx export template ../ags-template-source/Tumbleweed Tumbleweed.agt .
essentially you use the export template command and subcommand, and then pass the directory with the game project, the name of the output file and the directory to put the file.

This is still not super well tested, it tries to mimick the behavior currently in the AGS Editor. The template export is reimplemented in python itself.
Title: Re: TOOL: AGS Toolbox🧰 0.5.2
Post by: eri0o on Fri 04/10/2024 02:45:00
I had released a 0.5.2 version that fixed a crashing bug and forgot to put it here!

Also when running in a totally clean PC I discovered my agstoolbox actually depends on VS2017 redistributable, I added a link to it in the first post - I guess either when I added VS itself or some Steam game that used redistributables it suddenly worked and I never noticed. Ah, the redistributable is only necessary for agstoolbox, the command line companion atbx does not require it.

(curiously I actually am building for windows using wine and docker but I had to steal some dlls from VS to make python work flawlessly, I guess I need to polish my python->exe building in Linux a little more)
Title: Re: TOOL: AGS Toolbox🧰 0.5.3
Post by: eri0o on Sun 10/11/2024 13:35:01
New AGS Toolbox 0.5.3 release, fixes not finding already installed 3.6.2 AGS Editor
Title: Re: TOOL: AGS Toolbox🧰 0.5.5
Post by: eri0o on Sun 24/11/2024 12:36:54
(minor improve over 0.5.4 in a specific error message from list releases that can happen if github api blocks the query for some reason)

New AGS Toolbox 0.5.5 now can use the /maketemplate command from the editor.

When using the export template command, use the -f or --force-editor flag to make it use the export template command from the editor instead of the self built mechanism in agstoolbox.

Code (bash) Select
atbx export template -f ../../dkrey/ags_tumbleweed/ tumbleweed.agt ../
Will export the tumbleweed template as tumbleweed.agt on the ../ dir.

This will only work if the game project is using either Editor version 3.6.2.1 or above or if it's an ags4 project, version 4.0.0.9 or above. Additionally, the necessary editor version must also be installed - either from using the installer or as an agstoolbox managed editor.