0 Favourites

[REQUEST] CLI Export/Continuous Integration support

  • Hey Ashley,

    Every couple of months a request comes through to add support for exporting via command line arguments. I'd really like to see this added to the engine since I've been able to do it with pretty much all other game engines I've used(not RPG Maker though). I'd like to throw my thoughts and a few use cases out there.

    I was at GDC last week and surprisingly I was one of the few developers representing Construct2 there. I talked to a lot of people about C2 and even got some guy at the ClickTeam booth upset(oops?) by mentioning it. In particular I was inspired by this talk by Brian Provinciano: http://schedule.gdconf.com/session/automated-testing-and-instant-replays-in-retro-city-rampage. I would really like to implement a few of the automated testing methods he demonstrated but currently it's impossible because there is no way to export via command line or from a CI server. It's also a bigger priority for me to try and get this working since I'm in the WiiU dev program now and was able to talk with a number of people at GDC about it, I would hate to not be able to deliver. :/

    Here is an example of my use case:

    • I use git/gitlab(a FOSS github.com clone) for version control and Jenkins-CI as my continuous integration and build server.
    • I have all of my C2 games in gitlab currently. On a scheduled or on-demand basis Jenkins would check out a C2 project on one of my Windows server instances
    • (Impossible step)From there Jenkins would invoke C2 and export for web.
    • Afterwards it would then run some automated tests and report back the results. The build would either succeed or fail based on the results.
    • If the build succeeded I could automatically push the export to my web server's protected link so manual QA can begin by myself or alpha testers.
    • I could also have separate downstream builds setup to prepare exports for specific platforms.

    I understand that this isn't a turnkey solution(not much in game dev is :p) but without a command line option I can't even begin to work on this.

    Alternatively if you don't feel like adding in command line options would be worth your time -especially with C3 in in the beginning stages- I have a secondary suggestion. I've tried working around the lack of command line export options by using AutoIt https://www.autoitscript.com/site/autoit/. It's really hacky, brittle and messy but I got it really close to working. The part where AutoIt fails is on the export dialog page. The reason it fails is there is no way to reliably select the same export platform, especially when platforms are being added or deprecated. This could be solved by adding a search dialog to the export dialog like below:

    A search dialog would allow me to have AutoIt narrow the platform by typing the exact name then I could have it always click the export option that's left.

    Sorry for writing a book but thanks for listening. Optimally command line exporting would be the best solution but if a search dialog is a quicker win I can work with it. Let me know if anything needs clarified.

    Thanks dude!

  • I wondered if a general use runtime might solve some issues like this.

  • Agree with newt .

  • Hmmm. Could you guys expand on what you're thinking a bit? I think I know what you're going for but I'd rather be sure we're all on the same page.

  • "command line arguments" is not easy to use for normal user who do not have programing background.

    Edit:

    Humm... I guess it might be better to have both solutions (text script command line and gui interface) to make programmer or non-programmer happy.

  • A fits all runtime might make it so that all you need is the capx to run a game.

    Its not all you would need, and there would be other issues, but it would solve other issues as well.

    The biggest con would be that you wouldn't need the editor to export, which is Scirra's bread, and butter.

    Plus the runtime would probably be huge.

  • I could see major value in adding that search box for both automation reasons and use of use to the average user. basspenguin

  • newt Gotcha, I think that sounds useful but unfortunately it sounds like a completely new Scirra product. :/

    My intention was to find a happy medium to where it wouldn't take too much time to implement but could get the people who want automation a working solution. I'll obviously create a tutorial and share my AutoIt scripts if(when?) I'm able to get it to work.

  • Ashley Any input on potentially adding a search box?

    Thanks dude!

  • Thanks basspenguin for pointing me to this important post

    I myself have 80+ games, for each there are 3 versions (high/low res etc.), I want to export them all, but it takes too many time.

    I will be happy to be able to write an external export script to do it all at once.

    A command line exporting API will be a great solution for me!

    Ashley please take that in consideration.

  • Bump... or something. I would love to see this and it didn't even get a response from Scirra.

  • Daemon haha. I've pinged Ashley about it a number of times through different means. His direct response was basically it's a feature that only a certain small subset would use -the more professional workflow devs IMO-, and because of that most users wouldn't use it. Also due to the fact there's a large emphasis on beginners he said they prioritize features that benefit all users. Not my favorite answer but fair, it's a business.

    I did get a solution mostly working with

  • Construct 3

    Buy Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Buy Now Construct 3 users don't see these ads
  • I would love to see this but I'm also in that lower % of users that ends up using some kind of automatic building.

    But really having the GUI just wrapping a CLI is actually fairly common. It all depends on how far along Ashley is in his design.

    It would be amazing workflow to just be able to push to a repo and have another service actually do the building. My larger projects are starting to take a long time to export. Automatic building saves quite a few cycles in a dev's day. Once that build is made, automatically kick off a itch.io Butler CLI and then your game is already deployed to a game portal.

    This would also help beginners start to become intermediates

  • Any news on this?

    Some of our clients use Bitbucket, Stash, Jenkins, and so on... and this lack of an automated way to export is becoming a problem for us

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)