Documentation

Getting Started - Open Dev Kit Documentation

Open Dev Kit Documentation :: Getting Started

Starting Open Dev Kit

Upon launching Open Dev Kit (ODK) you'll be given the option to open an existing project from the project list in the center of the My Projects window, or create a new project from the right of the window.

Haven't downloaded Open Dev Kit yet? Visit the Quick Start page and grab either the .exe for a full installation or get the portable version (.zip).

Quick Access

Click a section below to jump directly to it:

Take a look first...

Various templates you could start with:

Useful editors to familiarize yourself with:

Useful API starting points:

Setting up Two-Factor Authentication (2FA)

For maximum security, we recommned you enable two-factor authentication for your Open Dev Kit account. To do this, simply click on the Setup 2FA button, located below your account's name and role/tier on the left side of Open Dev Kit's My Projects window. Scan the QR code with an authenticator app (Microsoft Authenticator, Google Authenticator etc.), then input the one-time password you'll see on your phone into the field beside the QR code.

Creating a New Project

To create a new project, select a template best fitting of your project type from the list to the right and type an appropriate project name. Then click on the Create Project button to launch the main ODK window, where you'll see a bunch of project files listed under the Project panel in the bottom-left. Double-click these to open them.

Resource Editor

To add resources to your project, click the Resources button located at the top-left of the main Open Dev Kit window to open the Project Resources panel. You can create a new resource by clicking the Create Resource icon in the toolbar, selecting a type, entering a name, and pressing OK. Alternatively, the same functionality is available via the bottom-left panel in the main ODK window.

You can use the search bar in either window to filter resources by name. Some resources, like Images or Audio, are linked to external files. For these, you can click the Replace File button to import or update their file content directly without having to recreate the resource.

Common Resource Types

Window Editor

In the Window Editor you can view and edit all of your project's UI windows. To the left of the Window Editor is the Controls panel.

Creating a New Window

To create a new window: Click the New Window icon in the Project panel, give it a name and then click OK to add it to your project. Your newly created window will open automatically. If multiple windows are open, you can switch between them by selecting the tabs along the top of the main ODK window.

In game projects, the New Window icon will not appear. Instead, click the Create Resource button, type in "Window", select the resource type, and proceed as usual to name and create the window.

Placing and Resizing Controls

To place a control on your window, double-click it from the Controls panel to the left. By default, the new control will appear in the top-left corner of whichever container you have selected in the Instances panel in the bottom-left of the main ODK window

To move a control, click and drag the mouse cursor inside the control to wherever you want the control to be placed. You can move multiple controls by clicking and dragging inside the window to highlight multiple controls at once, or by holding down the Ctrl key whilst clicking on the controls you want to select. You can also set the X and Y coordinates manually from the Properties panel to the right of the main ODK window, whenever a control is selected, by changing its Position values.

To resize a control, click and drag on one of its eight directional nodes (while the control is selected) or by changing its Size values inside the Properties panel.

Utility Controls & Shortcuts

To cut, copy, paste or delete a selected control(s), right-click it and select Cut (Ctrl+X), Copy (Ctrl+C), Paste (Ctrl+V) or Delete (Del) from the drop down menu respectively.

To rearrange a selected control so that it appears in front of or behind other controls, right-click it and select Move > to Front, Move > Forward, Move > Backward or Move > to Back respectively.

To undo or redo an action (such as placing, moving or resizing a control) right-click inside your window and select Undo (Ctrl+Z) or Redo (Ctrl+Y) from the drop down menu respectively.

Scene Editor

In the Scene Editor you can view and edit your project's maps by decorating them with tiles, and placing various game objects located in the Objects panel such as characters, actors, lights and others for the player to explore and interact with.

Creating a New Scene

To create a new scene, find in the Project panel located at the bottom-left corner of the main ODK window and then click on the Create Scene button beside it to create it. Your newly created scene will open automatically. If multiple scenes are open, you can switch between them by selecting the tabs along the top of the main ODK window. You may use the Filter: bar to filter verious objects (and tilepatches if their filter is set to "Normal") by name.

Placing, Resizing and Rotating Actors

To place an actor on your scene, double-click'Actor' from the Objects panel to the left. By default, the new actor will appear in the centre of whichever instance you have selected in the Instances panel in the bottom-left of the main ODK window (see the Instance Hierarchy section to learn more).

To set an actor's sprite, click on the plus (+) button besides'Sprites' in the Properties panel to the right of the main ODK window. Then, click on the small square button besides the [0] textbox and select your sprite from the Pick window that opens (see the Adding Sprites section to learn how to add sprites to your project).

