Build a GameCreating Pacific Wings

Appendix E — Troubleshooting

Every chapter’s If it didn’t work names the slips most likely in that chapter, and how to find each one. Here they are together, chapter by chapter.

Two checks find most of them. First, names must match exactly: a message, a timer or a table row is matched letter for letter, capitals included. Second, compare with the chapter’s game. Every chapter’s Goal holds the game as it is at the end of that chapter, and its catch-up download is that chapter’s finished project. Play it next to yours.

E.1 Chapter 1: The Fighter Flies

The game is tall and narrow, with blue-violet strips at its sides, a flat dark band across the top and a smaller Fighter? The Main View’s Bottom didn’t take. The View stayed at the foot of the editor’s screen, and the game’s rectangle still starts at the top. So the rectangle grew to 768 tall, with an empty band above the View. Width 640 and Height 480 go in first, then Left 0 and Bottom 288. Type the Bottom again now.

The sea is there, but no Fighter? Open Route and look for Fighter in the Scene Explorer, the list on the right that shows everything placed in the Scene. If it isn’t there, drag it in again from Predefined Objects. If it is, select it. Its World Position should read X 10 and Y 5.625.

Is the Fighter far too big, or far too small? Look first at the Main Camera’s Visible Width and Visible Height, under Cameras and Views. They should be 20 and 15. Then look at the Sprite’s Transform > Size, 2.88 by 2.88.

The keys do nothing? Perhaps the Logic never reached the Fighter. Open the Fighter and pick Logic in the list above its preview, and look for Vertical Shooter Controls in its Attached Logic. If it is there, look in the Input Manager, where Move needs its eight keys.

Two Commands in the Input Manager? If you made a Move of your own, Vertical Shooter Controls never listens to it. It listens only to the Command it brought. Delete yours with the red button beside its pencil, and rename the other one Move.

E.2 Chapter 2: Machine Guns

Press Play, and a window called Can’t run yet opens instead of the game? Myth checks your Logic before running it, and this time it found a slip, so the game waits until you fix it. Fighter Guns shows red in the Resources too, and the Errors bar under its canvas counts the slips. The window’s message names Fighter Guns and says what’s wrong, in one of these ways:

  • It says a Coordinate is missing on Object “Fighter”. Center Muzzle is spelled one way in a block and another on the Fighter. Make them match.
  • It points at the If, at a name it doesn’t know. The If is asking for fireRateReady, so the Action Name in Check Cooldown Ready has to read fireRateReady too.

Fix it, close the window, and press Play again.

Nothing fires at all? Perhaps the guns never hear the key. Open the Input Manager and look for Fire, with Space in its row. Next, check Fighter Guns’ Event. It should be Command Held, with Fire as its Command. Last, open the Fighter and pick Logic in the list above its preview. Fighter Guns should be in its Attached Logic.

Sparks and a rattle, but no tracers? Create Instance never joined the line, so it’s still beside the If’s True line, with no arrow into it. Right-click it and choose Connect to Sequence. It joins after Start Cooldown, and the guns fire as they should. Missing the sparks or the rattle instead? Look for that block with no arrow into it, and join it the same way.

A solid line of tracers, one at every step? The guns aren’t waiting. Look at Start Cooldown. Its Applies to should be Self, not created. If it already says Self, compare its Cooldown Key with the one in Check Cooldown Ready: both are fireRate, spelled the same.

The tracers come further apart than in the Goal’s game, two or three in the air instead of three or four? Start Cooldown’s Seconds still says 0.2, where it starts. Type @self.fireRateSeconds.

The tracers don’t fly at all? They hang where they leave the nose, and the plane flies on without them, so they trail down the screen behind it. Create Instance’s Launch Speed is empty. Type @self.tracerSpeed.

The tracers fly sideways, to the right? Create Instance’s Launch Angle is still 0, where it starts. Type 90.

The tracers start in the middle of the plane, not at its nose? Look at the Fighter’s Center Muzzle. Its Local Position Y should be 1.193. Then look at Create Instance: Self Position should be Coordinate, with Center Muzzle in its box.

E.3 Chapter 3: The First Enemies

The enemies never come? Look in Route’s Scene Explorer for five Enemy Fighters, at Y 18.75 and more.

The enemies come into view and hang there? Then the Enemy Fighter isn’t reading its row, and its speed is Enemy Stats’ own starting value, 0. Open it, and select Enemy Stats. Input Source should say Data Table, and Row should say Enemy Fighter. Under Variables, speed’s Kind should be Expression. Its box holds the card’s line, spelled exactly. Last, Fly South When Seen should be in its Attached Logic.

