AGS4 “bundling / deployment” steps?

Started by fernewelten, Thu 22/04/2021 19:10:54

Previous topic - Next topic

fernewelten

Hello folks,
I've tried building a complete AGS 4.0 system on Windows from the GIT repository.

Starting with the instructions in ags/Readme.md, you get pointed to ags/blob/ags4/Windows/README.md.
You're pointed to the solutions for building the Engine and Editor, but building those is not enough per se:

  • The resulting Editor will not find the templates, e.g., the BASS template
  • hitting F1 will provoke an error that the help file cannot be found (Should it even? Doesn't AGS4 have a HTML based help?)
  • the Editor doesn't offer an option to compile for Linux.

So several “bundling” or “deployment” steps seem to be still necessary. I haven't found information for that, but it might be me, I might have searched the wrong places.

Assuming an AGS4 Editor and Engine is compiled. Just what do I have to do  to end with an installation that is just as complete as what I get when installing AGS-3.5.0.31-P9.exe?

eri0o

#1
Fernewelten,

The "best" documentation of the process is to read the CI description files, since they contain the steps necessary to build the stuff.

https://github.com/adventuregamestudio/ags/blob/master/.cirrus.yml

I do have opened a ticket on the repository complaining about the lack of documentation of the building steps for Windows:  https://github.com/adventuregamestudio/ags/issues/1085 .

Ah, right, and you can also simply enable Cirrus CI for your GitHub account too, the CI will then work on your repository too - it's how I use for myself for most of the stuff (make sure to select the free plan)

https://github.com/marketplace/cirrus-ci

I also predict some stuff will be harder to build on VS-2022, so for now I would use VS-2019, but VS-2022 C++ is binary compatible with VS-2015 - VS-2019 in theory, so precompiled dlls and such should work.

I wonder if CW has some batch scripts in his computer for these stuff. In the past MorganW had a .bat script that automated some stuff in the build, which was useful for running locally.

Ah, the wiki has documentation on some steps under public release, but it's more conceptual.

Crimson Wizard

#2
All the 3 components mentioned above are not parts of building Editor per se, they have to be built or acquired separately and placed along the Editor's exe.
For example, if you run the editor from Visual Studio, then its current working directory will be Solutions/.build/Debug or /Release. Or your own folder where you gather editor's release.

There is an installer script in Windows/Installer, and also we had a Script/build_packages.py script that was supposed to make ZIP archive with the editor, but I haven't test the latter for a long while so idk if it still works.
But these require that you have necessary components ready, so they only help to do the final packaging step.

Quote from: fernewelten on Thu 22/04/2021 19:10:54
  • The resulting Editor will not find the templates, e.g., the BASS template

You have to have templates in "Templates" subdirectory in the editor's folder.
Latest available templates may be found in their repository: https://github.com/adventuregamestudio/ags-templates


Quote from: fernewelten on Thu 22/04/2021 19:10:54
  • hitting F1 will provoke an error that the help file cannot be found

It looks for a ags-help.chm, the manual is now built only by scripts inside https://github.com/adventuregamestudio/ags-manual but I don't know how these work.
I think it's easier to just take one from latest official release.

Quote from: fernewelten on Thu 22/04/2021 19:10:54
  • the Editor doesn't offer an option to compile for Linux.

You have to build Linux libraries (on Linux) using make_ags+libraries.sh script in debian/ directory
or download it from the build server (corresponding to ags4 branch), then place inside "Linux" folder along the editor exe.



Quote from: eri0o on Thu 22/04/2021 19:19:26
I do have opened a ticket on the repository complaining about the lack of documentation of the building steps for Windows:  https://github.com/adventuregamestudio/ags/issues/1085 .

Yes, I gave it minor updates a while ago, but some points are still due adding; it's placed on 3.5.1 milestone.

eri0o

Quote from: Crimson Wizard on Thu 22/04/2021 19:37:54
Quote from: eri0o on Thu 22/04/2021 19:19:26
I do have opened a ticket on the repository complaining about the lack of documentation of the building steps for Windows:  https://github.com/adventuregamestudio/ags/issues/1085 .

Yes, I gave it minor updates a while ago, but some points are still due adding; it's placed on 3.5.1 milestone.
Thank you CW! :)

morganw

