mirror of
https://github.com/Relintai/pandemonium_engine_docs.git
synced 2025-01-19 14:57:21 +01:00
Cleanups.
This commit is contained in:
parent
4e41d95bf6
commit
ad8f5a11a4
@ -1,10 +1,8 @@
|
||||
|
||||
|
||||
Exporting
|
||||
=========
|
||||
# Exporting
|
||||
|
||||
Overview
|
||||
--------
|
||||
## Overview
|
||||
|
||||
Now that you have a working game, you probably want to share your success with
|
||||
others. However, it's not practical to ask your friends to download Pandemonium
|
||||
@ -20,8 +18,7 @@ Note:
|
||||
If you haven't made "Dodge the Creeps" yourself yet, please read
|
||||
`doc_your_first_2d_game` before continuing with this tutorial.
|
||||
|
||||
Preparing the project
|
||||
---------------------
|
||||
## Preparing the project
|
||||
|
||||
In *Dodge the Creeps*, we used keyboard controls to move the player's character.
|
||||
This is fine if your game is being played on a PC platform, but on a phone
|
||||
@ -127,16 +124,14 @@ gdscript GDScript
|
||||
$CollisionShape2D.set_deferred("disabled", true)
|
||||
```
|
||||
|
||||
Setting a main scene
|
||||
--------------------
|
||||
## Setting a main scene
|
||||
|
||||
The main scene is the one that your game will start in. For this
|
||||
*Dodge the Creeps* example, in
|
||||
**Project -> Project Settings -> Application -> Run**, set **Main Scene**
|
||||
to `Main.tscn` by clicking the folder icon and selecting it.
|
||||
|
||||
Export templates
|
||||
----------------
|
||||
## Export templates
|
||||
|
||||
To export the project, you need to download the *export templates* from the
|
||||
http://pandemoniumengine.org/download. These templates are optimized versions of the engine
|
||||
@ -164,8 +159,7 @@ Note:
|
||||
Export templates are bound to a specific Pandemonium version. If you upgrade
|
||||
Pandemonium, you must download templates that match the new version.
|
||||
|
||||
Export presets
|
||||
--------------
|
||||
## Export presets
|
||||
|
||||
Next, you can configure the export settings by clicking on **Project -> Export**.
|
||||
|
||||
@ -184,14 +178,12 @@ of your game, such as an `.apk` for Android or an `.exe` for Windows.
|
||||
In the **Resources** and **Features** tabs, you can customize how the game is
|
||||
exported for each platform. We can leave those settings alone for now.
|
||||
|
||||
Exporting by platform
|
||||
---------------------
|
||||
## Exporting by platform
|
||||
|
||||
In this section, we'll walk through the process for each platform,
|
||||
including any additional software or requirements you'll need.
|
||||
|
||||
PC (Linux/macOS/Windows)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### PC (Linux/macOS/Windows)
|
||||
|
||||
Exporting PC platforms works the same across the three supported operating
|
||||
systems. Open the export window and click **Add...** to create the preset(s) you
|
||||
@ -215,8 +207,7 @@ Note:
|
||||
than the default one, you need to change it manually. See
|
||||
`doc_changing_application_icon_for_windows`.
|
||||
|
||||
Android
|
||||
~~~~~~~
|
||||
### Android
|
||||
|
||||
Tip:
|
||||
|
||||
@ -273,8 +264,7 @@ a **One-click Deploy** button to appear in Pandemonium's playtest button area:
|
||||
|
||||
Clicking this button builds the APK and copies it onto your device in one step.
|
||||
|
||||
iOS
|
||||
~~~
|
||||
### iOS
|
||||
|
||||
Note:
|
||||
|
||||
@ -302,8 +292,7 @@ The Xcode build procedure is beyond the scope of this tutorial.
|
||||
See https://help.apple.com/xcode/mac/current/#/devc8c2a6be1
|
||||
for more information.
|
||||
|
||||
HTML5 (web)
|
||||
~~~~~~~~~~~
|
||||
### HTML5 (web)
|
||||
|
||||
Click **Export Project** on the HTML5 preset. We don't need to change any
|
||||
of the default settings.
|
||||
|
@ -1,10 +1,8 @@
|
||||
|
||||
|
||||
Exporting projects
|
||||
==================
|
||||
# Exporting projects
|
||||
|
||||
Why export?
|
||||
-----------
|
||||
## Why export?
|
||||
|
||||
Originally, Pandemonium did not have any means to export projects. The
|
||||
developers would compile the proper binaries and build the packages for
|
||||
@ -14,8 +12,7 @@ When more developers (and even non-programmers) started using it, and
|
||||
when our company started taking more projects at the same time, it
|
||||
became evident that this was a bottleneck.
|
||||
|
||||
On PC
|
||||
~~~~~
|
||||
### On PC
|
||||
|
||||
Distributing a game project on PC with Pandemonium is rather easy. Drop
|
||||
the Pandemonium binary in the same directory as the `project.pandemonium` file,
|
||||
@ -32,8 +29,7 @@ tools like the editor and debugger.
|
||||
Finally, Pandemonium has a simple but efficient system for
|
||||
`creating DLCs as extra package files ( doc_exporting_pcks )`.
|
||||
|
||||
On mobile
|
||||
~~~~~~~~~
|
||||
### On mobile
|
||||
|
||||
The same scenario on mobile platforms is a little worse.
|
||||
To distribute a project on those devices, a binary for each of
|
||||
@ -52,8 +48,7 @@ that has been standardized for more than a decade, but mobile devices
|
||||
use different formats for texture compression, such as PVRTC (iOS) or
|
||||
ETC (Android).
|
||||
|
||||
Export menu
|
||||
-----------
|
||||
## Export menu
|
||||
|
||||
After many attempts at different export workflows, the current one has
|
||||
proven to work the best. At the time of this writing, not all platforms are
|
||||
@ -86,8 +81,7 @@ export for that platform until they resolve it:
|
||||
At that time, the user is expected to come back to the documentation and follow
|
||||
instructions on how to properly set up that platform.
|
||||
|
||||
Export templates
|
||||
~~~~~~~~~~~~~~~~
|
||||
### Export templates
|
||||
|
||||
Apart from setting up the platform, the export templates must be
|
||||
installed to be able to export projects. They can be obtained as a
|
||||
@ -100,9 +94,7 @@ option in the editor:
|
||||
![](img/exptemp.png)
|
||||
|
||||
|
||||
|
||||
Resource options
|
||||
~~~~~~~~~~~~~~~~
|
||||
### Resource options
|
||||
|
||||
When exporting, Pandemonium makes a list of all the files to export and then
|
||||
creates the package. There are 3 different modes for exporting:
|
||||
@ -132,8 +124,7 @@ non resource files such as `.txt`,`.json` and `.csv` to be exported with
|
||||
the project. The second filter can be used to exclude every file of a certain
|
||||
type without manually deselecting every one. For example, `.png)` files.
|
||||
|
||||
Exporting from the command line
|
||||
-------------------------------
|
||||
## Exporting from the command line
|
||||
|
||||
In production, it is useful to automate builds, and Pandemonium supports this
|
||||
with the `--export` and `--export-debug` command line parameters.
|
||||
@ -182,8 +173,7 @@ See also:
|
||||
See `doc_command_line_tutorial` for more information about using Pandemonium
|
||||
from the command line.
|
||||
|
||||
PCK versus ZIP pack file formats
|
||||
--------------------------------
|
||||
## PCK versus ZIP pack file formats
|
||||
|
||||
Each format has its upsides and downsides. PCK is the default and recommended
|
||||
format for most use cases, but you may want to use a ZIP archive instead
|
||||
|
@ -1,10 +1,8 @@
|
||||
|
||||
|
||||
Exporting packs, patches, and mods
|
||||
==================================
|
||||
# Exporting packs, patches, and mods
|
||||
|
||||
Use cases
|
||||
---------
|
||||
## Use cases
|
||||
|
||||
Oftentimes one would like to add functionality to one's game after it has been
|
||||
deployed.
|
||||
@ -18,8 +16,7 @@ Examples of this include...
|
||||
These tools help developers to extend their development beyond the initial
|
||||
release.
|
||||
|
||||
Overview of PCK files
|
||||
---------------------
|
||||
## Overview of PCK files
|
||||
|
||||
Pandemonium enables this via a feature called **resource packs** (PCK files,
|
||||
with extension `.pck`).
|
||||
@ -51,8 +48,7 @@ PCK files usually contain, but are not limited to:
|
||||
The PCK files can even be an entirely different Pandemonium project, which the
|
||||
original game loads in at runtime.
|
||||
|
||||
Generating PCK files
|
||||
--------------------
|
||||
## Generating PCK files
|
||||
|
||||
In order to pack all resources of a project into a PCK file open the project
|
||||
and go to Project/Export and click on “Export PCK/Zip”. Also make sure to have
|
||||
@ -87,8 +83,7 @@ Note:
|
||||
use a tool-build of the engine (for security), so it's best to keep
|
||||
the modding tool and game separate.
|
||||
|
||||
Opening PCK files at runtime
|
||||
----------------------------
|
||||
## Opening PCK files at runtime
|
||||
|
||||
To import a PCK file, one uses the ProjectSettings singleton. The following
|
||||
example expects a “mod.pck” file in the directory of the games executable.
|
||||
@ -124,8 +119,7 @@ Note:
|
||||
Then, before loading the resource pack, you need to load its DLL as follows:
|
||||
`Assembly.LoadFile("mod.dll")`
|
||||
|
||||
Summary
|
||||
-------
|
||||
## Summary
|
||||
|
||||
This tutorial should illustrate how easy adding mods, patches or DLC to a game
|
||||
is. The most important thing is to identify how one plans to distribute future
|
||||
|
@ -1,10 +1,7 @@
|
||||
|
||||
# Feature tags
|
||||
|
||||
Feature tags
|
||||
============
|
||||
|
||||
Introduction
|
||||
------------
|
||||
## Introduction
|
||||
|
||||
Pandemonium has a special system to tag availability of features.
|
||||
Each *feature* is represented as a string, which can refer to many of the following:
|
||||
@ -23,67 +20,40 @@ Features can be queried at run-time from the singleton API by calling:
|
||||
OS.has_feature(name)
|
||||
```
|
||||
|
||||
Default features
|
||||
----------------
|
||||
## Default features
|
||||
|
||||
Here is a list of most feature tags in Pandemonium. Keep in mind they are **case-sensitive**:
|
||||
|
||||
+-----------------+--------------------------------------------------------+
|
||||
|
||||
| **Feature tag** | **Description** |
|
||||
+=================+========================================================+
|
||||
|-----------------|--------------------------------------------------------|
|
||||
| **Android** | Running on Android |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **HTML5** | Running on HTML5 |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **JavaScript** | `JavaScript singleton ( doc_javascript_eval )` is |
|
||||
| **JavaScript** | `JavaScript singleton ( doc_javascript_eval )` is |
|
||||
| | available |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **OSX** | Running on macOS |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **iOS** | Running on iOS |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **UWP** | Running on UWP |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **Windows** | Running on Windows |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **X11** | Running on X11 (Linux/BSD desktop) |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **Server** | Running on the headless server platform |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **debug** | Running on a debug build (including the editor) |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **release** | Running on a release build |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **editor** | Running on an editor build |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **standalone** | Running on a non-editor build |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **64** | Running on a 64-bit build (any architecture) |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **32** | Running on a 32-bit build (any architecture) |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **x86_64** | Running on a 64-bit x86 build |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **x86** | Running on a 32-bit x86 build |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **arm64** | Running on a 64-bit ARM build |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **arm** | Running on a 32-bit ARM build |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **mobile** | Host OS is a mobile platform |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **pc** | Host OS is a PC platform (desktop/laptop) |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **web** | Host OS is a Web browser |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **etc** | Textures using ETC1 compression are supported |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **etc2** | Textures using ETC2 compression are supported |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **s3tc** | Textures using S3TC (DXT/BC) compression are supported |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
| **pvrtc** | Textures using PVRTC compression are supported |
|
||||
+-----------------+--------------------------------------------------------+
|
||||
|
||||
Warning:
|
||||
|
||||
@ -97,8 +67,7 @@ Warning:
|
||||
`call JavaScript code ( doc_javascript_eval )` that reads the browser's
|
||||
user agent.
|
||||
|
||||
Custom features
|
||||
---------------
|
||||
## Custom features
|
||||
|
||||
It is possible to add custom features to a build; use the relevant
|
||||
field in the *export preset* used to generate it:
|
||||
@ -113,8 +82,7 @@ Note:
|
||||
running the project from the editor, even if the export preset marked as
|
||||
**Runnable** for your current platform has custom feature tags defined.
|
||||
|
||||
Overriding project settings
|
||||
---------------------------
|
||||
## Overriding project settings
|
||||
|
||||
Features can be used to override specific configuration values in the *Project Settings*.
|
||||
This allows you to better customize any configuration when doing a build.
|
||||
@ -138,16 +106,14 @@ Note:
|
||||
tag(s) if you want them to override base project settings on all platforms
|
||||
and configurations.
|
||||
|
||||
Default overrides
|
||||
-----------------
|
||||
## Default overrides
|
||||
|
||||
There are already a lot of settings that come with overrides by default; they can be found
|
||||
in many sections of the project settings.
|
||||
|
||||
![](img/feature_tags4.png)
|
||||
|
||||
Customizing the build
|
||||
---------------------
|
||||
## Customizing the build
|
||||
|
||||
Feature tags can be used to customize a build process too, by writing a custom **ExportPlugin**.
|
||||
They are also used to specify which shared library is loaded and exported in **GDNative**.
|
||||
|
@ -1,11 +1,9 @@
|
||||
|
||||
|
||||
Exporting for Linux
|
||||
===================
|
||||
# Exporting for Linux
|
||||
|
||||
See also:
|
||||
|
||||
|
||||
This page describes how to export a Pandemonium project to Linux.
|
||||
If you're looking to compile editor or export template binaries from source instead,
|
||||
read `doc_compiling_for_x11`.
|
||||
|
@ -1,11 +1,9 @@
|
||||
|
||||
|
||||
Exporting for macOS
|
||||
===================
|
||||
# Exporting for macOS
|
||||
|
||||
See also:
|
||||
|
||||
|
||||
This page describes how to export a Pandemonium project to macOS.
|
||||
If you're looking to compile editor or export template binaries from source instead,
|
||||
read `doc_compiling_for_osx`.
|
||||
@ -13,8 +11,7 @@ See also:
|
||||
macOS apps are exported as an `.app` bundle, a folder with a specific structure which stores the executable, libraries and all the project files.
|
||||
This bundle can be exported as is, packed in a ZIP archive or DMG disk image (only supported when exporting from a computer running macOS).
|
||||
|
||||
Requirements
|
||||
------------
|
||||
## Requirements
|
||||
|
||||
- To enable code signing with Apple Developer ID and notarization, you must export from a computer running macOS with Xcode command line tools installed.
|
||||
- Ad-hoc code signing is supported on all platforms, without additional tools.
|
||||
@ -23,18 +20,15 @@ Requirements
|
||||
|
||||
Warning:
|
||||
|
||||
|
||||
Projects exported without code signing and notarization will be blocked by Gatekeeper if they are downloaded from unknown sources, see the `Running Pandemonium apps on macOS ( doc_running_on_macos )` page for more information.
|
||||
|
||||
Code signing and notarization
|
||||
-----------------------------
|
||||
## Code signing and notarization
|
||||
|
||||
By default, macOS will run only applications that are signed and notarized. If you use any other signing configuration, see `Running Pandemonium apps on macOS ( doc_running_on_macos )` for workarounds.
|
||||
|
||||
To notarize an app, you **must** have a valid `Apple Developer ID Certificate ( https://developer.apple.com/ )`.
|
||||
|
||||
If you have an Apple Developer ID Certificate
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### If you have an Apple Developer ID Certificate
|
||||
|
||||
- Export your project from a computer running macOS with Xcode command line tools installed.
|
||||
- Enable `Code Signing`, `Notarization`, `Hardened Runtime` and `Timestamp` and disable the `Debug` entitlement.
|
||||
@ -48,104 +42,99 @@ If you encounter notarization issues, see `Resolving common notarization issues
|
||||
|
||||
After notarization is completed, `staple the ticket ( https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow )` to the exported project.
|
||||
|
||||
If you do not have an Apple Developer ID Certificate
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### If you do not have an Apple Developer ID Certificate
|
||||
|
||||
Keep `Code Signing` enabled and leave the `Identity` option empty (when exporting from a computer running macOS, on other platforms this option is hidden).
|
||||
In this case Pandemonium will use a ad-hoc signature, which will make running an exported app easier for the end users, see the `Running Pandemonium apps on macOS ( doc_running_on_macos )` page for more information.
|
||||
|
||||
Signing Options
|
||||
~~~~~~~~~~~~~~~
|
||||
### Signing Options
|
||||
|
||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
||||
| Option | Description |
|
||||
+==============================+===================================================================================================+
|
||||
|------------------------------|---------------------------------------------------------------------------------------------------|
|
||||
| Enable | Enables code signing. |
|
||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
||||
| Identity | The "Full Name" or "Common Name" of the signing identity, store in the macOS keychain. [1]_ [2]_ |
|
||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
||||
| Timestamp | Requests a timestamp server to authenticate the time of signing. Required for notarization. [2]_ |
|
||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
||||
| Hardened Runtime | Enables "Hardened Runtime". Required for notarization. [2]_ |
|
||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
||||
| Replace Existing Signature | Replaces existing signatures of the GDNative libraries and embedded helper executables. |
|
||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
To notarize an app, you must enable the `Hardened Runtime` and `Timestamp`.
|
||||
|
||||
The `Hardened Runtime` and `Timestamp` options are incompatible with ad-hoc signing and will be ignored.
|
||||
|
||||
.. [1] Leave `Identity` option empty to use ad-hoc signature.
|
||||
.. [2] This option is visible only when exporting from a computer running macOS.
|
||||
[1] Leave `Identity` option empty to use ad-hoc signature.
|
||||
[2] This option is visible only when exporting from a computer running macOS.
|
||||
|
||||
Notarization Options
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
### Notarization Options
|
||||
|
||||
|
||||
| Option | Description |
|
||||
|--------------------|---------------------------------------------------------------------------------|
|
||||
| Enable | Enables automatic upload for notarization. |
|
||||
| Apple ID Name | Apple ID account name (email address) |
|
||||
| Apple ID Password | Apple ID app-specific password. |
|
||||
| | See `Using app-specific passwords ( https://support.apple.com/en-us/HT204397 )` |
|
||||
| | to enable two-factor authentication and create app password. |
|
||||
| Apple Team ID | Team ID, if your Apple ID belongs to multiple teams |
|
||||
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Option | Description |
|
||||
+====================+==============================================================================================================================================================================+
|
||||
| Enable | Enables automatic upload for notarization. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Apple ID Name | Apple ID account name (email address) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Apple ID Password | Apple ID app-specific password. See `Using app-specific passwords ( https://support.apple.com/en-us/HT204397 )` to enable two-factor authentication and create app password. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Apple Team ID | Team ID, if your Apple ID belongs to multiple teams |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
See `Notarizing macOS Software Before Distribution ( https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution?language=objc )` for more info.
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
Notarization is supported when exporting from a computer running macOS, these options are hidden on other platforms.
|
||||
|
||||
Entitlements
|
||||
------------
|
||||
## Entitlements
|
||||
|
||||
Hardened Runtime Entitlements
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### Hardened Runtime Entitlements
|
||||
|
||||
Hardened Runtime entitlements manage security options and resource access policy.
|
||||
See `Hardened Runtime ( https://developer.apple.com/documentation/security/hardened_runtime?language=objc )` for more info.
|
||||
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Entitlement | Description |
|
||||
+=======================================+==================================================================================================================================================================================================+
|
||||
| Allow JIT Code Execution [3]_ | Allows creating writable and executable memory for JIT code. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Allow Unsigned Executable Memory [3]_ | Allows creating writable and executable memory without JIT restrictions. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Allow DYLD Environment Variables [3]_ | Allows app to uss dynamic linker environment variables to inject code. f you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Disable Library Validation | Allows app to load arbitrary libraries and frameworks. Enabled it if you are using GDNative add-ons and ad-hoc signature, or want to support user-provided external add-ons. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Audio Input | Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the `privacy/microphone_usage_description` option. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Camera | Enable if you need to use the camera, if it's enabled you should also provide usage message in the `privacy/camera_usage_description` option. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Location | Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the `privacy/location_usage_description` option. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Address Book | [4]_ Enable to allow access contacts in the user's address book, if it's enabled you should also provide usage message in the `privacy/address_book_usage_description` option. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Calendars | [4]_ Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the `privacy/calendar_usage_description` option. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Photo Library | [4]_ Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the `privacy/photos_library_usage_description` option. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Apple Events | [4]_ Enable to allow app to send Apple events to other apps. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Debugging | [5]_ You can temporarily enable this entitlement to use native debugger (GDB, LLDB) with the exported app. This entitlement should be disabled for production export. |
|
||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
.. [3] The `Allow JIT Code Execution`, `Allow Unsigned Executable Memory` and `Allow DYLD Environment Variables` entitlements are always enabled for the Pandemonium Mono exports, and are not visible in the export options.
|
||||
.. [4] These features aren't supported by Pandemonium out of the box, enable them only if you are using add-ons which require them.
|
||||
.. [5] To notarize an app, you must disable the `Debugging` entitlement.
|
||||
| Entitlement | Description |
|
||||
|---------------------------------------|--------------------------------------------------------------------------|
|
||||
| Allow JIT Code Execution [3]_ | Allows creating writable and executable memory for JIT code. |
|
||||
| | If you are using add-ons with dynamic or self-modifying native |
|
||||
| | code, enable them according to the add-on documentation. |
|
||||
| Allow Unsigned Executable Memory [3]_ | Allows creating writable and executable memory without JIT |
|
||||
| | restrictions. If you are using add-ons with dynamic or self-modifying |
|
||||
| | native code, enable them according to the add-on documentation. |
|
||||
| Allow DYLD Environment Variables [3]_ | Allows app to uss dynamic linker environment variables to inject code. |
|
||||
| | If you are using add-ons with dynamic or self-modifying native code, |
|
||||
| | enable them according to the add-on documentation. |
|
||||
| Disable Library Validation | Allows app to load arbitrary libraries and frameworks. Enabled it if |
|
||||
| | you are using GDNative add-ons and ad-hoc signature, or want to support |
|
||||
| | user-provided external add-ons. |
|
||||
| Audio Input | Enable if you need to use the microphone or other audio input sources, |
|
||||
| | if it's enabled you should also provide usage message in the |
|
||||
| | `privacy/microphone_usage_description` option. |
|
||||
| Camera | Enable if you need to use the camera, if it's enabled you should also |
|
||||
| | provide usage message in the `privacy/camera_usage_description` option. |
|
||||
| Location | Enable if you need to use location information from Location Services, |
|
||||
| | if it's enabled you should also provide usage message in the |
|
||||
| | `privacy/location_usage_description` option. |
|
||||
| Address Book | [4]_ Enable to allow access contacts in the user's address book, if it's |
|
||||
| | enabled you should also provide usage message in the |
|
||||
| | `privacy/address_book_usage_description` option. |
|
||||
| Calendars | [4]_ Enable to allow access to the user's calendar, if it's enabled you |
|
||||
| | should also provide usage message in the |
|
||||
| | `privacy/calendar_usage_description` option. |
|
||||
| Photo Library | [4]_ Enable to allow access to the user's Photos library, if it's |
|
||||
| | enabled you should also provide usage message in the |
|
||||
| | `privacy/photos_library_usage_description` option. |
|
||||
| Apple Events | [4]_ Enable to allow app to send Apple events to other apps. |
|
||||
| Debugging | [5]_ You can temporarily enable this entitlement to use native debugger |
|
||||
| | (GDB, LLDB) with the exported app. This entitlement should be disabled |
|
||||
| | for production export. |
|
||||
|
||||
App Sandbox Entitlement
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
[3] The `Allow JIT Code Execution`, `Allow Unsigned Executable Memory` and `Allow DYLD Environment Variables` entitlements are always enabled for the Pandemonium Mono exports, and are not visible in the export options.
|
||||
[4] These features aren't supported by Pandemonium out of the box, enable them only if you are using add-ons which require them.
|
||||
[5] To notarize an app, you must disable the `Debugging` entitlement.
|
||||
|
||||
### App Sandbox Entitlement
|
||||
|
||||
The App Sandbox restricts access to user data, networking and devices.
|
||||
Sandboxed apps can't access most of the file system, can't use custom file dialogs and execute binaries (using `OS.execute` and `OS.create_process`) outside the `.app` bundle.
|
||||
@ -153,35 +142,28 @@ See `App Sandbox ( https://developer.apple.com/documentation/security/app_sandbo
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
To distribute an app through the App Store, you must enable the App Sandbox.
|
||||
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Entitlement | Description |
|
||||
+===================================+======================================================================================================================================+
|
||||
| Enabled | Enables App Sandbox. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Network Server | Enable to allow app to listen for incoming network connections. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Network Client | Enable to allow app to establish outgoing network connections. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Device USB | Enable to allow app to interact with USB devices. This entitlement is required to use wired controllers. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Device Bluetooth | Enable to allow app to interact with Bluetooth devices. This entitlement is required to use wireless controllers. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Files Downloads [6]_ | Allows read or write access to the user's "Downloads" folder. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Files Pictures [6]_ | Allows read or write access to the user's "Pictures" folder. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Files Music [6]_ | Allows read or write access to the user's "Music" folder. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Files Movies [6]_ | Allows read or write access to the user's "Movies" folder. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Files User Selected [6]_ | Allows read or write access to arbitrary folder. To gain access, a folder must be selected from the native file dialog by the user. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Helper Executable | List of helper executables to embedded to the app bundle. Sandboxed app are limited to execute only these executable. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
.. [6] You can optionally provide usage messages for various folders in the `privacy/*_folder_usage_description` options.
|
||||
| Entitlement | Description |
|
||||
|-----------------------------------|-----------------------------------------------------------------------------|
|
||||
| Enabled | Enables App Sandbox. |
|
||||
| Network Server | Enable to allow app to listen for incoming network connections. |
|
||||
| Network Client | Enable to allow app to establish outgoing network connections. |
|
||||
| Device USB | Enable to allow app to interact with USB devices. This |
|
||||
| | entitlement is required to use wired controllers. |
|
||||
| Device Bluetooth | Enable to allow app to interact with Bluetooth devices. |
|
||||
| | This entitlement is required to use wireless controllers. |
|
||||
| Files Downloads [6]_ | Allows read or write access to the user's "Downloads" folder. |
|
||||
| Files Pictures [6]_ | Allows read or write access to the user's "Pictures" folder. |
|
||||
| Files Music [6]_ | Allows read or write access to the user's "Music" folder. |
|
||||
| Files Movies [6]_ | Allows read or write access to the user's "Movies" folder. |
|
||||
| Files User Selected [6]_ | Allows read or write access to arbitrary folder. To gain |
|
||||
| | access, a folder must be selected from the native file dialog by the user. |
|
||||
| Helper Executable | List of helper executables to embedded to the app bundle. |
|
||||
| | Sandboxed app are limited to execute only these executable. |
|
||||
|
||||
|
||||
[6] You can optionally provide usage messages for various folders in the `privacy/*_folder_usage_description` options.
|
||||
|
||||
You can override default entitlements by selecting custom entitlements file, in this case all other entitlement are ignored.
|
||||
|
@ -1,11 +1,8 @@
|
||||
|
||||
|
||||
Running Pandemonium apps on macOS
|
||||
===========================
|
||||
# Running Pandemonium apps on macOS
|
||||
|
||||
See also:
|
||||
|
||||
|
||||
This page covers running Pandemonium projects on macOS.
|
||||
If you haven't exported your project yet, read `doc_exporting_for_macos` first.
|
||||
|
||||
@ -13,22 +10,18 @@ By default, macOS will run only applications that are signed and notarized.
|
||||
|
||||
Depending on the way a macOS app is signed and distributed, the following scenarios are possible:
|
||||
|
||||
App is signed, notarized and distributed via App Store
|
||||
------------------------------------------------------
|
||||
## App is signed, notarized and distributed via App Store
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
App developers need to join the Apple Developer Program, and configure signing and notarization options during export, then upload the app to the App Store.
|
||||
|
||||
The app should run out of the box, without extra user interaction required.
|
||||
|
||||
App is signed, notarized and distributed outside App Store
|
||||
----------------------------------------------------------
|
||||
## App is signed, notarized and distributed outside App Store
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
App developers need to join the Apple Developer Program, and configure signing and notarization options during export, then distribute the app as ".DMG" or ".ZIP" archive.
|
||||
|
||||
When you run the app for the first time, the following dialog is displayed:
|
||||
@ -45,12 +38,10 @@ To allow third-party apps, open `System Preferences`, click `Security & Privacy`
|
||||
|
||||
![](img/sys_pref_0.png)
|
||||
|
||||
App is signed (including ad-hoc signatures) but not notarized
|
||||
-------------------------------------------------------------
|
||||
## App is signed (including ad-hoc signatures) but not notarized
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
App developer used self-signed certificate or ad-hoc signing (default Pandemonium behavior for exported project).
|
||||
|
||||
When you run the app for the first time, the following dialog is displayed:
|
||||
@ -73,12 +64,10 @@ To run this app, you can temporarily override Gatekeeper:
|
||||
|
||||
* Enter your password if you're prompted.
|
||||
|
||||
App is not-signed, executable is linker-signed
|
||||
----------------------------------------------
|
||||
## App is not-signed, executable is linker-signed
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
App is built using official export templates, but it is not signed.
|
||||
|
||||
When you run the app for the first time, the following dialog is displayed:
|
||||
@ -95,12 +84,10 @@ To run this app, you should remove the quarantine extended file attribute manual
|
||||
|
||||
* Run the command `xattr -dr com.apple.quarantine "Unsigned Game.app"` (including quotation marks and `.app` extension).
|
||||
|
||||
Neither app nor executable is signed (relevant for Apple Silicon macs only)
|
||||
---------------------------------------------------------------------------
|
||||
## Neither app nor executable is signed (relevant for Apple Silicon macs only)
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
App is built using custom export templates, compiled using OSXCross, and it is not signed at all.
|
||||
|
||||
When you run the app for the first time, the following dialog is displayed:
|
||||
|
@ -1,11 +1,8 @@
|
||||
|
||||
|
||||
Exporting for Windows
|
||||
=====================
|
||||
# Exporting for Windows
|
||||
|
||||
See also:
|
||||
|
||||
|
||||
This page describes how to export a Pandemonium project to Windows.
|
||||
If you're looking to compile editor or export template binaries from source instead,
|
||||
read `doc_compiling_for_windows`.
|
||||
@ -19,15 +16,13 @@ system. When exporting for Windows, the exporter takes all the project files and
|
||||
creates a `data.pck` file. This file is bundled with a specially optimized
|
||||
binary that is smaller, faster and does not contain the editor and debugger.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
## Requirements
|
||||
|
||||
- To enable code signing, you must have the `Windows 10 SDK` (on Windows) or `osslsigncode ( https://github.com/mtrojnar/osslsigncode )` (on any other OS) installed.
|
||||
- Download the Pandemonium export templates. Use the Pandemonium menu: `Editor > Manage Export Templates`.
|
||||
|
||||
Warning:
|
||||
|
||||
|
||||
If you export for Windows with embedded PCK files, you will not be able to
|
||||
sign the program as it will break.
|
||||
|
||||
|
@ -1,14 +1,11 @@
|
||||
|
||||
|
||||
Changing application icon for Windows
|
||||
=====================================
|
||||
# Changing application icon for Windows
|
||||
|
||||
By default, the exported project's icon will be the Pandemonium icon.
|
||||
You will most likely want to change that for your project. There are two types
|
||||
of icons that can be changed on Windows: the file icon and the taskbar icon.
|
||||
|
||||
Creating an ICO file
|
||||
--------------------
|
||||
## Creating an ICO file
|
||||
|
||||
Windows does not use formats such as png or jpg for application icons. Instead,
|
||||
it uses a Windows-only format called ICO. You can create your application icon
|
||||
@ -22,18 +19,17 @@ It is also possible to convert a PNG image to an hiDPI-friendly ICO file
|
||||
using this `ImageMagick ( https://www.imagemagick.org/ )` command:
|
||||
|
||||
```
|
||||
magick convert icon.png) -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
||||
magick convert icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
||||
```
|
||||
|
||||
Depending on which version of ImageMagick you installed, you might need to leave out the `magick` and run this command instead:
|
||||
|
||||
```
|
||||
convert icon.png) -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
||||
convert icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
||||
```
|
||||
|
||||
Warning:
|
||||
|
||||
|
||||
For the ICO file to effectively replace the default Pandemonium icon, it must
|
||||
contain *all* the sizes included in the default Pandemonium icon: 16×16, 32×32,
|
||||
48×48, 64×64, 128×128, 256×256. If the ICO file does not contain all the sizes,
|
||||
@ -41,8 +37,7 @@ Warning:
|
||||
|
||||
The above ImageMagick command takes this into account.
|
||||
|
||||
Changing the taskbar icon
|
||||
-------------------------
|
||||
## Changing the taskbar icon
|
||||
|
||||
The taskbar icon is the icon that shows up on the taskbar when your project
|
||||
is running.
|
||||
@ -59,8 +54,7 @@ This setting only changes the icon for your exported game on Windows.
|
||||
To set the icon for macOS, use `Macos Native Icon`. And for any other platform,
|
||||
use the `Icon` setting.
|
||||
|
||||
Changing the file icon
|
||||
----------------------
|
||||
## Changing the file icon
|
||||
|
||||
In Pandemonium 3.5 and later, you can change the file icon without
|
||||
external tools using `pandemoniumicon ( https://github.com/pkowal1982/pandemoniumicon )`.
|
||||
@ -69,7 +63,6 @@ an embedded PCK.
|
||||
|
||||
Warning:
|
||||
|
||||
|
||||
There are `known issues ( https://github.com/Relintai/pandemonium_engine/issues/33466 )`
|
||||
when changing the application icon in executables that embed a PCK file.
|
||||
It's recommended to avoid using rcedit for now if you choose to enable the
|
||||
@ -92,7 +85,6 @@ Navigate to and select the rcedit executable.
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
Linux and macOS users will also need to install
|
||||
`WINE ( https://www.winehq.org/ )` to use rcedit.
|
||||
|
||||
@ -118,8 +110,7 @@ Note:
|
||||
Once this is done, you can specify your export templates as custom export
|
||||
templates in your project's Windows export preset.
|
||||
|
||||
Testing the result
|
||||
------------------
|
||||
## Testing the result
|
||||
|
||||
You can now export the project. If it worked correctly, you should see this:
|
||||
|
||||
@ -127,7 +118,6 @@ You can now export the project. If it worked correctly, you should see this:
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
If your icon isn't showing up properly, on Windows 10, try clearing the icon
|
||||
cache. To do so, open the **Run** dialog and enter `ie4uinit.exe
|
||||
-ClearIconCache` or `ie4uinit.exe -show`.
|
||||
|
@ -1,11 +1,8 @@
|
||||
|
||||
|
||||
Exporting for Universal Windows Platform
|
||||
========================================
|
||||
# Exporting for Universal Windows Platform
|
||||
|
||||
See also:
|
||||
|
||||
|
||||
This page describes how to export a Pandemonium project to UWP.
|
||||
If you're looking to compile export template binaries from source instead,
|
||||
read `doc_compiling_for_uwp`.
|
||||
@ -21,8 +18,7 @@ external tools.
|
||||
Also, make sure the Publisher Name you set when exporting the package matches
|
||||
the name used on the certificate.
|
||||
|
||||
Limitations on Xbox One
|
||||
-----------------------
|
||||
## Limitations on Xbox One
|
||||
|
||||
As described in the `UWP documentation ( https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/system-resource-allocation )`:
|
||||
|
||||
@ -38,8 +34,7 @@ As described in the `UWP documentation ( https://docs.microsoft.com/en-us/window
|
||||
|
||||
- Exceeding these memory limitations will cause allocation failures and the application will crash.
|
||||
|
||||
Creating a signing certificate
|
||||
------------------------------
|
||||
## Creating a signing certificate
|
||||
|
||||
This requires the `MakeCert.exe` and `Pvk2Pfx.exe` tools, which come with
|
||||
the Windows SDK. If you use Visual Studio, you can open one of its Developer
|
||||
@ -73,8 +68,7 @@ app. Open the Command Prompt as Administrator and run the following command:
|
||||
Certutil -addStore TrustedPeople MyKey.cer
|
||||
```
|
||||
|
||||
Setting up automatic signing
|
||||
----------------------------
|
||||
## Setting up automatic signing
|
||||
|
||||
To setup automatic signing on export you need to go to Editor Settings > Export > Uwp.
|
||||
From there you need to click on the folder for `Signtool`, and navigate to
|
||||
@ -96,8 +90,7 @@ following command.
|
||||
|
||||
SignTool sign /fd SHA256 /a /f MyKey.pfx /p pfxPassword package.appx
|
||||
|
||||
Installing the package
|
||||
----------------------
|
||||
## Installing the package
|
||||
|
||||
As of the Windows 10 Anniversary Update, you are able to install packages simply by
|
||||
double clicking the `.appx` file from Windows Explorer.
|
||||
|
@ -1,11 +1,8 @@
|
||||
|
||||
|
||||
Exporting for iOS
|
||||
=================
|
||||
# Exporting for iOS
|
||||
|
||||
See also:
|
||||
|
||||
|
||||
This page describes how to export a Pandemonium project to iOS.
|
||||
If you're looking to compile export template binaries from source instead,
|
||||
read `doc_compiling_for_ios`.
|
||||
@ -14,14 +11,12 @@ These are the steps to load a Pandemonium project in Xcode. This allows you to
|
||||
build and deploy to an iOS device, build a release for the App Store, and
|
||||
do everything else you can normally do with Xcode.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
## Requirements
|
||||
|
||||
- You must export for iOS from a computer running macOS with Xcode installed.
|
||||
- Download the Pandemonium export templates. Use the Pandemonium menu: Editor > Manage Export Templates
|
||||
|
||||
Export a Pandemonium project to Xcode
|
||||
-------------------------------
|
||||
## Export a Pandemonium project to Xcode
|
||||
|
||||
In the Pandemonium editor, open the **Export** window from the **Project** menu. When the
|
||||
Export window opens, click **Add..** and select **iOS**.
|
||||
@ -52,8 +47,7 @@ When the export completes, the output folder should look like this:
|
||||
Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy
|
||||
like any other iOS app.
|
||||
|
||||
Active development considerations
|
||||
---------------------------------
|
||||
## Active development considerations
|
||||
|
||||
The above method creates an exported project that you can build for
|
||||
release, but you have to re-export every time you make a change in Pandemonium.
|
||||
@ -70,8 +64,7 @@ Note:
|
||||
**pandemonium_project_to_export** must not be the same as **exported_xcode_project_name**
|
||||
to prevent signing issues in Xcode.
|
||||
|
||||
Steps to link a Pandemonium project folder to Xcode
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### Steps to link a Pandemonium project folder to Xcode
|
||||
|
||||
1. Start from an exported iOS project (follow the steps above).
|
||||
2. In Finder, drag the Pandemonium project folder into the Xcode file browser.
|
||||
@ -97,14 +90,12 @@ you will be able to continue to edit your Pandemonium project in its current loc
|
||||
That's it! You can now edit your project in the Pandemonium editor and build it
|
||||
in Xcode when you want to run it on a device.
|
||||
|
||||
Plugins for iOS
|
||||
---------------
|
||||
## Plugins for iOS
|
||||
|
||||
Special iOS plugins can be used in Pandemonium. Check out the
|
||||
`doc_plugins_for_ios` page.
|
||||
|
||||
Troubleshooting rendering issues
|
||||
--------------------------------
|
||||
## Troubleshooting rendering issues
|
||||
|
||||
To improve out-of-the-box performance on mobile devices, Pandemonium automatically
|
||||
uses low-end-friendly settings by default on both Android and iOS.
|
||||
|
@ -1,12 +1,8 @@
|
||||
|
||||
|
||||
Exporting for Android
|
||||
=====================
|
||||
|
||||
# Exporting for Android
|
||||
|
||||
See also:
|
||||
|
||||
|
||||
This page describes how to export a Pandemonium project to Android.
|
||||
If you're looking to compile export template binaries from source instead,
|
||||
read `doc_compiling_for_android`.
|
||||
@ -14,13 +10,11 @@ See also:
|
||||
Exporting for Android has fewer requirements than compiling Pandemonium for Android.
|
||||
The following steps detail what is needed to set up the Android SDK and the engine.
|
||||
|
||||
Install OpenJDK 11
|
||||
------------------
|
||||
## Install OpenJDK 11
|
||||
|
||||
Download and install `OpenJDK 11 ( https://adoptium.net/?variant=openjdk11 )`.
|
||||
|
||||
Download the Android SDK
|
||||
------------------------
|
||||
## Download the Android SDK
|
||||
|
||||
Download and install the Android SDK.
|
||||
|
||||
@ -51,8 +45,7 @@ Note:
|
||||
**do not use an Android SDK provided by your distribution's repositories as it will often be outdated**.
|
||||
|
||||
|
||||
Create a debug.keystore
|
||||
-----------------------
|
||||
## Create a debug.keystore
|
||||
|
||||
Android needs a debug keystore file to install to devices and distribute
|
||||
non-release APKs. If you have used the SDK before and have built
|
||||
@ -68,8 +61,7 @@ the JDK can be used for this purpose:
|
||||
|
||||
This will create a `debug.keystore` file in your current directory. You should move it to a memorable location such as `%USERPROFILE%\.android\`, because you will need its location in a later step. For more information on `keytool` usage, see `this Q&A article ( https://pandemoniumengine.org/qa/21349/jdk-android-file-missing )`.
|
||||
|
||||
Setting it up in Pandemonium
|
||||
----------------------
|
||||
## Setting it up in Pandemonium
|
||||
|
||||
Enter the Editor Settings screen. This screen contains the editor
|
||||
settings for the user account in the computer (it's independent of the
|
||||
@ -93,7 +85,6 @@ Once that is configured, everything is ready to export to Android!
|
||||
|
||||
Note:
|
||||
|
||||
|
||||
If you get an error saying *"Could not install to device."*, make sure
|
||||
you do not have an application with the same Android package name already
|
||||
installed on the device (but signed with a different key).
|
||||
@ -103,8 +94,7 @@ Note:
|
||||
the application in question from the Android device before exporting to
|
||||
Android again.
|
||||
|
||||
Providing launcher icons
|
||||
------------------------
|
||||
## Providing launcher icons
|
||||
|
||||
Launcher icons are used by Android launcher apps to represent your application to users. Pandemonium only requires high-resolution icons (for `xxxhdpi` density screens) and will automatically generate lower-resolution variants.
|
||||
|
||||
@ -127,8 +117,7 @@ If you don't provide some of the requested icons, Pandemonium will replace them
|
||||
It's highly recommended to provide all the requested icons with their specified resolutions.
|
||||
This way, your application will look great on all Android devices and versions.
|
||||
|
||||
Exporting for Google Play Store
|
||||
-------------------------------
|
||||
## Exporting for Google Play Store
|
||||
|
||||
Uploading an APK to Google's Play Store requires you to sign using a non-debug
|
||||
keystore file; such file can be generated like this:
|
||||
@ -156,8 +145,7 @@ Don't forget to uncheck the **Export With Debug** checkbox while exporting.
|
||||
|
||||
![](img/export-with-debug-button.png)
|
||||
|
||||
Optimizing the APK size
|
||||
-----------------------
|
||||
## Optimizing the APK size
|
||||
|
||||
By default, the APK will contain native libraries for both ARMv7 and ARMv8
|
||||
architectures. This increases its size significantly. To create a smaller APK,
|
||||
@ -177,8 +165,7 @@ You can optimize the size further by compiling an Android export template with
|
||||
only the features you need. See `doc_optimizing_for_size` for more
|
||||
information.
|
||||
|
||||
Troubleshooting rendering issues
|
||||
--------------------------------
|
||||
## Troubleshooting rendering issues
|
||||
|
||||
To improve out-of-the-box performance on mobile devices, Pandemonium automatically
|
||||
uses low-end-friendly settings by default on both Android and iOS.
|
||||
|
@ -1,7 +1,6 @@
|
||||
|
||||
|
||||
Custom builds for Android
|
||||
=========================
|
||||
# Custom builds for Android
|
||||
|
||||
Pandemonium provides the option to use custom build Android templates. Instead of
|
||||
using the already pre-built template that ships with Pandemonium, an actual Android
|
||||
@ -17,8 +16,7 @@ Configuring the custom build is a fairly straightforward process. But first
|
||||
you need to follow the steps in `exporting for android( doc_exporting_for_android )`
|
||||
up to **Setting it up in Pandemonium**. After doing that, follow the steps below.
|
||||
|
||||
Set up the custom build environment
|
||||
-----------------------------------
|
||||
## Set up the custom build environment
|
||||
|
||||
Go to the Project menu, and install the *Custom Build* template:
|
||||
|
||||
@ -32,8 +30,7 @@ Editing these files is not needed unless you want to `create
|
||||
your own add-ons( doc_android_plugin )`, or you really need to modify the project.
|
||||
|
||||
|
||||
Enabling the custom build and exporting
|
||||
---------------------------------------
|
||||
## Enabling the custom build and exporting
|
||||
|
||||
When setting up the Android project in the **Project > Export** dialog,
|
||||
**Custom Build** needs to be enabled:
|
||||
|
@ -1,11 +1,9 @@
|
||||
|
||||
|
||||
Exporting for the Web
|
||||
=====================
|
||||
# Exporting for the Web
|
||||
|
||||
See also:
|
||||
|
||||
|
||||
This page describes how to export a Pandemonium project to HTML5.
|
||||
If you're looking to compile editor or export template binaries from source instead,
|
||||
read `doc_compiling_for_web`.
|
||||
@ -15,18 +13,21 @@ This requires support for `WebAssembly
|
||||
( https://webassembly.org/ )` and `WebGL ( https://www.khronos.org/webgl/ )`
|
||||
in the user's browser.
|
||||
|
||||
.. important:: Use the browser-integrated developer console, usually opened
|
||||
Important:
|
||||
|
||||
Use the browser-integrated developer console, usually opened
|
||||
with :kbd:`F12`, to view **debug information** like JavaScript,
|
||||
engine, and WebGL errors.
|
||||
|
||||
.. attention:: `There are significant bugs when running HTML5 projects on iOS
|
||||
Attention:
|
||||
|
||||
`There are significant bugs when running HTML5 projects on iOS
|
||||
( https://github.com/Relintai/pandemonium_engine/issues?q=is:issue+is:open+label:platform:html5+ios )`
|
||||
(regardless of the browser). We recommend using
|
||||
`iOS' native export functionality ( doc_exporting_for_ios )`
|
||||
instead, as it will also result in better performance.
|
||||
|
||||
WebGL version
|
||||
-------------
|
||||
## WebGL version
|
||||
|
||||
Depending on your choice of renderer, Pandemonium can target WebGL 1.0 (*GLES2*) or
|
||||
WebGL 2.0 (*GLES3*).
|
||||
@ -43,10 +44,7 @@ for **Safari**. WebGL 2.0 support is coming in Safari 15 for macOS, and is not
|
||||
available yet for any **iOS** browser (all WebKit-based like Safari).
|
||||
See `Can I use WebGL 2.0 ( https://caniuse.com/webgl2 )` for details.
|
||||
|
||||
|
||||
|
||||
Export options
|
||||
--------------
|
||||
## Export options
|
||||
|
||||
If a runnable web export template is available, a button appears between the
|
||||
*Stop scene* and *Play edited Scene* buttons in the editor to quickly open the
|
||||
@ -75,7 +73,9 @@ the default HTML page. See `doc_customizing_html5_shell`.
|
||||
HTML page. This allows to, for example, load webfonts and third-party
|
||||
JavaScript APIs, include CSS, or run JavaScript code.
|
||||
|
||||
.. important:: Each project must generate their own HTML file. On export,
|
||||
Important:
|
||||
|
||||
Each project must generate their own HTML file. On export,
|
||||
several text placeholders are replaced in the generated HTML
|
||||
file specifically for the given export options. Any direct
|
||||
modifications to that HTML file will be lost in future exports.
|
||||
@ -86,16 +86,15 @@ Warning:
|
||||
**Export types** other then *Regular* are not yet supported by the
|
||||
C# version.
|
||||
|
||||
Limitations
|
||||
-----------
|
||||
## Limitations
|
||||
|
||||
For security and privacy reasons, many features that work effortlessly on
|
||||
native platforms are more complicated on the web platform. Following is a list
|
||||
of limitations you should be aware of when porting a Pandemonium game to the web.
|
||||
|
||||
Important:
|
||||
|
||||
|
||||
.. important:: Browser vendors are making more and more functionalities only
|
||||
Browser vendors are making more and more functionalities only
|
||||
available in `secure contexts ( https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts )`,
|
||||
this means that such features are only be available if the web
|
||||
page is served via a secure HTTPS connection (localhost is
|
||||
@ -107,8 +106,7 @@ Tip:
|
||||
to see if the functionality you're interested in has an issue yet. If
|
||||
not, open one to communicate your interest.
|
||||
|
||||
Using cookies for data persistence
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### Using cookies for data persistence
|
||||
|
||||
Users must **allow cookies** (specifically IndexedDB) if persistence of the
|
||||
`user://` file system is desired. When playing a game presented in an
|
||||
@ -119,8 +117,7 @@ The method `OS.is_userfs_persistent()` can be used to check if the
|
||||
`user://` file system is persistent, but can give false positives in some
|
||||
cases.
|
||||
|
||||
Background processing
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
### Background processing
|
||||
|
||||
The project will be paused by the browser when the tab is no longer the active
|
||||
tab in the user's browser. This means functions such as `process()` and
|
||||
@ -132,8 +129,7 @@ This limitation does not apply to unfocused browser *windows*. Therefore, on the
|
||||
user's side, this can be worked around by running the project in a separate
|
||||
*window* instead of a separate tab.
|
||||
|
||||
Threads
|
||||
~~~~~~~
|
||||
### Threads
|
||||
|
||||
As mentioned `above ( doc_javascript_export_options )` multi-threading is
|
||||
only available if the appropriate **Export Type** is set and support for it
|
||||
@ -144,8 +140,7 @@ Warning:
|
||||
Browsers also require that the web page is served with specific
|
||||
`cross-origin isolation headers ( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy )`.
|
||||
|
||||
GDNative
|
||||
~~~~~~~~
|
||||
### GDNative
|
||||
|
||||
As mentioned `above ( doc_javascript_export_options )` GDNative is only
|
||||
available if the appropriate **Export Type** is set.
|
||||
@ -153,8 +148,7 @@ available if the appropriate **Export Type** is set.
|
||||
The export will also copy the required GDNative `.wasm` files to the output
|
||||
folder (and must be uploaded to your server along with your game).
|
||||
|
||||
Full screen and mouse capture
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### Full screen and mouse capture
|
||||
|
||||
Browsers do not allow arbitrarily **entering full screen**. The same goes for
|
||||
**capturing the cursor**. Instead, these actions have to occur as a response to
|
||||
@ -167,8 +161,7 @@ For the same reason, the full screen project setting doesn't work unless the
|
||||
engine is started from within a valid input event handler. This requires
|
||||
`customization of the HTML page ( doc_customizing_html5_shell )`.
|
||||
|
||||
Audio
|
||||
~~~~~
|
||||
### Audio
|
||||
|
||||
Chrome restricts how websites may play audio. It may be necessary for the
|
||||
player to click or tap or press a key to enable audio.
|
||||
@ -181,8 +174,7 @@ Warning:
|
||||
Access to microphone requires a
|
||||
`secure context ( doc_javascript_secure_contexts )`.
|
||||
|
||||
Networking
|
||||
~~~~~~~~~~
|
||||
### Networking
|
||||
|
||||
Low level networking is not implemented due to lacking support in browsers.
|
||||
|
||||
@ -200,8 +192,7 @@ The HTTP classes also have several restrictions on the HTML5 platform:
|
||||
- Host verification cannot be disabled
|
||||
- Subject to `same-origin policy ( https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy )`
|
||||
|
||||
Clipboard
|
||||
~~~~~~~~~
|
||||
### Clipboard
|
||||
|
||||
Clipboard synchronization between engine and the operating system requires a
|
||||
browser supporting the `Clipboard API ( https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API )`,
|
||||
@ -211,8 +202,7 @@ accessed from GDScript.
|
||||
Warning:
|
||||
Requires a `secure context ( doc_javascript_secure_contexts )`.
|
||||
|
||||
Gamepads
|
||||
~~~~~~~~
|
||||
### Gamepads
|
||||
|
||||
Gamepads will not be detected until one of their button is pressed. Gamepads
|
||||
might have the wrong mapping depending on the browser/OS/gamepad combination,
|
||||
@ -223,21 +213,18 @@ to remap them based on model/vendor/OS due to privacy considerations.
|
||||
Warning:
|
||||
Requires a `secure context ( doc_javascript_secure_contexts )`.
|
||||
|
||||
Boot splash is not displayed
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### Boot splash is not displayed
|
||||
|
||||
The default HTML page does not display the boot splash while loading. However,
|
||||
the image is exported as a PNG file, so `custom HTML pages ( doc_customizing_html5_shell )`
|
||||
can display it.
|
||||
|
||||
Shader language limitations
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### Shader language limitations
|
||||
|
||||
When exporting a GLES2 project to HTML5, WebGL 1.0 will be used. WebGL 1.0
|
||||
doesn't support dynamic loops, so shaders using those won't work there.
|
||||
|
||||
Serving the files
|
||||
-----------------
|
||||
## Serving the files
|
||||
|
||||
Exporting for the web generates several files to be served from a web server,
|
||||
including a default HTML page for presentation. A custom HTML file can be
|
||||
@ -263,7 +250,9 @@ The `.pck` file is binary, usually delivered with the MIME-type
|
||||
:mimetype:`application/octet-stream`. The `.wasm` file is delivered as
|
||||
:mimetype:`application/wasm`.
|
||||
|
||||
.. caution:: Delivering the WebAssembly module (`.wasm`) with a MIME-type
|
||||
Caution:
|
||||
|
||||
Delivering the WebAssembly module (`.wasm`) with a MIME-type
|
||||
other than :mimetype:`application/wasm` can prevent some start-up
|
||||
optimizations.
|
||||
|
||||
@ -277,10 +266,7 @@ of its original size with gzip compression.
|
||||
**Hosts that don't provide on-the-fly compression:** itch.io, GitLab Pages
|
||||
(`supports manual gzip precompression ( https://webd97.de/post/gitlab-pages-compression/ )`)
|
||||
|
||||
|
||||
|
||||
Calling JavaScript from script
|
||||
------------------------------
|
||||
## Calling JavaScript from script
|
||||
|
||||
In web builds, the `JavaScript` singleton is implemented. It offers a single
|
||||
method called `eval` that works similarly to the JavaScript function of the
|
||||
|
@ -1,13 +1,10 @@
|
||||
|
||||
|
||||
Exporting for dedicated servers
|
||||
===============================
|
||||
# Exporting for dedicated servers
|
||||
|
||||
If you want to run a dedicated server for your project on a machine that doesn't
|
||||
have a GPU or display server available, you'll need to use a server build of Pandemonium.
|
||||
|
||||
Platform support
|
||||
----------------
|
||||
## Platform support
|
||||
|
||||
- **Linux:** `Download an official Linux server binary ( https://pandemoniumengine.org/download/server )`.
|
||||
To compile a server binary from source, follow instructions in
|
||||
@ -20,8 +17,7 @@ Platform support
|
||||
|
||||
If your project uses C#, you'll have to use a Mono-enabled server binary.
|
||||
|
||||
"Headless" versus "server" binaries
|
||||
-----------------------------------
|
||||
## "Headless" versus "server" binaries
|
||||
|
||||
The `server download page ( https://pandemoniumengine.org/download/server )`
|
||||
offers two kinds of binaries with several differences.
|
||||
@ -33,8 +29,7 @@ offers two kinds of binaries with several differences.
|
||||
used for exporting projects. This binary *can* be used to run dedicated
|
||||
servers, but it's not recommended as it's larger and less optimized.
|
||||
|
||||
Exporting a PCK file
|
||||
--------------------
|
||||
## Exporting a PCK file
|
||||
|
||||
There are two ways to export a project for a server:
|
||||
|
||||
@ -72,8 +67,7 @@ Note:
|
||||
client and dedicated server build. This can be useful if you want to ship a
|
||||
single archive that can be used both as a client and dedicated server.
|
||||
|
||||
Preparing the server distribution
|
||||
---------------------------------
|
||||
## Preparing the server distribution
|
||||
|
||||
After downloading or compiling a server binary, you should now place it in the
|
||||
same folder as the PCK file you've exported. The server binary should have the
|
||||
@ -86,8 +80,7 @@ different name, you can specify the path to the PCK file using the
|
||||
./pandemonium-server --main-pack my_project.pck
|
||||
```
|
||||
|
||||
Starting the dedicated server
|
||||
-----------------------------
|
||||
## Starting the dedicated server
|
||||
|
||||
If both your client and server are part of the same Pandemonium project, you will have
|
||||
to add a way to start the server directly using a command-line argument. This
|
||||
@ -118,8 +111,7 @@ If your client and server are separate Pandemonium projects, your server should
|
||||
likely be configured in a way where running the main scene starts a server
|
||||
automatically.
|
||||
|
||||
Next steps
|
||||
----------
|
||||
## Next steps
|
||||
|
||||
On Linux, to make your dedicated server restart after a crash or system reboot,
|
||||
you can
|
||||
|
@ -1,10 +1,7 @@
|
||||
|
||||
# One-click deploy
|
||||
|
||||
One-click deploy
|
||||
================
|
||||
|
||||
What is one-click deploy?
|
||||
-------------------------
|
||||
## What is one-click deploy?
|
||||
|
||||
One-click deploy is a feature that is available once a platform is properly
|
||||
configured and a supported device is connected to the computer. Since things can
|
||||
@ -26,8 +23,7 @@ Note:
|
||||
runnable. If you mark a second preset in a given platform as runnable, the
|
||||
other preset will no longer be marked as runnable.
|
||||
|
||||
Supported platforms
|
||||
-------------------
|
||||
## Supported platforms
|
||||
|
||||
- **Android:** Exports the project with debugging enabled and runs it on the
|
||||
connected device.
|
||||
@ -43,8 +39,7 @@ Supported platforms
|
||||
|
||||
Support for more platforms such as iOS is planned.
|
||||
|
||||
Using one-click deploy
|
||||
----------------------
|
||||
## Using one-click deploy
|
||||
|
||||
- If deploying to Android, enable developer mode on your mobile device
|
||||
then enable USB debugging in the device's settings.
|
||||
@ -60,11 +55,9 @@ Using one-click deploy
|
||||
|
||||
![](img/oneclick.png)
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
## Troubleshooting
|
||||
|
||||
Android
|
||||
^^^^^^^
|
||||
### Android
|
||||
|
||||
If you can't see the device in the list of devices when running the
|
||||
`adb devices` command in a terminal, it will not be visible by Pandemonium either.
|
||||
|
Loading…
Reference in New Issue
Block a user