Skip to content

Commit

Permalink
Site changes [skip-ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
defold-services committed Oct 15, 2024
1 parent d7767e5 commit 5968e7e
Show file tree
Hide file tree
Showing 26 changed files with 86,599 additions and 86,815 deletions.
4 changes: 2 additions & 2 deletions manuals/bob.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ usage: bob [options] [commands]
-mp,--mobileprovisioning <arg> mobileprovisioning profile (iOS)
--ne-build-dir <arg> Specify a folder with includes or
source, to build a specific
library. More than one occurrance
library. More than one occurrence
is allowed.
--ne-output-name <arg> Specify a library target name
-o,--output <arg> Output directory. Default is
Expand All @@ -115,7 +115,7 @@ usage: bob [options] [commands]
--resource-cache-remote-user <arg> Username to authenticate access
to the remote resource cache.
--settings <arg> Path to a game project settings
file. More than one occurrance is
file. More than one occurrence is
allowed. The settings files are
applied left to right.
--strip-executable Strip the dmengine of debug
Expand Down
2 changes: 1 addition & 1 deletion manuals/building-blocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ Here the sprite image of the prototype file is changed and immediately all insta

## Childing game objects

In a collection file, you can build hierarchies of game objects so that one or more game objects are children to a single parent game object. By simply <kbd>dragging</kbd> one game object and <kbd>dropping</kbd> it onto another, the dragged game object is childed under the target:
In a collection file, you can build hierarchies of game objects so that one or more game objects are children to a single parent game object. By simply <kbd>dragging</kbd> one game object and <kbd>dropping</kbd> it onto another, the dragged game object becomes a child of the target:

![Childing game objects](../images/building_blocks/childing.png)

Expand Down
2 changes: 1 addition & 1 deletion manuals/compute.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Procedural Generation

Rendering effects
- Global illumination: Simulating realistic lighting by approximating the way light bounces around a scene.
- Voxelisation: Create a 3D voxel grid from mesh data.
- Voxelization: Create a 3D voxel grid from mesh data.

## How does compute shaders work?

Expand Down
2 changes: 1 addition & 1 deletion manuals/debugging-game-and-system-logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ $ adb logcat -s defold
I/defold ( 6210): INFO:DLIB: SSDP started (ssdp://192.168.0.97:58089, http://0.0.0.0:38637)
I/defold ( 6210): INFO:ENGINE: Defold Engine 1.2.50 (8d1b912)
I/defold ( 6210): INFO:ENGINE: Loading data from:
I/defold ( 6210): INFO:ENGINE: Initialised sound device 'default'
I/defold ( 6210): INFO:ENGINE: Initialized sound device 'default'
I/defold ( 6210):
D/defold ( 6210): DEBUG:SCRIPT: Hello there, log!
...
Expand Down
2 changes: 1 addition & 1 deletion manuals/debugging-game-logic.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,4 @@ If you have problems with physics and collisions aren't working as expected it i

When this checkbox is enabled Defold will draw all collision shapes and contact points of collisions:

![physics debug visualisation](../images/debugging/physics_debug_visualisation.png)
![physics debug visualization](../images/debugging/physics_debug_visualisation.png)
2 changes: 1 addition & 1 deletion manuals/editor-scripts-ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ The editor expects reactive function components to behave nicely for them to wor

1. Component functions must be pure. There is no guarantee on when or how often the component function will be invoked. All side-effects should be outside of rendering, e.g. in callbacks
2. Props and local state must be immutable. Don't mutate props. If your local state is a table, don't mutate it in-place, but create a new one and pass it to the setter when the state needs to change.
3. Component functions must call the same hooks in the same order on every invokation. Don't call hooks inside loops, in conditional blocks, after early returns etc. It is a best practice to call hooks in the beginning of the component function, before any other code.
3. Component functions must call the same hooks in the same order on every invocation. Don't call hooks inside loops, in conditional blocks, after early returns etc. It is a best practice to call hooks in the beginning of the component function, before any other code.
4. Only call hooks from component functions. Hooks work in a context of a reactive component, so it's only allowed to call them in the component function (or another function called directly by the component function).

### Hooks
Expand Down
6 changes: 3 additions & 3 deletions manuals/editor.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ There is a toolbar in the top right corner of the scene view where you find obje

### Outline pane

This view shows the content of the file currently being edited, but in a hierarchial tree structure. The outline reflects the editor view and allows you to perform operations on your items:
This view shows the content of the file currently being edited, but in a hierarchical tree structure. The outline reflects the editor view and allows you to perform operations on your items:
- <kbd>Click</kbd> to select an item. Hold <kbd>Shift</kbd> or <kbd>Option</kbd> to expand the selection.
- <kbd>Drag and drop</kbd> to move items. Drop a game object on another game object in a collection to child it.
- <kbd>Right click</kbd> to open a _context menu_ from where you can add items, delete selected items etc.
Expand Down Expand Up @@ -103,15 +103,15 @@ To move objects, use the *Move Tool*. You find it in the toolbar in the top righ

![Move object](../images/editor/move.png)

The selected object shows a set of manipulators (squares and arrows). Click and drag the green center square handle to move the object freely in screen space, click and drag the arrows to move the object along the X, Y or Z-axis. There arn also square handles for moving the object in the X-Y plane and (visible if rotating the camera in 3D) for moving the object in the X-Z and Y-Z planes.
The selected object shows a set of manipulators (squares and arrows). Click and drag the green center square handle to move the object freely in screen space, click and drag the arrows to move the object along the X, Y or Z-axis. There are also square handles for moving the object in the X-Y plane and (visible if rotating the camera in 3D) for moving the object in the X-Z and Y-Z planes.

### Rotate tool
![Rotate tool](../images/editor/icon_rotate.png)
To rotate objects, use the *Rotate Tool* by selecting it in the toolbar, or by pressing the <kbd>E</kbd> key.

![Move object](../images/editor/rotate.png)

This tool consists of four circular manipulators. An orange manipulator that rotates the object in screen space and one for rotation around each of the X, Y and Z axes. Since the view is peripendicular to the X- and Y-axis, the circles only appear as two lines crossing the object.
This tool consists of four circular manipulators. An orange manipulator that rotates the object in screen space and one for rotation around each of the X, Y and Z axes. Since the view is perpendicular to the X- and Y-axis, the circles only appear as two lines crossing the object.


### Scale tool
Expand Down
4 changes: 2 additions & 2 deletions manuals/extensions-best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,13 @@ Defold does not make use of any exceptions in the engine. Exceptions are general

Since the Defold engine doesn't use any STL code, except for some algorithms and math (`std::sort`, `std::upper_bound` etc), it may work for you to use STL in your extension.

Again, bear in mind that ABI incompatibilites may hinder you when using your extension in conjunction with other extensions or 3rd party libraries.
Again, bear in mind that ABI incompatibilities may hinder you when using your extension in conjunction with other extensions or 3rd party libraries.

Avoiding the (heavily templated) STL libraries, also improves on our build times, and more importantly, the executable size.

#### Strings

In the Defold engine `const char*` is used instead of `std::string`. The use `std::string` is a common pitfall when mixing different versions of C++ or compiler versions since it may resultin an ABI mismatch. Using `const char*` and a few helper functions will avoid this.
In the Defold engine `const char*` is used instead of `std::string`. The use `std::string` is a common pitfall when mixing different versions of C++ or compiler versions since it may result in an ABI mismatch. Using `const char*` and a few helper functions will avoid this.

### Make functions hidden

Expand Down
2 changes: 1 addition & 1 deletion manuals/factory.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ When the *Dynamic Prototype* option is set the collection component count cannot

## Instance limits

The project setting *max_instances* in *Collection related settings* limits the total number of game object instances that can exist in a world (the main.collection loaded at startup or any world loaded via a collection proxy). All game objects that exist in the world are counted agaist that limit and it does not matter if they are placed by hand in the editor or spawned in runtime through a script.
The project setting *max_instances* in *Collection related settings* limits the total number of game object instances that can exist in a world (the main.collection loaded at startup or any world loaded via a collection proxy). All game objects that exist in the world are counted against that limit and it does not matter if they are placed by hand in the editor or spawned in runtime through a script.

![Max instances](../images/factory/factory_max_instances.png)

Expand Down
8 changes: 4 additions & 4 deletions manuals/flash.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Some of the key advantages of Flash were the accessibility and low barriers to e

Flash games are programmed in ActionScript (with 3.0 being the most recent version), while Defold scripting is done in Lua. This guide will not go into a detailed comparison of Lua and Actionscript 3.0. The [Defold manual](/manuals/lua) provides a good introduction to Lua programming in Defold, and references the tremendously useful [Programming in Lua](https://www.lua.org/pil/) (first edition) which is freely available online.

An article by Jesse Warden provides a [basic comparison of Actionscript and Lua](http://jessewarden.com/2011/01/lua-for-actionscript-developers.html), which may serve as a good starting point. Note thought that there are deeper differences in how Defold and Flash are constructed than what is visible at the language level. Actionscript and Flash is object oriented in the classical sense with classes and inheritance. Defold does not have classes, nor inheritance. It includes the concept of a *game object* which can contain audivisual representation, behavior and data. Operations on game objects are done with *functions* available in the Defold APIs. Furthermore, Defold encourages the use of *messages* to communicate between objects. Messages are a higher level construct than method calls and are not intended to be used as such. These differences are important and takes a while to get used to, but will not be covered in detail in this guide.
An article by Jesse Warden provides a [basic comparison of Actionscript and Lua](http://jessewarden.com/2011/01/lua-for-actionscript-developers.html), which may serve as a good starting point. Note thought that there are deeper differences in how Defold and Flash are constructed than what is visible at the language level. Actionscript and Flash is object oriented in the classical sense with classes and inheritance. Defold does not have classes, nor inheritance. It includes the concept of a *game object* which can contain audiovisual representation, behavior and data. Operations on game objects are done with *functions* available in the Defold APIs. Furthermore, Defold encourages the use of *messages* to communicate between objects. Messages are a higher level construct than method calls and are not intended to be used as such. These differences are important and takes a while to get used to, but will not be covered in detail in this guide.

Instead, this guide explores some of the key concepts of game development in Flash, and outlines what the closest Defold equivalents are. Similarities and differences are discussed, along with common pitfalls, to enable you to get off to a running start in transitioning from Flash to Defold.

Expand All @@ -40,7 +40,7 @@ In Flash, instances of movie clips can be added to your scene manually by draggi

## Defold—manually creating game objects

As mentioned previously, Defold does not have a timeline concept. Instead, game objects are organised in collections. Collections are containers (or prefabs) that hold game objects and other collections. At the most basic level, a game can consist of only one collection. More frequently, Defold games make use of multiple collections, either added manually to the bootstrap “main” collection or dynamically loaded via [collection proxies](/manuals/collection-proxy). This concept of loading "levels" or "screens" does not have a direct Flash equivalent.
As mentioned previously, Defold does not have a timeline concept. Instead, game objects are organized in collections. Collections are containers (or prefabs) that hold game objects and other collections. At the most basic level, a game can consist of only one collection. More frequently, Defold games make use of multiple collections, either added manually to the bootstrap “main” collection or dynamically loaded via [collection proxies](/manuals/collection-proxy). This concept of loading "levels" or "screens" does not have a direct Flash equivalent.

In the example below, the "main" collection contains three instances (listed on the right, in the *Outline* window) of the "logo" game object (seen on the left, in the *Assets* browser window):

Expand Down Expand Up @@ -139,7 +139,7 @@ Motion tweens allow the animation of various properties of an object, including

Defold works with pixel images as opposed to vector graphics, thus it does not have an equivalent for shape tweening. However, motion tweening has a powerful equivalent in [property animation](/ref/go/#go.animate). This is accomplished via script, using the `go.animate()` function. The go.animate() function tweens a property (such as color, scale, rotation or position) from the starting value to the desired end value, using one of many available easing functions (including custom ones). Where Flash required user implementation of more advanced easing functions, Defold includes [many easing functions](/manuals/animation/#easing) built-into the engine.

Where Flash makes use of keyframes of graphics on a timeline for animation, one of the main methods of graphic animation in Defold is by flipbook animation of imported image sequences. Animations are organised in a game object component known as an atlas. In this instance we have an atlas for a game character with an animation sequence called "run". This consists of a series of png files:
Where Flash makes use of keyframes of graphics on a timeline for animation, one of the main methods of graphic animation in Defold is by flipbook animation of imported image sequences. Animations are organized in a game object component known as an atlas. In this instance we have an atlas for a game character with an animation sequence called "run". This consists of a series of png files:

![flipbook](../images/flash/flipbook.png)

Expand Down Expand Up @@ -254,7 +254,7 @@ Event objects and their associated listeners are used to detect various events (
The Defold equivalent of the Flash event handling system consists of a few aspects. Firstly, each script component comes with a set of callback-functions that detect specific events. These are:

init
: Called when the script component is initialised. Equivalent to the constructor function in Flash.
: Called when the script component is initialized. Equivalent to the constructor function in Flash.

final
: Called when the script component is destroyed (e.g. a spawned game object is removed).
Expand Down
2 changes: 1 addition & 1 deletion manuals/gui-clipping.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,4 @@ In this example, both the clipper nodes "Donut BG" and "BG" are using the same l
- BG Frame
- Donut Shadow

Here you can see that the "Donut Shadow" object will be clipped by both clipping nodes due to the layering, eventhough it is only a child to one of them.
Here you can see that the "Donut Shadow" object will be clipped by both clipping nodes due to the layering, even though it is only a child to one of them.
4 changes: 2 additions & 2 deletions manuals/gui-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ brief: This manual explains the Defold GUI template system that is used to creat

GUI template nodes provide a powerful mechanism to create reusable GUI components based on shared templates or "prefabs". This manual explains the feature and how to use it.

A GUI template is a GUI scene that is instanciated, node for node, in another GUI scene. Any property values in the original template nodes can then be overridden.
A GUI template is a GUI scene that is instantiated, node for node, in another GUI scene. Any property values in the original template nodes can then be overridden.

## Creating a template

Expand Down Expand Up @@ -62,4 +62,4 @@ end

There is no node corresponding to the template instance itself. If you need a root node for an instance, add it to the template.

If a script is associated with a template GUI scene, the script is not part of the instance node tree. You may attach one single script to each GUI scene so your script logic needs to sit on the GUI scene where you have instanciated your templates.
If a script is associated with a template GUI scene, the script is not part of the instance node tree. You may attach one single script to each GUI scene so your script logic needs to sit on the GUI scene where you have instantiated your templates.
4 changes: 2 additions & 2 deletions manuals/importing-models.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ Defold imposes some limitations on exported animation data:

### Requirements
When you export a model it's good to know that we don't yet support all features.
Currently known issues/not supported features from the Gltf format:
Currently known issues/not supported features from the glTF format:

* Morph target animations
* Material properties
* Embedded textures

While our ambition is to fully support the Gltf format, we're not fully there yet.
While our ambition is to fully support the glTF format, we're not fully there yet.
If a feature is missing, please make a feature request for it in [our repo](https://github.com/defold/defold/issues)

### Exporting a texture
Expand Down
Loading

0 comments on commit 5968e7e

Please sign in to comment.