The current CI setup is probably best described as being all of the tasks that someone was previously doing manually being done automatically. There is a lot of "build this here", "copy this there", "delete these and then make a zip file", etc. To be honest I would say it borders on abuse of the services we are using. It does work but the only place where the actions are defined are within the CI config and they don't work outside of that (possibly you can use "Cirrus CLI" to run things locally but I haven't looked into it - my general experiences with Docker based services has been poor).

Ideally the build system needs to handle more of this, and the CI system just invokes the build system. The requirements for different build stages are also very different, probably different enough that I don't think a single build system can cover them all on all platforms unless it installs a language and/or environment just to build with, which is generally the opposite of what people want when building on their own machine.

In a lot of cases though I think there is no issue of binary compatibility between parts that would be missing from an Editor build, so I have considered that if there was a binary package manager for AGS script modules it could distribute release or pre-release build components (possibly on a temporary 'channel' for pre-release), and then for someone who just has Visual Studio and nothing else it is probably possible to hook a package download to the build sequence.

fernewelten

#5
Quote from: morganw on Thu 22/04/2021 22:56:49
Ideally the build system needs to handle more of this, and the CI system just invokes the build system.

It's certainly what I have looked for first: A sort of one-step "make dist" command that makes the computer groan and moan for all its life and then give birth to a ready-and-shiny "gold disk" in due course.

But the underlying trouble seemingly is, we don't have a "cross compiler". So to get a bundle that can compile Linux as well as Windows executables, we need a Linux system to generate the Linux engine and separately from that, a Windows system to generate the Windows engine. Only then can we start the bundling proper.

The Cirrus servers offer just that. You can start up a Windows VM and a Linux VM etc. etc. and when all those tasks have successfully done their thing, start the process that bundles their respective subproducts.

morganw

I think there is some scope to add cross-compilation in and reduce the number of locations where something has to build, and I think two build systems can probably cover all platforms (and one can bootstrap the other if it isn't present). Unfortunately there are also political and philosophical elements to it: for each person who wants to use $buildsystem there is likely someone else who will get angry at its introduction, so unless it is introduced with a large upfront benefit there is likely to be an argument.
Spoiler
(I'm trying one out at the moment but I won't say which one)
[close]

js

Hello,

(today i'm digging old subjects)

I'm interested to see ags4 in action. Either Windows (with wine in my case) or better linux if possible.

So i've read about building and met with the cirrus-ci build system.

If i understand correctly, with cirrus-ci i could get a dockerfile of AGS4 for linux. I've read the yaml configuration file, and it seems that is the target of build.

But where to download the build ?

Reading this thread, i see it could be downloaded from:
https://cirrus-ci.com/github/adventuregamestudio/ags/ags4

Following this link shows me only « builds in-progress », not the previous finished build.
Are finished builds available to the public ? If they are kept, how to find them ?

I've became half crazy (the other sane half is typing this message) while turning in circles clicking everywhere on cirrus-ci pages.

Thank you.

morganw

Quote from: js on Sun 02/10/2022 14:31:53Reading this thread, i see it could be downloaded from:
https://cirrus-ci.com/github/adventuregamestudio/ags/ags4

Following this link shows me only « builds in-progress », not the previous finished build.
Are finished builds available to the public ? If they are kept, how to find them ?

From that page, click on one of those builds.
e.g. https://cirrus-ci.com/build/5975450676625408

From that page, click on one of those tasks.
e.g. https://cirrus-ci.com/task/6476896027279360

The artifacts for each task are available as public downloads.

The docker images are built on-demand by the build service and then cached, so those aren't available to download.

js

Ok i see. I had seen those pages already, but i was thinking it was not the good location (because the messages made me think build process was still running).

Anyway, without dockerfile i think it will be tedious to grab all pieces needed to run AGS4 :)

So i will wait patiently for a public release of the first beta.

Thank you for the help.

Crimson Wizard

#10
Quote from: js on Sun 02/10/2022 16:01:53Anyway, without dockerfile i think it will be tedious to grab all pieces needed to run AGS4 :)

Which pieces do you need? The Editor is fully available in 1 zip archive in the "windows_packaging" task.
Inside it has everything necessary for building a game for Linux too (with precompiled binaries for Debian/Ubuntu system).

js

Quote from: Crimson Wizard on Sun 02/10/2022 16:21:29Which pieces do you need? The Editor is fully available in 1 zip archive in the "windows_packaging" task.
Inside it has everything necessary for building a game for Linux too (with precompiled binaries for Debian/Ubuntu system).

Yes i had missed this one !
Thank you so much ! Works perfectly !

SMF spam blocked by CleanTalk