The enemies show at the top of the view and fly off north again? Fly South When Seen’s Y Velocity is missing its minus. It should read @self.speed.

The enemies fly tail first? Look at the Sprite’s own Transform, where Rotation (deg) Z should be -180.

A tracer flies on through the enemy it hits? Look for Breaks on Hit on the Fighter Tracer, with Tagged Enemy Aircraft in its Collision Target. Then the Enemy Fighter’s Tags: Enemy Aircraft should be spelled the same way there.

Each hit flashes, but nothing ever breaks up? Look for Shot Down in the Enemy Fighter’s Attached Logic, and read its Event’s block: it should say On custom event noMoreHealth, spelled exactly so. Last, Takes Hits’ Change Component Value needs -= as its Operator.

No white flash, though hits break them up? Look in Takes Hits for the Wait between the two Tint Sprites. It holds the line for flashSeconds. Without it, the peach paints over the white in the same instant.

You made the score visible, and it stays at 0? Then look at Score’s Change Variable. Its Variable is $score, its Operator +=, and its Value other.enemyStats.points. Do the enemies hang in the view as well? Then look at their row, as above.

Press Play, and a window called Can’t run yet opens instead? Its message names the piece with the slip and says what’s wrong, as in Chapter 2. Suppose it points at Tint Sprite. Perhaps the second Change Sprite Tint Property still has Color in its Property list, where Mode belongs. Fix whatever the message names, close the window, and press Play again.

E.4 Chapter 4: Enemy Fire and Lost Planes

Press Play, and a window called Can’t run yet opens instead? Its message names the piece with the slip, and what’s wrong with it. Fix it and press Play again.

The enemies never fire? Look for Fire When Seen on the Enemy Fighter, with Enemy Tracer as its tracer and its three timings as Expressions. Then look for a Coordinate named Gun Muzzle on the Enemy Fighter, spelled exactly so.

Their tracers fly north, or sideways? Fire When Seen’s Fire From Muzzle needs -90 in its direction box, where the Function’s Default is 90.

A red tracer passes through you, and nothing happens? Perhaps the Enemy Tracer isn’t wearing its Tag. Select its Tags component and look for Enemy Threat in its Object Tags. Then look for Lost on Hit on the Fighter, with Tagged Enemy Threat on its Event’s block.

The plane breaks up, but no new one comes? Look in Planes for the launchReserve timer, typed the same in both places, and for startReturnFlight typed the same in Planes and Return Flight.

The new plane never comes into view? Perhaps Track the View isn’t on the camera. Select Main Camera in the Route Scene, and look under Logic. Then look at Return Flight’s Tween Property, where the Property should be Y, not Alpha.

The new plane comes, but it steers or fires while it flies in, or it’s lost at once? Look at Return Flight’s three Switch Mode steps, and the Mode each one picks.

Five cream planes sit under the score instead of two? Each placement needs its own slot, 1 to 5, in its Slot box. Left alone, every Slot box reads 1.

E.5 Chapter 5: Title, Pause and Play Again

Press Play, and a window called Can’t run yet opens instead? Its message names the piece with the slip, and what’s wrong with it. Fix it, and press Play again.

The title never shows, and you’re flying at once? Look at Mission Start’s Game Start, where both blocks should pick Start Menu in their Menu Element slots. Then look at Initial Game State, in Game Settings > General: it should be Title.

The title shows, but Enter does nothing? Open Start Menu, and select UI Interaction. Its Confirm Command should read Start Mission, and its Event startMission. In Game Settings > Input Manager, Start Mission should have Enter.

The score never shows? Look at Show the Flight HUD’s If. Its condition should end with "playing", in lower case, between quote marks. Its two UI Group boxes should read "flight", with the quote marks.

Esc does nothing while you fly? Look at Menu Cancel, in Game Settings > Input Manager. If its row still reads No Input Assigned, the first Escape cancelled the capture. Click the row, and press Escape twice, quickly.

The world stays still after RESUME? Look at the second Set Menu Pause State in Pause. Its Pause the World should read No.

BEST never shows? A score of 0 is never saved, so shoot down at least one enemy first. Last, look at Best Score’s two Keys: both should be "bestScore", spelled the same.

E.6 Chapter 6: Aces and Heavy Bombers

Press Play, and a window called Can’t run yet opens instead of the game? Its message names the piece and what’s wrong with it. Fix it, and press Play again.

The Aces never come? Look in the Scene for their placements, at the World Positions on the card. Perhaps one went in with its X and its Y swapped, so it waits somewhere off the route.

