Build a GameCreating Pacific Wings

Making What a Card Shows

Each piece of the game comes as a story and a card. The story puts the piece in your head, and the card writes it out exactly, every name and every number. This page is about the cards. Each passage shows how to make one kind of thing in Myth Engine, in the editor’s own words.

You don’t need all of it today. Read the first passage, Before your first card, and then start Chapter 1, which goes down its own cards with you. A paragraph that opens with a later chapter, such as From Chapter 3, can wait for that chapter. Come back whenever a card shows something you don’t know how to make yet.

The editor will feel strange at first. That passes. A chapter or two in, your hands will know where things are.

Before Your First Card

Everything your game is made of lives in the Resources panel, down the left side of the editor: Objects, Logic, pictures, sounds and Scenes. To make something new, press Add at the bottom of that panel. The Add Resource window asks what kind. Double-click anything in the Resources, and it opens in a tab of its own. Right-click it for a menu with Rename and Delete.

A card lists what to set. Whatever it leaves out stays the way the editor starts it.

The Set Up Card

Each chapter opens with a Set up card. It holds everything that isn’t an Object or its Logic: pictures, sounds, keys, settings, and where things sit in the Scene. Each block starts with a heading in capitals. Here is Chapter 1’s. Chapter 1 goes down it line by line.

Set upWhat this chapter adds
ART (sprites, from the starter kit)
Fighter Art
BACKGROUNDOcean
Layer GradientGradient, colors #0b3d5b to #178da7, Vertical
COMMANDS (Game Settings > Input Manager)
Move2D Axis
LeftLeft Arrow, A
RightRight Arrow, D
UpUp Arrow, W
DownDown Arrow, S
GAME SETTINGS > Display > Window
TitlePacific Wings
GAME SETTINGS > Display > Rendering
Texture FilteringSmooth Textures
Anti AliasingMSAA (Hardware)
SCENERoute (new)
Camera Main CameraX 10, Y 7.5, view 20 x 15 m
View Main View640 x 480 pixels, Left 0, Bottom 288, camera Main Camera
BackgroundOcean
Background Color#0C4A6E
GAME SETTINGS > General > Startup
Start SceneRoute · 2D
SCENE Route: PLACE THESE
ObjectXY
Fighter105.625

ART, SOUNDS and BACKGROUND name the pictures, sounds and backgrounds the chapter uses. They’re in your project already, from the Starter Kit, so there’s nothing to make. The list shows which ones matter now. In Chapter 1, that’s the Fighter Art and the Ocean. A Layer line under BACKGROUND names a layer inside the background, and its kind. The Ocean has one Gradient layer, deep blue at the top and lighter below.

COMMANDS are the game’s controls. Your Logic asks a Command what you’re doing with it, and never which key you used. Move is a 2D Axis Command, so it answers with a direction. Its four directions each have their own keys. Chapter 1’s Move arrives with a Logic Component, so you don’t make it. Whenever the editor makes something on a card for you like this, the chapter says so.

GAME SETTINGS lines say where each field is: GAME SETTINGS > Display > Window means open Game Settings, choose Display, and find the Window group. The names under it are its fields. Enter them in the card’s order, top to bottom.

A SCENE block marked (new) is a new Scene: Add, then Scene. Chapter 1’s is the one exception. A new project already has a Scene, named Scene, and Chapter 1 has you rename it.

To reach a Scene’s own settings, open it and pick Select, the arrow above the preview. Then click an empty spot. The Properties on the left show its Scene Background Color, its Screen Backgrounds, and its Cameras and Views. A Scene starts with no camera. Add View, under Cameras and Views, makes the Main Camera and the Main View together.

The Camera line and the View line set those two up, and Chapter 1 takes them one box at a time. The Background line is the Ocean. Under Screen Backgrounds, pick it in the section’s list, and it’s added.

On the card, Start Scene comes after the SCENE block, and that order matters. Start Scene picks a Scene from a list, and a Scene is on that list only once it exists.

PLACE THESE says what goes where. Open the Scene and pick Place, the button beside Select. The Place Scene Content panel fills the left, with your Objects under Predefined Objects. Drag one onto the Scene. Then pick Select, click what you placed, and type the card’s X and Y into its World Position, in meters.

That’s everything Chapter 1’s card asks for.

In Later Chapters

The rest of this passage waits for later chapters, and each paragraph opens with the first one that needs it.

From Chapter 2, you make Commands yourself. Open Game Settings, the button above the Resources, and choose Input Manager. Press Add Command. A small window asks for the Command Name and the Input Type, and Fire is a Button. The window’s own Add Command button makes it. A new Button Command has one empty row that reads No Input Assigned. Click it, and press the card’s key. Add Keybinding adds one for a second key. From Chapter 5, one of the keys is Escape, and a single Escape stops Myth listening for a key. So press Escape twice, quickly.

