1: Getting Started
2: Building Logic
5: Game Mechanics
6: Advanced Topics
7: Testing & Tuning
8: The Last 10%
M1: Mobile - Intro
M2: Mobile - Basics
M3: Mobile - Services
M4: Mobile - Publishing
B: How-To Guides
3.0 Drafts (In Progress)
Testing your Game
Testing in Flash
Press the Test Game button, or type Ctrl + Enter (or Command + Enter on Mac) to test your game in Flash.
By default, Stencyl games test in the standalone (desktop) version of Flash Player. You can optionally run games inside the web browser instead by switching this in the Flash Player option dropdown.
Note: For mobile projects, we don't show the Test Game button in the toolbar due to space constraints. We encourage you to use the shortcut or menu instead if you need to test in Flash rather than iOS.
Testing in iOS
We've written up a separate article on iOS testing and debugging.
Print to the Console
It's often useful to record things that happen in a game during testing in a way that can be easily seen. For example...
One quick and easy way to do this is to print these values to the console. Think of the console as a temporary text file that you can write out text to and view while the game is running.
How to Print to the Console
Use this block. (Flow > Debug)
To view the console in-game, press the ` key. It's the one below ESC.
Note: If you're testing an iOS game, we pop up the Mac's Console app instead.
Debug drawing is a special mode in which collision shapes are drawn as outlines. This can help you debug physics-related problems.
Use the following blocks (Flow > Debug) to turn debug drawing on and off.
A profiler is software that measures your game's performance by telling you how much memory it's using.
To view the profiler, right-click your game and pick the Profiler menu item out.
How do you read this? The profiler charts out memory usage over time.
It's normal for a game to see small but continual memory increases even if nothing is happening. After a while (30 - 60 seconds), the memory usage will suddenly drop back to a baseline level. This is known as garbage collection, a time when a program ditches a bunch of memory it's holding to but has no more use for.
Bottom Line: Generally speaking, memory usage isn't a problem for most games and only becomes an issue to investigate when a game's framerate isn't smooth.
Compiler Errors (can't run game)
Ever seen this window? This is a Compiler Error, which is an error that happens when we're unable to build your game into a Flash SWF for testing or exporting.
In most cases, if you hit OK, we'll open the offending behavior and highlight the blocks that are at fault.
In this case, we've used the "actor inside region" block outside its context. It has to be used inside its wrapper (something that seems obvious but can easily happen if you're not careful).
What are the common causes of compiler errors?
On iOS, compiler errors are somewhat more common. In many cases, these are caused by failing to "cast" (convert) a value to text when printing it or drawing it to screen.
What can I do about them if I'm stuck?
Runtime Errors (game errors out)
Runtime Errors are errors that happen while the game is running. They frequently lead to "freezing" of the game. If your game is freezing up, check the Console (` key). You might see this kind of text.
Note: In some instances, Flash itself will display a popup with an error of its own with similar information.
Fortunately for you, a runtime error usually tells you what's going on. The first line usually tells you where the error happened. You often see line numbers (line 57), which can point you roughly towards the offending line.
What causes runtime errors?
By far, the most common cause is referring to an actor after it's been killed. This accounts for 90% of cases.
If you're stuck, ask on the forums. Take screenshots and attach your logs.
1) Come up with a testing workflow that you feel comfortable with. Don't blindly guess what's wrong. Stick to the facts and verify your assumptions by printing to the console.
2) Is your game running slowly? Read the next articles in this Chapter to diagnose the causes and come up with solutions.
3) It can tempting to "reinstall" the software to fix problems. In reality, this not only wastes time, but it can also cause more problems in the long run. Although there are circumstances where a reinstall is required, avoid the temptation and only switch to it as a last resort.
Last Updated: 2012-08-23 by Ceric
9959 have read this article
Disclaimer: The Stencyl Team does not actively monitor comments on articles. If you're seeking help for your game, please ask a question on the forums. Thanks!