o3de / sig-platform

Documentation and materials for the Open 3D Engine Platforms Special Interest Group (SIG)
6 stars 7 forks source link

Proposed RFC Feature: Build and Pack Android Projects with Visual Interface #67

Closed Shirley-yhm closed 1 month ago

Shirley-yhm commented 1 year ago

Summary:

Enable users to export or build&pack Android Projects on Windows using a graphical interface instead of command line.

What is the relevance of this feature?

Users can generate Android projects by scripts in cmd now, which may not be user friendly. Users need to perform the following steps every time they generate an Android project:

  1. Refer to user manual for instrutions on how to generate Android projects on windows.
  2. Open the command line tool and set up environment variables.
  3. Enter several commands to build the Android project.

To simply this process and improve users' experience, this RFC proposes to add a graphical interface when generate Android projects on Windows.

Feature design description:

Users can perform the following steps to select which levels to pack, set paths of dependences and export or build&pack an Android project.

  1. Open the pop-up window from corresponding menu: 'File -> Build Settings -> Android'.
  2. Set the default level and choose which levels to pack.
  3. Set paths of Android SDK, JDK, Gradle, NDK, and location of the Android project. Once these properties are set, they will be saved into the registry. Thus users don't need to reset them the next time they build an Android project.
    • Some attributes will be read from environment variables automatically, like paths of Android SDK and JDK. Users can modify them manually too.
  4. Export / Build and Pack /Cancel the Android project
    • Export. Export an Android project in the specified directory.
    • Build and Pack. Export an Android project in the specified directory, and then pack it into an APK in this folder. All programs will be executed in the background and users won't be aware.

Technical design description:

TBD

byrcolin commented 1 year ago

I believe there is another rfc/issue proposing a build option in the editor. Perhaps a little more explanation on what you are envisioning here. The title says build, the description says build and pack... Do you see this as an editor feature or program manager feature or standalone app? Should deployment be considered? Maybe some comparisons to how other engine do it.

Shirley-yhm commented 1 year ago

Sorry that I haven't finished this RFC because we are still optimizing the process recently. The optimization is expected to be finished this week, after which I will add some images to show how it looks like and some comparison with other engines.

nick-l-o3de commented 1 year ago

https://github.com/o3de/sig-content/issues/123 is an in progress RFC that proposes that scripts are used to drive this, so that users can customize their scripts and use them.

If you already have a working prototype or code that would improve the project, of course, that would be completely fine, but perhaps theres a way to combine these 2 RFCs, such that the Visual Interface proposed could invoke a script similar to what issue 123 above is proposing, then we get the best of both worlds - users get a visual interface to interact with, and underneath that, a customizable script is being used to do the work, so that if a studio wants to modify the process to customize it for their project, they do not have to touch C++ Code much?

tkothadev commented 1 year ago

To add to what @lawsonamzn mentioned, in https://github.com/o3de/sig-content/issues/123, we are proposing to unify the build and pack terminology into "Project Export".

As part of this too, I would like to suggest that this feature be proposed for the Project Manager, since it already deals with project configuration and build settings. Having to do it from the editor feels disjointed because the user experience is already routed through the Project Manager first.

The Project Manager also has Python bindings that can readily be used and adjusted with the scripts.

Shirley-yhm commented 1 year ago

Good job! So when do you expect to finish this work? I found a PR in https://github.com/aws-lumberyard-dev/o3de/pull/497. Will it be included in 23.05.0 Release?

Jackie9527 commented 1 year ago

Some issues related this topic. 3195/3197/3208

tkothadev commented 1 year ago

The RFC is still in-flight, so no major changes will be included for release at this time.

Shirley-yhm commented 1 year ago

I see. I'll keep an eye on the progress and consider how to combine our work :)

byrcolin commented 4 months ago

@Shirley-yhm Any updates on this?

byrcolin commented 2 months ago

@Shirley-yhm ping

byrcolin commented 1 month ago

No response. Closing issue.

Ulrick28 commented 1 month ago

This is currently in progress thanks to @tkothadev

byrcolin commented 1 month ago

At the request of @Ulrick28 I am reopening this issue and assigning it to @tkothadev

byrcolin commented 1 month ago

@tkothadev I set you as the assignee, I'll leave this to you to use or close if you already have another ticket that encompasses this.

tkothadev commented 1 month ago

Per https://github.com/o3de/o3de/pull/18166, functionality for building/exporting android projects and having a configuration panel for android settings is already implemented and checked into stabilization. It is simplified to a 1-click button to initiate the export for android, and should address all primary concerns with the current feature set for android (and for any settings that are missing, they can be added to the configuration panel). The design is similar to the existing build process in Project Manager for consistency.

The documentation PR https://github.com/o3de/o3de.org/pull/2578 outlines everything that is currently available.

That will be the extent of my contribution however. If further features are required, I think a separate issue would need to be created for that.