From Chapter 3, GLOBAL VARIABLES are values the whole game shares, such as the score. On a card a Global has a $ in front, as in $score, which is how you tell it from the rest. You make one from any Logic Component. Open it, and down the left side of its canvas sits a small card named Globals. Press the + on it and choose New Global…. The Add Global window asks for a Name, a Type and a Default, the value it starts at. Its name is score, typed without the $. Every Global in Pacific Wings is a Number. Press Add.

From Chapter 3, words and pictures on the screen are placed another way, because they stay put while the world moves under them. Their X and Y go into Screen Offset (px), counted in pixels from the point their Screen Anchor picks. A placement marked hidden starts out of sight, so turn off its Visible at Game Start.

From Chapter 3, some lines under a placement start with “with”. Each one is a value that only this placement has. Select the placement in the Scene, and look down its Properties. with Z-Index = 10002 is the placement’s Z-Index, under Rendering. A higher number is drawn in front, so the score sits over everything in the sky.

From Chapter 4, GAME SETTINGS > General > Game State lists the states a mission can be in, such as Playing and Mission Failed. Your project has Playing already. For each new state, press Add Game State, the + under the list. Type its Game State Name, and press the window’s own Add Game State button. From Chapter 5, the card also gives an Initial Game State, the one the game starts in. Pick it from that list.

From Chapter 4, a line such as with Per Instance Variables > Slot = 2 gives this placement its own value of a Per Instance Variable. Look under Logic, near the bottom of the placement’s Properties. Each Logic Component has a section there. Under its Per Instance Variables, each one has a box, such as Slot. Type the card’s value into it.

From Chapter 5, CHANGE THESE PLACEMENTS changes what’s in the Scene already. make it hidden means: select that placement and turn off Visible at Game Start. From Chapter 11, REMOVED names something the game no longer needs. Right-click it in the Resources. Delete is at the bottom of the menu. If an Object still carries it, the Delete window names that Object. The Logic comes off it too.

An Object Card and Its Components

An Object is a thing in your game: the Fighter, an Enemy Fighter, the score on the screen. Make one with Add > Object. The Create Object window asks for the card’s name and an Object Type. The card tells you which type:

  • A card with a Collider is a 2D Object. It starts with its Transform and a Collider.
  • A card whose Transform says Space Window / UI is a Screen UI Object. Its Space, its Render Layer and its Bounding Box of 32 by 32 are set already, and it comes with UI Interaction.
  • Every other card is an Empty Object, with a Transform alone. You attach what the card lists.

Here is the Fighter’s card, which you’ll build in Chapter 1.

ObjectFighter
Transform
Bounding Box > SizeX 2.88, Y 2.88
Sprite
Scene Depth Draw Order40
SpriteFighter Art
Transform > SizeX 2.88, Y 2.88
Collider
Shape and Transform > ShapeCapsule
Shape and Transform > PositionX 0, Y -0.09
Shape and Transform > SizeX 0.698, Y 1.733
Logic
Vertical Shooter Controls
Shared Variables
moveSpeed7.8
scrollSpeed2.25

The card lists the Object’s components, with the fields to change under each one. A component gives an Object one ability. Sprite shows a picture. Collider gives it a shape to touch things with. Transform is on every Object from the start, and it says where the Object is and how big.

In the Object editor, Attached Components is the list at the top right. It keeps each kind together, under a heading of its own, such as Colliders. The Component Toolbox sits under it, in closed groups: open one, and click a component to attach it. Sprite and Text / UI are under Rendering, and Collider is under Physics. Data Structure and Tags are under Data. Coordinate, Child Objects and UI Interaction are under Core. Select a component in Attached Components, and its Properties open on the left, below the Object’s own. The card’s lines are those Properties, in order.

A component marked (as it is added) has nothing to change. Leave it as Myth adds it. An Object card lists every component its Object keeps. When Myth adds one the card doesn’t list, such as a Screen UI Object’s UI Interaction, remove it with the red trash button on its row in Attached Components.

Under Sprite, the Sprite line is the picture. Transform > Size is the picture’s own size: meters for a thing in the world, pixels for a thing on the screen. From Chapter 3, Transform > Rotation (deg) turns the picture inside its Object. From Chapter 11, Transform > Position, above Size, moves the picture away from its Object’s middle. Each enemy’s picture is turned to Z -180. Its nose points south. From Chapter 4, a panel with words on it has Z Index Within Object -1. That goes in Z Index (Within Object), the box below Scene Depth (Draw Order), and it puts the picture one step behind the Object’s own words. The panel never covers its text.

The Transform’s Bounding Box is a box the Object keeps for its own size, apart from its picture. It doesn’t change how the picture looks. Type the card’s numbers into its Size anyway, so your Object matches the game’s.

A Collider’s shape is under Shape and Transform. First comes the Shape itself: a Box, a Capsule, an Ellipse or another. Then a Position and a Size. The Position moves the shape away from the Object’s middle, and the shape can be much smaller than the picture. The Fighter’s capsule is, so only the middle of the plane can be hit.