To move an actor, click and drag the mouse cursor inside the actor to wherever you want the actor to be placed. You can move multiple actors by holding down the Ctrl key whilst clicking on the actors you want to select. You can also set the X and Y coordinates manually from the Properties panel, whenever an actor is selected, by changing its Position.X and Position.Y values. Position.Z is used to adjust the actor's depth.

You can resize an actor by changing its Scale.X, Scale.Y and Scale.Z values inside the Properties panel and you can rotate an actor by scrubbing the Orientation property left or right. To snap the rotation to angles, hold down the Ctrl key whilst scrubbing.

Common Actor Properties

Script Editor

Open Dev Kit utilizes Event-Driven Programming, where pre-written pieces of code are used to build scripts in a visually-oriented way. To open the Script Editor you must first double-click an event on one of your controls. To add a new script node, click on the plus icon underneath an existing script node or select one of the categories to the left of the Script Editor. Scripts in Open Dev Kit are structured like a flowchart, with code being executed from the'Start' node and sequentially moving down each connected node one after another. Any script nodes left unconnected will be ignored.

To move around the Script Editor, click and drag the empty space using the left or middle mouse buttons. You can also move script nodes themselves by clicking and dragging on them. To select multiple script nodes at once, right click and drag the mouse to higlight the script nodes you want to select, or by holding down the Ctrl key whilst left-clicking on the controls you want to select. You can also cut, copy, paste and delete script nodes the same way you do for controls, as well as undo or redo past actions. Use the mouse wheel to zoom in and out of the Script Editor.

To separate script nodes from each other, move your mouse cursor directly above or below the script node and right-click it. To join script nodes together, left-click and drag directly from the top or bottom of the script node and move the mouse cursor over the script node you want to attach it to.

Adding Local Variables

To add a local variable: Click the Add button in the bottom-right of the Script Editor, pick a data type that's best suited to the information you want to store, give it a name and click OK. You can then use this local variable in your script.

Local variables can only be called from within the script they were created in – meaning they cannot be accessed outside of that script. You need to create a global variable to be able to use it throughout your project (see the Adding Global Variables section to learn more).

API Editor

To add classes, variables, functions, events, etc. to your project, click on the Globals / API button along the top-left of the main ODK window to open the Project Globals and API Editor.

Adding API Nodes

To add an API node to your project: Pick a data type that's best suited to the information you want to store by clicking on one of the icons listed on the toolbar, typing a name and clicking OK. You can then use this global variable while scripting.

API Node Types

Common Property Types

Common API Node Properties

Classes, Instances & Hierarchy

When you place a control on your window, you create a new instance of that control. Each instance is listed inside the Instances panel in the bottom-left of the main ODK window. Selecting an instance from this panel will also select the corresponding control on your window.

Instance Hierarchy

When creating a new instance of an object, it's possible to create one on top of an existing one by selecting the instance, from the Instances panel in the bottom-left of the main ODK window, and double-clicking an object from the Objects panel to the left of the main ODK window. This will create a child instance of that object, which can be manipulated by its parent. For example: If you create an actor on top of another actor and then move the parent actor, the child actor will move with it as long as Propagate Position is checked. The same applies for scale and orientation.

You can change the hierarchy of an instance by selecting it from the Instances panel, cutting it (Ctrl+X), then selecting the instance you want the cut object to become a child of, and pasting it on top (Ctrl+V).

Classes

A Class defines a reusable blueprint for objects. You can think of it as a set of properties and behaviors you can use to create consistent instances. You can extend functionality by assigning a Base Type (e.g., Actor, Label, etc.), allowing your new class to inherit the base's behavior while still letting you customize it.

If you want to override default properties (like PhysicsSolid), simply add a property with the same name and enable the Override flag. This allows your class to behave uniquely while retaining its base functionality.

Project Options

To modify project-specific options, click on the Project Options button along the top-left of the main ODK window to open the Project Options window. This window contains settings for various useful such as initialization options, max number of sprite poses, physics and VR options, and many useful plugins that you can import to your project.

Testing & Building Your Project

To test your project, click on the Start button along the top-right of the main ODK window. This will launch whichever Starting Window has been specified in the Project Options window (see the Project Options section to learn more). The Pause and Stop buttons directly besides the Start button can be used to momentarily suspend your application or stop it completely (which will return you to the main ODK window).

At the bottom of the main ODK window is the Log and Debug panels which keep a record of your application's activity. Whenever something unexpected occurs with your application, the Log and Debug panels will specify what's wrong and highlight it in red so that it's more easily noticeable.

To build your project so that others can use your application, click on the Build App button along the top-left of the main ODK window. This will open the Build Application window where you can specify the file name of your built project and where to save it on your computer. This will create a Windows Executable (*.exe) file that you can launch independently of ODK.

If you think anything is missing, please feel free to: submit documentation feedback on this page