The Aces fly straight down? Open the Enemy Ace and pick Logic, where Weave should be in the Attached Logic. Back in Components, its three Shared Variables should be Expressions. Last, look at the Ace’s Data Structure, where the Row should be Enemy Ace.

They drift away to one side, and never come back? Look at weaveTurn’s Change Component Value. Its Operator should read *=. With =, weaveSide stays -1, and every turn goes the same way.

The Aces swing, but stop flying south? Look at Set Velocity in Weave, where the Y Velocity box should be empty.

Every enemy fires straight down, Aces too? Look at the Ace’s Shared Variables. aimConeDegrees should be an Expression, and fighter should be Fighter. In the Ace’s row of Enemy Types, aimConeDegrees should be 65.

Tracers fly sideways, or north? Look at Fire From Muzzle’s direction box, which should read direction. If it does, look at the two cone Ifs. A minus sign can slip out of a box without a sound, and the cone turns around.

The Enemy Fighters’ tracers hang in the air without moving? Their tracerSpeed cell in Enemy Types is still 0. Type 7.7.

E.7 Chapter 7: The Route

Press Play, and a window called Can’t run yet opens? Its message names the piece and what’s wrong with it, so fix that, and press Play again.

A piece of scenery leaves and never comes back? Open that piece and pick Logic. Move Ahead When Passed should be in its Attached Logic.

The scenery comes back too close, or piles up? Look at the If in Move Ahead When Passed, where the condition compares $furthestSceneryY with leadY, with a < between them.

The cloud doesn’t drift? Look for Drift Sideways in the Cloud Bank’s Logic, and check startDrifting, spelled the same in all three places.

The cloud drifts off one side and never comes back? Look at the two timer names. Start Recurring Timer’s driftTurn and the Event’s driftTurn must match, letter for letter.

Pale capsules float by while you fly? Those are the milestones. Look at Report Milestone’s Create Event, where Set Alpha should hold 0.

No reinforcements at all? Click each Squadron in the Scene Explorer. Its Kind must be spelled like a row in Reinforcement Orders, and like the Object it sends. Last, Stages belongs on Game Rules. Its stageReached starts everything.

The first group of reinforcements comes, and then no more? Look at the last three steps of the reinforcements timer’s Event. They belong below the whole Repeat, not inside it, and Start Recurring Timer’s Applies to should read Self.

Enemy Fighters come, but never Aces or bombers? Perhaps the Milestones aren’t placed, or not where the card says they go. Each one has to come into view for the stage to rise.

Planes shove each other sideways, or bounce? Look at their Colliders’ Tags and Interactions, on all three kinds.

E.8 Chapter 8: Pickups and Weapon Levels

Press Play, and a window called Can’t run yet opens? Its message names the piece and what’s wrong with it, so fix that, and press Play again.

You fly through the badge, and nothing happens? Look at its Collider first. Collision should be Sensor. Next, look at Collected by Fighter’s Collision Enter, where the Collision Target should read Fighter.

The badge sits still, and doesn’t turn? Look at its Transform, under Physics, for Allow Rotation. It should be On.

The badge vanishes with a chime, but the guns don’t change? Perhaps the message’s name doesn’t match. Collected by Fighter’s collectedEvent and Weapon Level’s Event must both read wingCannonsCollected, letter for letter.

The guns change, but fire the wrong way? Look at the two Ifs in Fighter Guns, and the three muzzle boxes. Each wing call names its own muzzle. Then look at the Fighter’s two new Coordinates.

Hold Space, and one tracer leaves, then only the rattle goes on? Control Sound and Start Cooldown have slipped below the whole fireRateReady If, so the cooldown starts again every moment you hold Fire. Take each off with Disconnect from Flow, and join it again from its own menu, Connect to Sequence. A loose block joins the line it came from.

No tracers at all now? Perhaps Start Cooldown’s Seconds still names fireRateSeconds, or a call’s flash box still names muzzleFlashParticles. Each of those boxes turns red, and the Errors bar under the canvas says which. Type the card’s value into it.

The crate adds no plane? Check repairCrateCollected, spelled the same on the Repair Crate and in Planes.

No supply drops ever come? Supply Drops belongs on Game Rules, with Wing Cannons and Repair Crate picked under Variables. And its Scene Start starts the timer.

E.9 Chapter 9: Kill Chain

Press Play, and a window called Can’t run yet opens? Its message names the piece and what’s wrong with it, so fix that, and press Play again.

The score stops climbing when an enemy breaks up? Look at Score’s first step. Its Value should name the table exactly, Kill Chain Multipliers, in quote marks, and its Variable should be multiplier. Then check that the old step is joined after the new ones, not left loose.