Collision has three choices. Solid blocks other solid things. Sensor feels what it overlaps without blocking it, and its collision Events still run. Off feels nothing at all. From Chapter 7, some scenery has a Collider set to Off, and a Transform line, Physics > Physics Object Off. That’s a switch in the Transform’s own Physics section. Off means nothing pushes the Object around, so it moves only by its own speed and by what its Logic does. Nothing else.

From Chapter 3, Objects carry Tags. A Tag is a word stuck on an Object, like a label on a jar, so other things can find every Object that wears it. Every enemy wears the Tag Enemy Aircraft. A card gives it under Tags, as Object Tags Enemy Aircraft. Attach Tags from the Data group. In its Properties, open the list that reads Select a Tag…. The first time, choose Create New Tag… and press Add Selected Tag, the + beside the list. The Create Tag window asks for the Tag. Type the card’s, press OK, and the Object wears it. After that, the Tag waits in the list for every Object you make, by its name. Pick it, and press the + again.

From Chapter 7, the Collider’s Tags and Interactions section says what it may touch. Click its heading to open it. Its Interactions list starts at Everything. Never Collide With means: pass through whatever is on the list, with no collision Event at all. Press Search to add… under it, and a window lists your Objects, then your Tags, each as Tagged and its name. Pick the card’s, such as Tagged Enemy Aircraft.

From Chapter 2, a Coordinate marks a named point on an Object. Center Muzzle is one. It sits at the Fighter’s nose, where its tracers start. Click Coordinate in the toolbox, and the Object gets its first one, named Coordinate 1. Type the card’s name over it. Its X and Y go into Local Position, in meters from the Object’s middle. On the card, each Coordinate’s Name heads its lines, and its Local Position sits one step in under it. From Chapter 8, the Fighter needs two more. Each click on Coordinate in the toolbox adds one, so Coordinate 1 appears, and then Coordinate 2.

From Chapter 3, words on the screen use Text / UI. Its Font starts as Inter (Default), and no card in Pacific Wings changes it, so there’s no font to pick. A Text line such as SCORE {$score} shows a live value. Type it into the Text field as the card spells it, braces and all, and while the game runs, the number follows $score. Emphasis lists weights, from Light to Black. For the Color, click its swatch, the small square of color, and type the card’s code into the HEX box. Set all of these in the Properties on the left. The bar above the preview has the same boxes, but there they style only the words you type next. A card may give Text Bounds Wrap to Width. Pick that first. The W box of Text Frame wakes up below it, and the card’s Transform > Size X goes there.

From Chapter 3, a Data Structure component picks its Data Structure first. When your project has only one, it’s picked already. Some fill themselves from a table. Set Input Source to Data Table, and two more lists appear: the Data Table, then the Row. The Row starts on (Choose a row). Pick the card’s, and the Object takes that row’s values. So the Enemy Fighter reads its speed, its health and its points from the row named Enemy Fighter.

From Chapter 4, a Screen UI Object’s UI Interaction gives it a part in a menu. Its Element Type is Button or Text. Its Group is a name that the menu’s pieces share, so they show and hide together. Its Event is the message a choice sends. Type Group and Event as the card spells them. The Commands that move between choices, confirm one and cancel are lists, and you pick from them.

From Chapter 10, Child Objects carries another Object along inside this one, such as the Hit Area inside the Fighter. Click Child Objects in the toolbox. Its first child is named after one of your other Objects. Pick the card’s Object in the Object list, then type the card’s Name, Position and Size.

Logic comes last on an Object card. It isn’t in the toolbox. Above the preview, at the right end of its toolbar, is a list that reads Components. Pick Logic in it. Compatible Logic is on the right, and it lists only what fits this Object. Click each Logic Component the card names there. It joins the Attached Logic.

From Chapter 4, a Logic Component may keep a Data Structure of its own, such as Return Flight’s Return Flight Data. Attaching that Logic adds the Data Structure to the Object too. The card shows it as a Data Structure line, From Logic Return Flight. It’s already there, so there’s nothing to do.

The lines under Shared Variables come after the Logic, because the Logic brings them. Switch the list back to Components. At the top of the Properties, under Variables, each Shared Variable the Logic gives this Object has its own rows: a name box, its Type, its Kind and its Value. Under them, a line says where it came from, such as From Logic: Vertical Shooter Controls. A card line such as moveSpeed 7.8 is that Value. Type the card’s number into it.

From Chapter 2, some Values are Objects, such as the tracer the guns fire. The card gives tracer Fighter Tracer. That Value is a button that reads None until you press it and pick the Object.

From Chapter 3, a line may change a Variable’s Kind, as in speed > Kind Expression. Pick Expression in its Kind list. An Expression box takes the Value’s place. Type the card’s line there, as the card spells it. An Expression works its value out from something else, here the speed in the Enemy Fighter’s own row of Enemy Types. From Chapter 10, a Kind may also be Changeable. That’s a value the Logic can change while the game runs.

