Cleanups.

This commit is contained in:
Relintai 2024-05-03 16:00:11 +02:00
parent 4e41d95bf6
commit ad8f5a11a4
16 changed files with 203 additions and 373 deletions

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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**.

View File

@ -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`.

View File

@ -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.

View File

@ -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:

View File

@ -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.

View File

@ -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`.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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.