Every enemy counts once, however fast you shoot? Maybe Kill Chain never hears the message. Score’s last step and Kill Chain’s Event must both read shotDownScored, letter for letter. And Kill Chain belongs on Game Rules.

The chain climbs, but never breaks? Look at the two timer names, Start Recurring Timer’s killChain and the Event’s killChain. They must match, and Ring Once should be Yes.

The chain breaks at red, mid-run? Perhaps Start Recurring Timer is inside the If, on its True line. At the top of the chain the If is false, so no shoot-down starts the timer over. It belongs below the whole If, on the main line.

The points multiply, but the color stays cream? Look in Score Text’s Logic for Kill Chain Color, and then at its Event’s block, which should name chainRow.

E.10 Chapter 10: Focus

Press Play, and a window called Can’t run yet opens? Its message names the piece and what’s wrong with it, so fix that, and press Play again.

The Fighter won’t move at all, Shift or no Shift? Look at moveSpeed under the Fighter’s Variables, whose Value should be 7.8, and at Focus’s normalSpeed beside it, which is 7.8 too. A 0 in either one stops the steering.

Shift does nothing? Open the Input Manager, and look for Focus, with Shift in its row. Then look at each Command Held block, in Focus and in Show While Focusing, where each should name Focus, not Fire.

The capsule shows, but the Fighter stays quick? Look at Focus’s two Change Variables, where each Variable box should read @self.moveSpeed. Then look at moveSpeed on the Fighter. It should say From Logic: Vertical Shooter Controls, Focus. If it shows twice, one name is spelled differently, and Focus is changing a speed nothing reads.

The Fighter slows, and stays slow after you let go? Perhaps the last step of Begin Step, the note taken down, landed inside the If’s Else. It belongs below the whole If.

The capsule never shows, or never goes? Look at the three Set Alphas in Show While Focusing. The two that hide take 0. The one under Command Held leaves its Alpha as it starts.

The capsule is far too small? Look at the child’s Size on the Fighter’s Child Objects. It should be 2.781 by 6.938.

E.11 Chapter 11: The Command Bomber

Press Play, and a window called Can’t run yet opens? Its message names the piece and what’s wrong with it, so fix that, and press Play again.

The enemies stopped turning white, or stopped aiming, after the first part? Look at the new Function in Takes Hits, whose target should be self. In Fire When Seen, the call should be named aim, and Fire From Muzzle’s direction should read aim.value.

The bomber never appears? Look for it in Route, at the far north end, and for Command Bomber Arrival in its Attached Logic.

It slides down and keeps going, off the bottom of the screen? Perhaps the formation timer never rings. Look at Command Bomber Arrival’s Start Recurring Timer, and at the Y Velocity of its Set Velocity.

It never fires? Its guns wait for phaseStarted, so look at Command Bomber Arrival’s last step. Each gun’s first Event should listen for phaseStarted too.

Your tracers hit it, but nothing counts? Look at Command Bomber Hits first: its Collision Target should be Fighter Tracer. On the bomber, meterField should read damage.

The phases never change? Look at the threshold’s formula on the bomber, and at the meter variable on Command Bomber Health’s Event, which should be meterWithThresholdsData.meter.

The bar is empty, and the bomber flies on? Perhaps Next Phase’s Switch Mode has an empty list. Its Event should be the one beside Command Bomber, and its Mode Shot Down.

Your Fighter flies into the lane? Look at topSafeInset under the Fighter’s Variables, which should be an Expression, $bomberLaneMeters.

E.12 Chapter 12: Rounds and Mission Complete

The bomber goes down, and nothing more happens? Look at Score first. Its last Event should end with Trigger Custom Event on Object, commandBomberScored. And is Rounds on Game Rules?

The fade comes, but the route starts as round 1 again? Perhaps $roundRow never moves. Look at the Change Variable in On the Round Breather Timer, whose Operator should be +=.

Round 2 has no score and no reserve planes at the top? Look at Rounds’ Scene Start. Its two Set UI Group Visibility steps need flight and sky, spelled as the Groups are.

The sky never changes? Look for Round Sky in Route’s Scene Explorer, the list on the right, with its Z-Index of 10000, and at its Group, which should be sky, the name Rounds shows. Then look at Round Sky Color’s second step, whose Property should be Mode.

The last bomber falls, and nothing shows? Look at Game Settings, where Mission Complete should be one of the Game States. And on Mission Complete Menu, gameState should read mission-complete, with menu picked as Mission Complete Menu itself.

PLAY AGAIN after MISSION COMPLETE does nothing? Look at Mission Complete Menu’s Event, under UI Interaction. It should be playAgain, the message Play Again has listened for since Chapter 5.