A Data Structure Card

A Data Structure is a small form of named fields, and an Object carries one filled-in copy. Every enemy carries Enemy Stats: its speed, its health and its points. Make one with Add > Data Structure. Here is Enemy Stats, from Chapter 3, the first one you’ll make.

Data StructureEnemy Stats

What every enemy carries. Each enemy kind takes its values from its own row of Enemy Types.

speedNumberdefault 0
healthNumberdefault 1
pointsNumberdefault 0

The Create Data Structure window asks only for its Name, and the new Data Structure starts with no fields at all. The sentence under the name on the card is its Description. Type it in if you like. The game never reads it, but you will, months from now. Press Add Field for each line. A field has a Name, a Type and a Value, and the card’s default goes in Value.

From Chapter 4, a field may be a Boolean, a yes or a no. Pick Boolean in its Type list, and its Value turns into a switch that reads No. The card writes that default as false, and false is No.

From Chapter 7, a Data Structure whose name ends in Entry, such as Reinforcement Orders Entry, is one you don’t make this way. Its Data Table makes it. The Data Table passage below shows where to find it.

A Logic Component Card

A Logic Component is a piece of behavior you attach to an Object: how an enemy flies, how the score counts. Make one with Add > Logic Component. The Create Logic Component window asks for a Name and a Starter. Leave the Starter on Empty Logic Component. This card is from Chapter 3. It sends each enemy south as soon as it comes into view.

Logic ComponentFly South When SeenAttach to: Enemy Fighter

Starts this Object flying south at its speed when it first comes into view.

Attach toAny Object
SHARED VARIABLES
NameTypeKindStarting Value
speedNumberConstant3.7
When Entering the View
WhenEnter View
1Set Velocity
Y Velocity
-@self.speed

The top of the card names the Logic Component, and the Object you’ll attach it to in this game. The sentence under the name is its Description. The Attach to line under that is the Logic Component’s own setting. Leave it at Any Object, where a new one starts.

A new Logic Component opens on a big, empty canvas, crossed by a grid. Down its left side sits a column of small cards: Logic Component, Globals, Data Structures, Components, Per Instance Variables and Shared Variables. Each has a + in its corner, and the card’s blocks of the same names are made with them. The first one folds open to show the Name, the Description and Attach to. Type the Description there.

SHARED VARIABLES are values this Logic keeps on each Object it’s attached to, and each Object can set its own, as the Fighter’s card does. Press the + on Shared Variables. The Add Shared Variable window asks for a Name, a Kind, a Type and a Starting Value. Its Kind starts on Changeable, and nearly every one in this game is Constant, so pick the card’s. Then press Add. In the Logic, a Shared Variable reads with an @ in front: @self.speed.

From Chapter 2, a Shared Variable’s Type may be Object. The guns’ tracer is one. Its Starting Value is None, and each Object that carries the guns picks its own tracer on its Object card.

From Chapter 3, DATA STRUCTURES name the Data Structure this Logic reads on its Object. Make the Data Structure first, from its card. Then press the + on Data Structures, and pick it under Existing Data Structures. Myth gives it a name of its own, and the card’s row shows it: Enemy Stats self.enemyStats. The Logic reads every field through that name, as self.enemyStats.health.

From Chapter 4, PER INSTANCE VARIABLES are values each placed copy of the Object keeps for itself. The five reserve plane icons are one Object, and each knows its own slot. Press the + on Per Instance Variables. The Add Per Instance Variable window asks for a Name, a Type and a Starting Value. In the Logic it reads without the @, as self.slot. A placement sets its own value, as the Set up card’s with lines do.

In Chapter 9, COMPONENTS name a component of the Object that this Logic changes, such as self.text Text / UI. Press the + on Components, and pick Text / UI under Component types. The row then reads self.text.

The rest of the card is its Events, each with its Actions. The passages after the next one are about those.

A Logic Component That Comes Built In

Two Logic Components in Pacific Wings come whole from Myth Engine, and their cards say so. Vertical Shooter Controls arrives in Chapter 1, and Meter with Thresholds in Chapter 11. Here’s the first.

Logic ComponentVertical Shooter ControlsAttach to: Fighter

Flies the Fighter: steers it at moveSpeed with the Move Command, carries it and the camera north at scrollSpeed, keeps it inside the camera view (and topSafeInset meters below its top edge), and tilts it bankAngle degrees toward the side it moves to.

Attach toAny Object
SHARED VARIABLES
NameTypeKindStarting Value
moveSpeedNumberConstant6.875
scrollSpeedNumberConstant2.813
bankAngleNumberConstant7
topSafeInsetNumberConstant0
Built in: this Logic Component comes whole from the engine's template.
You add it and set its Variables on the Object; you do not build its Events.

