Thank you for visiting this site.
In this article, we will explain how to combine Game Creator 2’s core features with other tools to “implement common game features”.
This is a practical game development guide aimed at answering the question “I want to do X — what should I use?”.
Official documentation: Game Creator 2 Documentation
You can find a list of all articles in this series below.
Fundamental Approach to Building Games with GC2
You Don’t Need to “Build Everything with GC2”
GC2 is not an engine that handles all aspects of game creation — it is a toolkit for rapidly building the gameplay logic layer.
- What GC2 excels at: Character control, camera work, event-driven game logic, save & load, audio management
- What to leave to other tools: UI layout, particles, shaders, physics materials, terrain, NavMesh baking, etc.
- When to write custom scripts: Complex numerical calculations (custom ballistics, etc.), real-time networking, procedural generation
”Event → Condition Check → Execute Instructions” Is the Foundation of Everything
GC2’s game logic is built from combinations of just 3 elements.
Trigger (when something happens) → Conditions (if conditions are met) → Actions (do something)
No matter how complex a game appears, each individual behavior is a small event-driven accumulation like “pressed button in front of door → if player has key → open door”.
Manage “State” with Variables
All game progression state (flags, scores, ammo count, current phase, etc.) is stored in Variables. Designing around Variables means:
- Accessible from anywhere (Global Variables)
- Automatically compatible with save & load
- Easy branching with Conditions
Build Small, Then Connect
GC2’s Actions are “a list of instructions that do one thing”. Rather than cramming complex logic into one giant Actions:
- Create multiple small Actions (open door, give item, switch camera…)
- Call them with Triggers
- Branch with Conditions
Building at this granularity makes reuse, debugging, and modification all easier.
3 Keywords to Understand GC2’s Design Philosophy
High-Level Scripting
GC2’s instructions are designed at “the granularity humans think in”.
| What You Want to Do | Normal Unity Script | GC2 Instruction |
|---|---|---|
| Walk a character to point A | NavMeshAgent.SetDestination + coroutine for arrival + animator control | Move To (1 instruction) |
| Switch camera to third person | Cinemachine VCam priority switch or hand-written | Change To Shot (1 instruction) |
| Fade out BGM and switch to another track | AudioSource × 2 crossfade script | Fade All Music → Play Music (2 instructions) |
Low-level calculations are handled internally by GC2, so you just describe “what you want to do” and it works.
Dynamic Value Resolution via Properties
Many instruction parameters are defined as Properties (dynamic value sources). For example, when specifying “destination”:
- Fixed coordinates (direct Vector3)
- Player’s current position
- A specific Marker’s position
- Coordinates stored in a variable
- Main Camera position
…can be switched via dropdown. Being able to switch between “fixed values” and “runtime-determined values” without writing code is why GC2 enables flexible design.
Loose Coupling via Signals
Direct references work fine, but using Signals (broadcast of named messages):
- Sender and receiver don’t need to know about each other
- Strong for prefabbing and scene splitting
- Receivers can be added later (
boss-defeatedsignal triggers door opening, BGM change, UI update…)
Signal-based design becomes increasingly valuable at larger scales.
”What I Want to Do” → “What to Use” Reverse Lookup Map
Character Movement
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Move player with WASD | Character (Player Unit → Directional) | Just configure, no instructions needed |
| Point & click movement | Character (Player Unit → Point & Click) | Set Driver to NavMesh Agent |
| Patrol an NPC | Move To chained with Markers | Loop with On Start + Restart Instructions |
| Make NPC follow the player | Start Following | Min/Max Distance configurable |
| Stop following | Stop Following | — |
| Change character movement speed | Change Movement Speed | Smooth change with Duration |
| Jump | Jump | Configure Jump Force etc. in Motion Unit |
| Dash (evasion) | Dash | Specify direction, speed, duration |
| Teleport | Teleport | Specify Location |
| Ragdoll (knockback) | Start Ragdoll | — |
| Recover from ragdoll | Recover Ragdoll | Auto-selects get-up animation |
| Death (ragdoll + input stop) | Kill Character | Auto-disables interaction + ragdoll |
| Revive | Revive Character | Auto get-up + control restored |
| Play a specific animation (one-shot) | Play Gesture | Wait for completion available |
| Play a specific animation (loop) | Enter State | Stackable with Layers |
| Disable player input | Is Controllable set to false | Use during cutscenes, etc. |
| Change footstep sounds per terrain | Footsteps + Material Sounds | Auto-switches by texture detection |
| 2D side-scroll movement | Axonometry → Side-Scroll XY | Set Rotation side to same |
| Isometric movement | Axonometry → Isometric 8 Directions | — |
Camera
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Third-person camera | Camera Shot: Third Person | Set Player as Orbit Target |
| First-person camera | Camera Shot: First Person | Follows head |
| Fixed camera (Resident Evil style) | Camera Shot: Fixed | Place multiple, switch with Triggers |
| Move camera during cutscene | Camera Shot: Follow + Change To Shot | Smooth transition with Duration |
| Lock-on camera | Camera Shot: Lock On | Just specify the target |
| Top-down camera (Diablo style) | Third Person (high fixed Pitch) | Set Min/Max Pitch to same value |
| 2D side-scroll style | Camera Shot: Follow (Z-axis fixed) | Combine with Axonometry |
| Switch Camera Shot | Change To Shot | Duration for transition effect |
| Revert to previous Shot | Revert To Previous Shot | Managed as a stack |
Game Progression & Events
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Execute something on game start | Event On Start | Fires once on scene load completion |
| When player enters an area | Event On Trigger Enter | Set Collider to Is Trigger |
| When specific tagged object enters | Event On Trigger Enter Tag | Filter by Tag |
| When object is clicked | Event On Interact + Hotspot | Interaction UI auto-displayed |
| Execute at regular intervals | Event On Interval | Specify seconds |
| Execute on key input | Event On Input Button | Specify Input System asset |
| Conditional branching | Conditions component | Multi-branch possible |
| Mid-Actions condition check | Check Conditions | Skips remaining if false |
| Flag management | Global Name Variables (Boolean) | Set Bool / Compare Boolean |
| Score management | Global Name Variables (Number) | Add with Increment Number |
| Timer (time limit) | Local Variable + On Interval decrement per second | Emit Signal when reaching 0 |
| Cutscene | Is Controllable(false) → Shot switch → character move → Is Controllable(true) | — |
| Scene transition | Load Scene | Add effects with Transitions Extension |
| Notify with Signal | Emit Signal | — |
| Receive Signal and execute | Event On Receive Signal | Fires on ID match |
Object Control
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Open a door (rotation animation) | Change Rotation | Natural motion with Duration + Easing |
| Open a door (Animator) | Set Animator Trigger | Define transition in Animator Controller |
| Make object appear | Set Active(true) or Instantiate | Can generate from prefab |
| Make object disappear | Set Active(false) or Destroy | Active for temporary, Destroy for permanent |
| Move an object | Change Position | With Duration for elevators, etc. |
| Change object color | Change Material Color | Fade with Duration |
| Physics knockback | Add Force 3D / Add Explosion Force 3D | Rigidbody required |
| Spawn a prefab | Instantiate | Dynamic Position/Rotation via Property |
| Object pooling | Pool Prewarm | Pre-generate to reduce Instantiate load |
| Enable/disable collider | Enable Collider / Disable Collider | — |
| Change parent-child relationship | Set Parent / Clear Parent | — |
| Play particles | Unity standard ParticleSystem + Set Active or Instantiate | No GC2-specific instruction, but works fine |
UI (User Interface)
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Display text (score, etc.) | Change Text | TMP compatible |
| Update text with variable value | Change Text Value set via Property to Variable | Real-time update with On Interval |
| HP bar | Slider + Change Slider | Auto-binding with Stats module |
| Show/hide menu | Canvas Group Alpha + Canvas Group Interactable | Fade in/out |
| Execute on button click | Button OnClick → Run Actions | — |
| Swap image | Change Image | Dynamic Sprite specification |
Audio & Effects
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Play BGM | Play Music | Loop, fade supported |
| Switch BGM | Fade All Music → Play Music | Crossfade |
| Play sound effect | Play Sound Effect | Spatial audio, auto pitch variation |
| Environmental sound (rain, wind) | Play Ambient | Loop, multiple simultaneous |
| Play character voice | Play Speech | 1 clip per character limit |
| Volume settings (options screen) | Change Master Volume etc. + Slider UI | Saveable to Global Variable |
| Slow motion | Time Scale | Blendable with Layer |
| Screen fade | Canvas Group Alpha (Canvas Group on black Image) | Smooth with Duration |
| Light flickering | Light Intensity / Light Color | Smooth change with Duration |
Save & Load
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Save game | Save Game | Specify slot number |
| Load game | Load Game / Load Latest Game | — |
| Delete save data | Delete Game | — |
| Check if save exists | Has Save At Slot / Has Save | — |
| Make object state saveable | Remember component | Position, rotation, active state, etc. |
| Save variables | Global Variables are auto-save targets | Local ones too on GameObjects with Remember |
| Save custom data | Implement IGameSave interface (C#) | Cloud save swap also possible |
| Reset game | Reset Game | Transitions to specified scene |
AI & NPC Behavior (Core Only)
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Patrol an NPC | Move To (Marker) × multiple + Restart Instructions | Loop with On Start |
| Make NPC wait in place | Wait Seconds + Enter State (idle animation) | — |
| Make NPC talkable | On Interact + Hotspot | Rich conversations with Dialogue module |
| NPC chases player | Start Following (Target: Player) | Adjust distance feel with Min/Max Distance |
| Enemy attacks on spotting player | On Trigger Enter (detection area) → attack Actions | Realistic detection with Perception module |
| Random behavior | Random branching with Conditions | Full AI with Behavior module |
| NPC gaze | Start Looking At | Directs eye contact |
With the Behavior module: State Machine, Behavior Tree, GOAP, and Utility AI — 4 methods become available for visually building complex AI.
Combat (Core Only)
| What You Want to Do | Feature (Core) | Notes |
|---|---|---|
| Manage HP | Global/Local Variable (Number) | More systematic with Stats module |
| Deal damage | Subtract Numbers to reduce HP variable | — |
| Death check | Compare Decimal (HP ≤ 0) → death Actions | — |
| Death sequence | Kill Character | Auto-ragdoll + input disabled |
| Attack animation | Play Gesture | Specify attack motion clip |
| Hit detection (melee) | On Trigger Enter (weapon Collider) → damage processing | Full system with Melee module |
| Hit detection (ranged) | Instantiate (bullet prefab) + Rigidbody + Trigger | Full system with Shooter module |
| Invincibility frames | Set Invincible | Auto-releases with Duration |
| Knockback | Dash (backward, short duration) or Add Force 3D | Dash is easier to control with animation |
| Target management | Set Target / Cycle Next Target | Links with Lock On camera |
With Melee / Shooter modules: Combo systems, parry, Motion Warp, recoil, ballistics, aiming, weapon switching — all buildable with dedicated assets + UI.
Level Up! The Guide to Great Video Game DesignView on Amazon →
Introduction to Game Design, Prototyping, and DevelopmentView on Amazon →
Practical Patterns Using Core Features Only
Below are 33 practical patterns implementable with just the GC2 core. Due to article length, only a selection of representative patterns are shown here — see the full list in the Japanese version for all 33 patterns.
4.1 Locked Door
The most fundamental “conditional interaction” pattern.
Required:
- Door object (with Trigger + Hotspot)
- Global Variable:
has_key(Boolean, initial value false) - Key object (sets
has_keyto true when picked up)
Door Trigger setup:
Event: On Interact
→ Conditions:
Branch 1: [Compare Boolean: has_key == true]
→ Change Rotation (door 90 degrees, Duration: 0.8, Easing: EaseInOut)
→ Play Sound Effect (door open/close SFX)
Branch 2: [Always True (else equivalent)]
→ Play Sound Effect (locked SFX)
→ Change Text ("The door is locked")
Key object Trigger setup:
Event: On Interact
→ Set Bool (has_key = true)
→ Play Sound Effect (pickup SFX)
→ Set Active (key object = false)
→ Change Text ("You got the key")
4.2 Dialogue (Without Dialogue Module)
Simple text display can be handled with just the core.
NPC Trigger setup:
Event: On Interact
→ Is Controllable (Player, false)
→ Canvas Group Alpha (dialogue panel = 1, Duration: 0.3)
→ Change Text ("Hello, traveler.")
→ Wait Seconds (2)
→ Change Text ("Be careful in the cave ahead.")
→ Wait Seconds (2)
→ Canvas Group Alpha (dialogue panel = 0, Duration: 0.3)
→ Is Controllable (Player, true)
With the Dialogue module: Choice-based branching conversations, speaker icons, text advancement (click-to-continue), conditional branch nodes — all available with standard UI skins.
4.3 Score System
Score object Trigger setup:
Event: On Trigger Enter Tag (Tag: "Player")
→ Increment Number (score, +100)
→ Change Text (score Text Value via Property from score Variable)
→ Play Sound Effect (score SFX)
→ Destroy (this object)
4.4 Moving Platform / Elevator
Trigger setup:
Event: On Start
→ Change Position (upper position, Duration: 3, Easing: EaseInOut)
→ Wait Seconds (2)
→ Change Position (lower position, Duration: 3, Easing: EaseInOut)
→ Wait Seconds (2)
→ Restart Instructions
Note: GC2’s Character is controlled by its own CharacterController/NavMeshAgent/Rigidbody, so making the character a child of the platform with Set Parent may not make it follow. As a workaround, give the character the same movement vector with Move Direction while the platform moves, or make the platform a Rigidbody (Is Kinematic) and change the Character’s Driver to Rigidbody.
4.7 Cutscene (Camera Direction + Character Movement)
Trigger setup:
Event: On Trigger Enter Tag (Tag: "Player")
→ Is Controllable (Player, false)
→ Change To Shot (Angle A, Duration: 1.5)
→ Move To (NPC → Marker_NPC_Position)
→ Wait Seconds (1)
→ Change To Shot (Angle B, Duration: 1.0)
→ Play Gesture (NPC, wave animation)
→ Wait Seconds (1.5)
→ Change To Shot (Angle C, Duration: 0.8)
→ Change Text ("It's dangerous beyond here.")
→ Wait Seconds (2)
→ Canvas Group Alpha (dialogue panel = 0, Duration: 0.3)
→ Revert To Previous Shot (Duration: 1.0)
→ Is Controllable (Player, true)
Key points:
- Setting
Change To ShotDuration above 0 creates smooth blend transitions Revert To Previous Shotreturns to the pre-cutscene Shot (Shots are stack-managed)Move Towaits for arrival before the next Instruction (Wait to Complete is ON by default)
4.8 Multi-Object Coordination with Signals
A pattern for notifying multiple independent objects from a single event.
Situation: When the boss is defeated, the door opens + BGM changes + UI updates
The boss side only calls Emit Signal once. No changes needed regardless of how many receivers exist, and each receiver can be prefabbed for reuse.
4.12 Simple Damage System
Player attack Trigger (input handler):
Trigger Event: On Input Button (Attack button)
→ Check Conditions: [Is Available: Player]
→ Play Gesture (Player, attack animation, Wait to Complete: false)
→ Wait Seconds (0.2) ← Wait for swing start
→ Enable Collider (weapon Collider)
→ Wait Seconds (0.3) ← Hit detection duration
→ Disable Collider (weapon Collider)
Enemy damage receiver Trigger:
Event: On Trigger Enter Tag (Tag: "PlayerWeapon")
→ Check Conditions: [Is Invincible: Enemy == false]
→ Subtract Numbers (enemy_hp, 25)
→ Set Invincible (Enemy, Duration: 0.5) ← Prevent multi-hit
→ Play Gesture (Enemy, hit reaction animation)
→ Play Sound Effect (hit SFX)
→ Check Conditions: [Compare Decimal: enemy_hp <= 0]
→ Kill Character (Enemy)
→ Emit Signal ("enemy-defeated")
4.16 Slow Motion Effect
On special move hit:
→ Time Scale (0.2, Blend Time: 0.1, Layer: 1) ← Slow to 0.2x
→ Shake Camera Burst (Duration: 0.3, Magnitude: 0.5, Roughness: 10)
→ Wait Seconds (0.5, Mode: Unscaled Time) ← Wait 0.5s in real time
→ Time Scale (1.0, Blend Time: 0.3, Layer: 1) ← Return to normal speed
- Setting
Wait SecondsMode toUnscaled Timewaits in real time unaffected by TimeScale - Characters with
Update Timeset toUnscaled Timemove at normal speed during slow motion
4.24 Enemy Spawning (Wave System)
Wave start Trigger:
Trigger Event: On Receive Signal ("start-wave")
→ Increment Number (current_wave, +1)
→ Check Conditions:
Branch 1: [Compare Decimal: current_wave == 1]
→ Set Number (enemies_alive = 3)
→ Instantiate (Enemy A Prefab × 3)
Branch 2: [Compare Decimal: current_wave == 2]
→ Set Number (enemies_alive = 5)
→ Instantiate (Enemy A × 2 + Enemy B × 3)
Branch 3: [Compare Decimal: current_wave == 3]
→ Set Number (enemies_alive = 1)
→ Instantiate (Boss Prefab)
4.33 Party / Companion Following
Multiple companion formation (staggered distance):
Companion 1: Start Following (Target: Player, Min: 2.0, Max: 3.5)
Companion 2: Start Following (Target: Companion 1, Min: 2.0, Max: 3.5)
Companion 3: Start Following (Target: Companion 2, Min: 2.0, Max: 3.5)
Create formations with a chain structure where “Companion 2 follows Companion 1”.
Level Up! The Guide to Great Video Game DesignView on Amazon →
Introduction to Game Design, Prototyping, and DevelopmentView on Amazon →
GC2 and Coexistence with Other Assets & Tools
GC2 is a toolkit that handles only specific areas of Unity’s framework.
Areas GC2 Occupies (Watch for Conflicts)
The following are areas GC2 fully controls internally — using another asset that handles the same area has a high chance of conflict.
| Area GC2 Controls | Example Conflicting Assets | Conflict Reason |
|---|---|---|
| Character movement, rotation, physics | Opsive UCC, Invector TPC, KCC, ECM2, etc. | Both fight for movement control of the same GameObject |
| Camera management | Using Cinemachine as “main camera control” | Both overwrite Main Camera Position/Rotation every frame |
| Save & Load | Applying Easy Save etc. to “GC2-managed data” | Same data saved twice causing inconsistency |
| Audio playback management | Another audio manager | Conflicts with GC2’s Volume hierarchy |
Areas GC2 Does Not Control (Free to Choose)
GC2 does not control these areas at all — use Unity standard or any third-party asset you like.
| Area | Relationship with GC2 |
|---|---|
| UI layout & design | GC2 only “writes values” with Change Text, etc. |
| Particles & VFX | GC2 only spawns with Instantiate / Set Active |
| Terrain & level design | GC2’s Character just walks on it |
| Shaders & materials | GC2 only manipulates externally with Change Material Color, etc. |
| NavMesh & pathfinding | GC2’s Driver just “uses” it |
| Animator Controller design | GC2’s Gesture/State is a thin wrapper on top |
| Physics (Rigidbody, Joint, Cloth) | GC2 provides Add Force etc. but doesn’t control physics settings |
| Networking | GC2 assumes single-player. Network layer is completely separate |
| Procedural generation | GC2 only manipulates post-generated objects |
| Post-processing & camera effects | GC2’s Camera only manages position and rotation |
Conflict Assessment Principle
Can this asset coexist with GC2?
├── Does the asset try to control "GC2's Character"?
│ → Yes → Conflict
│ → No → Compatible
├── Does the asset control "Main Camera Position/Rotation" every frame?
│ → Yes, and you also want GC2's Camera Shot → Conflict
│ → Yes, but you won't use GC2's camera features → Compatible
│ → No → Compatible
└── Does the asset handle areas GC2 does not control?
→ Yes → Free to use
Assets in the “Gray Zone” (Caution Required)
- Cinemachine: Conflicts if controlling the same Main Camera as GC2’s Camera Shot (frame-by-frame fight). Compatible if used for a separate camera (minimap, etc.)
- Animancer: Conflicts if directly manipulating GC2 Character’s Animator. Fine for non-GC2 Character GameObjects
- Playmaker / Unity Visual Scripting: Compatible. Explicitly stated in official documentation
- DOTween / LeanTween: Fine for objects not managed by GC2
What’s Difficult with Core Alone (The Value of GC2 Modules)
The greatest strength of GC2 modules is that they are fully integrated with GC2’s Visual Scripting, Variables, and Save & Load.
Inventory (Item Management)
Core only: Store item IDs in List Variables, manually build add/remove logic, construct Bag UI from scratch.
With Inventory module: Define with Item assets → manage with Bag components — done. Runtime Items (individual instance concept), Equipment (equipment slots), Currency, Merchants, Tinkering (crafting/dismantling), and Loot Tables (probability drops) are all included.
AI (Complex NPC Behavior)
Core only: With more than 4-5 states, tracking which Trigger corresponds to which state becomes difficult.
With Behavior module: 4 methods — State Machine/Behavior Tree/GOAP/Utility AI — with runtime visualization of currently executing nodes, making debugging dramatically easier.
Combat (Melee / Ranged)
Core only: Building combos (A→A→B for 3-hit chain) with Conditions makes input buffer and timing window implementation extremely tedious.
With Melee/Shooter modules: Phase management with Skill asset Sequencer, automatic input queue absorption with Combo asset Input Buffer, and Shield asset parry functionality are standard.
Perception
Core only: Spherical Trigger Colliders have no field-of-vision concept and detect through walls.
With Perception module: 4 sensors (Sight/Hearing/Smell/Feel), Awareness (gradual recognition), Luminance (light/dark) + Camouflage for a full stealth system.
Stats & RPG Number Systems
Core only: Damage formulas must be written each time with Math instruction chains, and equipment bonuses managed manually.
With Stats module: Define formulas in one place with Formula assets, auto-manage equipment bonuses with Stat Modifiers, and implement status effects simply by defining Status Effects.
”Painful Without Modules” Threshold Guide
| Area | Sufficient with Core | Module Recommended Beyond |
|---|---|---|
| Items | Pick up → flag ON → use (3 types or fewer) | Item list display, stacking, equipment, trading |
| Dialogue | Fixed text display + Wait | Choice branching, conditional branching, repeat dialogue |
| AI | Patrol + chase (2-3 states) | 4+ states, dynamic priority, planned behavior |
| Combat | Button → attack → hit = damage | Combos, parry, recoil, aiming |
| Perception | Area trigger detection | Field of vision, gradual awareness, stealth, evidence |
| Stats | HP + attack power (2-3 values) | 5+ values, formulas, equipment bonuses, status effects |
| Quests | Boolean flag progression | Task hierarchy, journal UI, auto-tracking |
Cross-Module Integration and Combinations
The true value of GC2 modules lies in modules working together.
Representative Combinations
- Stats × Melee / Shooter: Auto-calculate damage with Formulas on Hit. Equipment Stat Modifiers auto-applied
- Stats × Inventory: Equipping to equipment slots auto-applies Stat Modifiers. Unequipping reverts them
- Perception × Behavior: When Awareness reaches Alert, State Machine transitions to chase
- Dialogue × Stats: Set “STR ≥ 15” as a dialogue node condition. Options don’t appear if strength is insufficient
- Quests × Dialogue: Accept quests during NPC conversations, rewards auto-fire on report
- Inventory × Dialogue × Quests: Classic RPG setup. Item collection → Task completion → Rewards
Recommended Combinations (By Genre)
| Genre | Recommended Module Setup |
|---|---|
| Action RPG | Stats + Inventory + Melee + Behavior |
| Shooter | Shooter + Stats + Inventory + Perception |
| Stealth | Perception + Behavior + (Melee or Shooter) |
| Adventure/Puzzle | Inventory + Dialogue + Quests |
| Classic RPG | Stats + Inventory + Dialogue + Quests + Behavior |
| Survival | Inventory + Stats + Perception + Behavior |
| Fighting | Melee + Stats |
Module Adoption Decision Criteria
Decision Flowchart
"Can this feature be built with core alone?"
→ Yes, and implementation is simple (~30 min) → Build with core
→ Yes, but requires significant effort → Consider a module
→ No (the concept doesn't exist in core) → Module required or custom script
Recommended Adoption Order
- Start by building with core only — You can’t master modules without understanding the basics
- Add 1-2 modules central to your game genre
- RPG: Stats + Inventory
- Adventure: Dialogue + Inventory
- Action: Melee or Shooter
- Add more after playtesting reveals gaps — Buy when you need it
- Consider AI modules (Behavior + Perception) when you have multiple enemy types — A single simple enemy type works fine with core
Common Implementation Patterns
Scene Transition (With Loading)
Trigger Event: On Interact (touch a door)
→ Is Controllable (Player, false)
→ Canvas Group Alpha (black overlay = 1, Duration: 0.5)
→ Save Game (slot: 0)
→ Load Scene ("NextStage", Async: true)
Use the free Transitions Extension for loading screens and fade effects with dedicated components.
Multiple Endings
Global Variables:
- ending_flag (Number): 0=undecided, 1=Good, 2=Bad, 3=True
Final scene Conditions:
Branch 1: [ending_flag == 1] → Good End cutscene
Branch 2: [ending_flag == 2] → Bad End cutscene
Branch 3: [ending_flag == 3] → True End cutscene
Branch 4: [Always True] → Normal End
The design involves rewriting ending_flag based on choices and actions during gameplay.
Troubleshooting and Design Tips
Common Problems and Solutions
| Problem | Cause | Solution |
|---|---|---|
| Actions don’t run | Trigger Event isn’t firing | Add Log Text at the top to verify firing |
| Character won’t move | Player Unit not set or Is Controllable is false | Check Player Unit in Inspector |
| Move To doesn’t reach destination | Stop Distance too large or NavMesh not baked | Check settings |
| Variables not reflected | Confusing Local and Global | Use Global for cross-scene sharing |
| Save doesn’t work | No Remember component | Add Remember to objects you want to save |
| Hotspot doesn’t respond | No Collider or not Is Trigger | Need Collider (Is Trigger = true) |
| On Interact doesn’t fire | Not within Interaction Radius | Check Character > Motion > Interaction > Radius |
| No sound plays | AudioClip not set or Volume is 0 | Check parameters + Master Volume |
Design Tips
- Variable names in English snake_case —
player_hp,has_key_blue,quest_01_complete - Signal names in
subject-verbformat —boss-defeated,door-opened,timer-expired - Register Signals as favorites — Prevents typos
- 1 Actions = 1 responsibility — Keep each single-purpose
- Conditions evaluate from top — Put the most specific condition in the first Branch
- Attach Hotspots to all interactable targets — Always show players “what they can do”
- Use
On Trigger Enter Tag— Tag filtering prevents unnecessary firing
Performance Awareness
On Update/On Fixed Updaterun every frame — keep usage to a minimum (considerOn Intervalinstead)- When using
Instantiateheavily, pre-pool withPool Prewarm - Deactivate unused Actions/Triggers with
Set Active(false) - With NavMesh Agent and many NPCs, pathfinding load increases. Widen
On Intervalspacing
Official Links
Summary
In this article, we covered how to build games with Game Creator 2 through practical patterns.
Key takeaways:
- Master Trigger + Actions + Conditions + Variables and you can build the majority of game logic
- GC2 occupies 4 areas: character control, camera management, game logic, and save & load. Everything else is freely selectable
- The criterion for asset conflict is “whether it tries to control the same GameObject as GC2’s Character/Camera”
- “Inventory management”, “complex AI”, “combat feel”, “gradual perception”, and “RPG number systems” have skyrocketing implementation costs with core alone — this is where modules provide value
- Cross-module integration multiplies that value further (Stats × Melee for auto damage calculation, Perception × Behavior for perception-driven AI, etc.)
By thinking in terms of “small event-driven accumulations”, core + the right module combinations can handle almost any game genre.
We hope you’ll check out our other articles as well.
📚 Series: Game Creator 2 Complete Guide (7/16)