This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Debugging

How to run a level directly with Debug Mode, and how to inspect and drive a running game with the in-game GS_Play menu.

Two things make working on a GS_Play project faster: Debug Mode, which lets you press play on the level you are editing instead of booting the whole game, and the in-game GS_Play menu, which lets you see and change what the framework is doing while it runs.

For architecture details and the extension guide, see the Framework API reference.

 

Contents


Debug Mode

Tick Debug Mode on your Game Manager and pressing play runs this level, right now.

Without it, a project boots the way a shipped game does: it starts up, waits for the game to be begun, then loads the configured starting stage and navigates away from whatever you were editing.

With it, three things change:

SystemNormallyIn Debug Mode
Game ManagerWaits for your title flow to begin the gameBegins the game as soon as startup completes
Stage ManagerLoads the project’s starting stageStays in the current level, if it has a Stage Data component
Unit ManagerWaits for the game flow to place the playerPlaces the player at the debug exit point

The net effect is that you get a running, playable level without a title screen or a stage transition.


The In-Game Menu

Run the game with ImGui enabled and there is a GS_Play entry in the menu bar. Each gem contributes its own section.

MenuWhat you can do
Core ▸ OptionsSee every setting your project declares, grouped by category, and change any of them live. Apply, save, reset individually or all at once, and try presets.
Core ▸ Game ManagerInspect the game manager, and exit the application.
PhantomCam ▸ Camera ManagementPick the active camera, force one to the front, and edit its lens live.
Audio ▸ Audio MixerMaster volume plus a slider for every volume channel.

The Options window is the fastest way to test a new setting. Author the option, press play, and drive it from the menu — before writing any menu UI of your own. Every edit goes through the same bus your UI will use, so if it works there it will work in your game.

The Audio Mixer is similarly useful for balancing: run the game, play the sounds, and move the channel sliders until the mix is right.


Making a Manager Talk

Every manager has a Logging Depth property. Set it above zero and that manager reports its lifecycle as it activates, sets up and shuts down.

This is per-manager on purpose. When you are diagnosing one system’s startup, turn it up on that manager rather than making the whole framework verbose.


Quick Reference

NeedWhere
Run the current level without booting the gameDebug Mode on the Game Manager
Change a setting liveGS_Play ▸ Core ▸ Options
Balance the audio mixGS_Play ▸ Audio ▸ Audio Mixer
Switch or tune a camera liveGS_Play ▸ PhantomCam ▸ Camera Management
See one manager’s startupLogging Depth on that manager
Check debug mode from scriptGameManagerRequestBus ▸ In Debug

Glossary

TermMeaning
Debug ModeA Game Manager property that begins the game immediately and keeps you in the current level
Stage DataThe per-level component that lets the Stage Manager treat a level as a stage
Logging DepthA per-manager verbosity setting for lifecycle logging

See Also

For the full API and the extension guide:

For related systems:


Get GS_Core

GS_Core — Explore this gem on the product page and add it to your project.