Make it with Add > Logic Component, like any other. In the Create Logic Component window, open the Starter list and pick it by name. Vertical Shooter Controls is in the Controls group, and Meter with Thresholds is under State. Press Create. It takes the Starter’s name, and its Events are already built. Its Shared Variables start at the card’s values, so there’s nothing more to do here. You set their values on the Object card.

Vertical Shooter Controls brings one more thing. It adds a 2D Axis Command named after itself to the Input Manager, with the arrow keys and W, A, S and D already bound. Chapter 1 shows you what to do with it.

Events: The When Bars

An Event is a moment your Logic waits for: the game starting, a key held, an enemy coming into view. Each Event on a card starts with a plain heading, such as When Entering the View. That’s the name Myth gives the Event itself. You never type it. But it’s the name you’ll pick when an Action asks for an Event.

Under the heading is the When bar. It names the kind of Event. Then comes its setting, if it has one: a Command, a Timer name, an Object, a Global Variable or a Meter variable.

Press Add Event, the + in the canvas’s toolbar. Its window has a filter at the top, so type the kind’s name there, pick it, and press OK. When the kind has a setting, a second window asks for it. For a Command it lists your Commands, and for Variable Changed, your Globals. Pick the card’s, and press OK again.

The Event lands on the canvas as a big green block, with a smaller one beside it, joined by an arrow. That smaller block is the Event’s Mode, named Mode 1. Its Actions hang below it in one line, and the line ends at End. A card’s Event with one way of answering shows no Mode at all. Leave Mode 1 as it is.

A Logic Component can have several Events, and they all sit on the one canvas, each with its own line. The buttons at the bottom of the canvas zoom it, and Fit shows the whole of it at once.

For Chapter 2, the paragraphs above are all you need. The rest is for later chapters.

From Chapter 3, Collision Enter asks for nothing in a second window. Its Object is a list on the Event’s own block, Collision Target, in its Collision section, which starts closed. Click its heading to open it. No Instances Left, from Chapter 7, works the same way. From Chapter 3, a When bar may name a Tag, as Object: tag:Enemy Aircraft. That’s Tagged Enemy Aircraft, under Tags in the same list. The list shows a Tag once some Object wears it.

From Chapter 4, a Timer name is one you make up, so the second window can’t list it. Choose Type a timer name… and press OK. A small window comes next, and the card’s name goes in its box. From Chapter 11, a Meter variable is typed the same way, after Type a meter variable….

From Chapter 3, many Events in this game are a Custom Event. That’s a message one piece of Logic sends and others listen for, like a bell rung in one room and heard in another. Its When bar names it, such as enemyShotDown. To listen for a new one, type Custom into the Add Event window’s filter, pick Add Custom Event…, and press OK. Then type its name. When some Logic already sends that message, or listens for it, it’s in the list. Type its name into the filter, and pick it.

Sending often comes first. Trigger Custom Event rings the bell for every Object that listens. Trigger Custom Event on Object rings it on one Object only, the one its Applies to names. Its Custom Event field takes the name as you type it. So you can send it before anyone listens.

From Chapter 3, Myth sends one message by itself: noMoreHealth, when an Object’s health reaches 0. Its card gives it as a Custom Event, so listen for it by name, with Add Custom Event…, as for any message. Its heading, On No More Health, is the name Myth gives that Event.

From Chapter 4, some Events answer in more than one way. Each way is a Mode, with its own name and its own line of Actions. On a card it’s a line under the When bar: Mode Lost (Starting Mode). A card shows such an Event once for each of its Modes, each time with the same heading and When bar. Two headings alike are one Event with two Modes.

Name the first Mode: right-click Mode 1 and choose Rename Mode…. Type the card’s name. For each of the others, right-click the Event’s block and choose New Mode…, and type its name. Each new Mode gets its own block, to the right of the last, with its own line. Its Actions go there. A Mode marked (no Actions) stays empty. While it’s the one that answers, the Event does nothing.

An Event with several Modes shows Modes on its block, with two choices. Every Event in this game stays on One at a Time, as it starts, so one Mode answers at a time. The card marks the one it starts with, (Starting Mode), and you pick that one in the block’s Starting Mode list.

Switch Mode changes which Mode answers, while the game runs. Its block picks an Event and a Mode from two lists. Pick the Event the card names. The list gives each Event by its name, with the Object that carries it after a dot, such as Move 2D Axis Input · Fighter. While the Logic Component isn’t on an Object yet, its own name stands there instead. Then the Mode list holds that Event’s Modes. So make the Event and its Modes before the Switch Mode that picks them.

Actions, One at a Time

Under each Event, the numbered rows are its Actions, in order. On the canvas they’re blocks, joined by arrows into one line that runs down from the Mode to End. The Action List on the right holds them all, in closed groups, with a search box at its top. Type an Action’s name there, click it, and its block appears.

A new block lands a little to one side, apart from the line, with no arrow into it. A block like that does nothing when the game runs. So right-click it and choose Connect to Sequence. It joins the end of the line, right above End, and an arrow runs to it. Join each Action as you add it.

When an Event has several Modes, each Mode has a line of its own. To add an Action to one of them, right-click that Mode’s block, or a block on its line, and choose Add Unattached Action Here. A window opens with the Actions in it. Pick one and press OK. Its block lands near that line, and Connect to Sequence joins it there.

Fill in the fields the card lists. Each field is a small box or list on the block, after its name. The others keep the value they start with. So an Action with no lines under it is whole: add it, join it, and leave it as it starts.

Every value on a card is written the way its box should hold it. Some fields are lists on the block, such as Position Relative To, and the card names the choice to pick, such as Self. A plain name in a box, such as waitSeconds, is a value this Logic made for itself, or a Function’s Parameter. A $ in front marks a Global, as in $score, and an @ a Shared Variable, as in @self.speed. Most boxes read what you type as a small formula. In those, a word needs quote marks, or the box takes it for the name of something else and turns red. The Errors bar under the canvas counts it, and says what’s wrong. Pacific Wings uses both kinds of quote, "playing" and 'Enemy Types'. Either kind makes text. Type them as the card shows them.

A Timer Name is text, so its card gives "arrived". Copy the quote marks too. A Custom Event box takes its name as it is, without quotes. A resource, such as a Sound or a menu, is a choice. Pick its name in the slot.

Some Actions have an Applies to line, naming the Object the Action works on. On the block, Applies to is a list after the word on, and it starts on Self, the Object this Logic is attached to. So an Action whose card has no Applies to line needs nothing picked. Some blocks have no Applies to at all, such as Control Sound, which plays its sound for the whole game to hear.

A Create Instance makes a new Object while the game runs, such as a tracer. Its Object to Create names what kind. In a Logic Component, it’s one of the Logic’s own Shared Variables, as @self.tracer. Its Created As box names what it made, created to start, and the Actions after it can reach the new Object by that name. Position Relative To Self counts the card’s X and Y from the Object the Action works on. With Self Position Coordinate, the new Object starts at one of that Object’s Coordinates, such as Center Muzzle.

Some Actions hand back an answer. On the card, their first line is an Action Name. On the block it’s the last box, after the word as, and it holds a name of Myth’s to start. Type the card’s name over it, with no quotes. Later Actions read the answer by that name. So fireRateReady.value is what a Check Cooldown Ready named fireRateReady found, true or false.

For Chapter 2, the paragraphs above are all you need. The rest is for later chapters.

From Chapter 3, a value that’s yes or no goes into a box as true or false. From Chapter 4, a few of those fields are lists of Yes and No. The card writes each value the way its field takes it. So a card that says true means a box, and one that says Yes means a list.

From Chapter 3, a Change Variable reads Set on its block: its Variable, an =, and its Value. The Value replaces what the Variable held. A card’s Change Variable may have an Operator line, and then the = changes. Click it on the block, and a list opens. With +=, the Value is added on, and with -=, it’s taken away. From Chapter 6, there’s also *=, which multiplies what the Variable holds by the Value. No Operator line on the card? Then the = stays.

From Chapter 3, Change Component Value changes one field of a component, the one its Component Value path names. Type the path as the card spells it. self.enemyStats.health is the health field of the Enemy Stats this Object carries. It takes an Operator the same way.

From Chapter 3, a Function goes in the same way as an Action, from the Functions group of the Action List. The card gives it a small Function tag. Its fields are the Function’s Parameters, by their names. An Object field is a list, and a new call starts it on self. So target self needs nothing picked. Every other field is a box, and you type the card’s value over whatever it holds to start.

From Chapter 4, one Action stays out of the Action List until Advanced Mode is on. It’s Tween Property. Choose Settings > Advanced Mode at the top of the editor. Your game stays the same. Only the editor shows more.

From Chapter 6, an Event can make a value of its own for one run, with Declare Variable. Its block has a Type list, a Name and a Value. The Type starts at Number, and every one in this game stays there. After that, the card names the value plainly, as waitSeconds, with no @ and no $ in front of it. When the Event’s Actions finish, it’s gone, and the next run makes it again.

If, Else and Repeat

An If runs some Actions only when its condition is true. It’s in the Action List’s Logic group. On the canvas it’s a wide, pointed block, and a line marked True runs down from it. That line is the card’s Then panel. Join the If itself to the line with Connect to Sequence, like any block.

Its condition is the one box on the If. The card gives it after the word If. Click the box, type it whole as the card spells it, such as fireRateReady.value == true, and press Enter. A red edge means a name in it isn’t one this Logic knows. Check the spelling against the card.

To put a block on the True line, right-click the If and choose Add Inside Then. A window opens with the Actions in it, and a filter at the top. Pick the Action and press OK. It lands under the If, but not joined yet. Right-click it and choose Connect to Sequence, as on the main line. It joins the end of the True line.

The step numbers count right through the panels. So step 3 may sit inside an If that began at step 2, with an indent to show it’s in there. The indent shows which panel each one belongs to, whatever its number.

For Chapter 2, that’s all you need. The rest can wait.

From Chapter 8, a condition can join two tests. && means and: both have to be true. || means or: one is enough. Type them into the same box.

From Chapter 4, the card’s Otherwise panel is the If’s Else, the Actions for false. Right-click the If and choose Add Else. The Else appears beside the If, on a line marked False. Right-click the Else and choose Add Inside Else for each of its Actions, and join each one with Connect to Sequence. Otherwise gets a step number like everything else. It isn’t in the Action List, though.

From Chapter 6, steps can follow a whole If, after both of its panels. A step with no indent after the If’s panels is on the main line, below the If, where its True and False lines meet again. Add it from the Action List and join it with Connect to Sequence.

From Chapter 7, a Repeat runs its Each time panel a set number of times, its Count. Its box is on the Repeat block itself. Type the card’s count there. Right-click the Repeat and choose Add Inside Repeat for each Action in the panel, and join each one the same way. Inside a Repeat, local.index says which time round it is, counting from 0.

A Function Card

A Function is a small piece of Logic that does one job when it’s asked. Tint Sprite, from Chapter 3, tints one Object’s picture. Make one with Add > Function. The Create Function window asks only for its Name.

FunctionTint Sprite

Tints the target's sprite: color and mode ("multiply" colors the art, "solid" paints every visible pixel).

PARAMETERS
NameTypeStarts at
targetObject
colorColor#ffffff
modeTextmultiply
ACTIONS
1Change Sprite Tint Property
Applies to
target
Value
color
2Change Sprite Tint Property
Applies to
target
Property
Mode
Value
mode
3Change Sprite Tint Property
Applies to
target
Property
Enabled
Value
true

Its card has PARAMETERS and ACTIONS. There’s no Event. Its Actions hang in one line on the canvas, from Start to End, and they run each time another piece of Logic calls it. The first block lands apart, as anywhere else, and Connect to Sequence starts the line with it.

PARAMETERS are the values the Function is handed. Make them on its Start block, under Parameters, with the + there. The Add Parameter window asks for a Name, a Type and a Default, the card’s Starts at. A Function has no self. Every Object it works on is handed to it, like target, the Object to tint. A Parameter that is handed an Object takes the Object at the very end of the Type list. There’s an Object higher up the list too, among the plain values. That one holds an Object’s name, the way a Number holds a number. Pick the one at the end.

From Chapter 4, a Parameter’s Type may start with Thing, such as Thing Particle. That’s Particles, among the kinds that run from A to Z lower in the Type list. Its Default is a list of your particle effects, starting on None. From Chapter 8, an Object Parameter may name the Object it takes, as in fighter Object Fighter. Its window then asks for an Object Kind instead of a Default. Pick the card’s Object there.

Inside a Function, Applies to and Object to Create hold the Function’s Object Parameters, such as shooter.

From Chapter 11, one Function hands back an answer. Its card has a RETURN TYPE line. Click the small card named Function at the top left of the canvas, and it folds open to show the Name, the Description and the Return Type. Pick the card’s type there. Its last Action is a Return, from the Action List’s Logic group. Its Value box holds the answer, and the Action that called the Function reads it.

A Data Table Card

A Data Table is a spreadsheet the game reads while it plays, one row for each thing. Make one with Add > Data Table. The Create Data Table window asks only for its Name. A new table makes a Data Structure for its rows, named after the table with Entry on the end. You’ll find it in the Resources, under Data Structures, with the ones you made yourself.

Data TableEnemy TypesData Structure: Enemy Stats
Row 0Enemy Fighter
speed3.7
health1
points100

Enemy Types names Enemy Stats in its head, after Data Structure. Its rows are Enemy Stats, the one every enemy carries. So open the Entry Type list, which starts on Enemy Types Entry, and pick Enemy Stats there. Its three fields become the table’s columns. The Enemy Types Entry the new table made stays under Data Structures, unused. It does no harm, so leave it, or delete it.

Add each row with Add Row, under the grid. A row’s name is in the grid’s Entry column, and you double-click it to change it. Type each value the card gives. The card counts rows from Row 0, and the editor numbers them from 1. So the card’s Row 0 is your first row.

From Chapter 4, Enemy Stats gains fields. Enemy Types shows each new one at once, as a new column, and every row keeps what you typed before. A new field starts as a Number at 0, and the rows already there take that 0. A Value you give the field afterward doesn’t reach them, so check each new column against the card.

From Chapter 7, other tables keep the Data Structure they make. Reinforcement Orders names Reinforcement Orders Entry in its head, and that Entry’s card comes right before the table’s. Open the Entry under Data Structures, and add its fields from its card, each with its default. Each field is a column of the table. Then add the rows. From Chapter 8, a field can be a Boolean, and each of its cells is a switch: on is Yes, off is No.

A Particle Effect Card

A particle effect is a spray of tiny pictures: a flash at a gun’s muzzle, a burst of flak, an explosion. Make one with Add > Particle. The Create Particle window asks for a Name and a Starter. Leave the Starter on Blank Particle, because a particle card lists only what differs from a blank effect. Press Create, and the new effect is under Effects in the Resources.

Particle EffectGun Muzzle
Emitter
Emission > Burst Count8
Emitter Shape > Emit Shapepoint
Motion
Lifecycle > Each Particle Lives (ms)min 70, max 170
Motion > Speed (m/s)min 0.938, max 3.594
Motion > Angle (Deg)min 70, max 110
Appearance
Appearance > Color SourceMultiple Colors
Appearance > Multiple Colors#FFF8D2, #FFD166, #FF9F43
Appearance > Glow1.2
Appearance Over Life > Scalestart 0.58, end 0
Appearance Over Life > Size Variation (0–1)0.35
Appearance Over Life > Starting RotationRandom Spin On

Its Properties come in three pages, Emitter, Appearance and Motion, and you pick one in the list at the top right of the preview. The card groups its lines by those pages too, with Motion before Appearance.

Each line names a section, then a field. Lifecycle > Each Particle Lives (ms) is that field in the Lifecycle section. Open the section if it’s closed. A min and a max go in the two boxes of a range, and a start and an end go beside their small captions. A line ending in On is a switch. Starting Rotation Random Spin On means: turn on the Random Spin switch under Starting Rotation.

From Chapter 2, Motion > Angle (Deg) is a dial. Its min and max go into the Min and Max boxes under it. Glow is a slider. Drag it, or click it and use the arrow keys, until its readout shows the card’s number. Size Variation (0–1) is a single box.

Every effect in Pacific Wings bursts, a handful of particles at once, when an Action asks. Burst Count is how many. When the Burst Particles Action gives a Count of its own, the Action’s Count wins.

Multiple Colors is a list. Pick it in Color Source, and the list starts with two rows. Add Color adds another. Click a row’s swatch, and type the card’s code into the HEX box.

Changes Cards

From Chapter 2 on, the game changes what you’ve already made. A Changes card shows the whole piece with the changes marked, so you can find your place. Lines marked Add, in green, are new: add them. Lines marked Delete, red and struck through, are gone. Delete them. A block goes with a right-click on it, then Delete in the menu that opens. When a step stays and only one of its values changes, its new value is green, with the old one struck beside it. Everything else is there already. This card arms the Fighter in Chapter 2.

ObjectFighterAddDelete
Transform
Bounding Box > SizeX 2.88, Y 2.88
Sprite
Scene Depth Draw Order40
SpriteFighter Art
Transform > SizeX 2.88, Y 2.88
Collider
Shape and Transform > ShapeCapsule
Shape and Transform > PositionX 0, Y -0.09
Shape and Transform > SizeX 0.698, Y 1.733
Coordinate
NameCenter Muzzle
Local PositionX 0, Y 1.193
Logic
Vertical Shooter Controls
Fighter Guns
Shared Variables
moveSpeed7.8
scrollSpeed2.25
tracerFighter Tracer

From Chapter 4, a new step can go between two old ones. Connect to Sequence only adds to the end of a line, so use the round handles instead. Click the round handle at the bottom of the block the new step should follow. Then click the new block’s top handle. To put it first, start from the Mode’s block, which has a bottom handle too. The handles join blocks of one panel only. So between two blocks inside an If’s or a Repeat’s panel, add the new block with that block’s own Add Inside item first.

When an Event’s When bar is struck, with a new one in green above it, the Event changes. If only its Object changes, pick the new one in its Collision Target list. If its kind changes, right-click the Event’s block and choose Change Event…, and pick the new kind. Its Modes and their Actions stay.

If Your Game and a Card Disagree

It will happen. A value lands in the wrong field, or a step goes in the wrong panel. That’s how everyone learns this.

A piece that does nothing at all? Look first for a block with no arrow into it, and join it with Connect to Sequence. A block drawn in red, and a number on the Errors bar under the canvas? Open the bar. It says which block, and what it misses. Count the quotes. A Mode that never answers? Look at the Event’s Starting Mode, and at the Switch Modes that should turn it on.

Every chapter’s Goal offers that chapter’s finished project as a download. Open it with File > Open Project…, and Myth offers to save yours first. Go down the piece that misbehaves, line by line. Then open yours again from File > Open Recent and do the same. Where the two part ways is your answer. Or start the next chapter from the download. Nothing you built is wasted, because now you know where everything goes.

Chapter 1 begins with the sea, deep blue at the top, and one navy-blue Fighter waiting low in the middle.