Manage saved games with StencylWorks

Some days ago I showed you how to select level with StencylWorks, but selecting levels is useless if your game does not keep track of player progresses unlocking new levels as previous levels have been completed.

And, even more important, you should be able to manage saved games so players won’t be forced to complete the game in a single session.

Two posts which explain how to do it respectively with AS2 and AS3 are managing savegames with Flash shared objects and understanding AS3 shared objects.

Obviously, with StencylWorks everything is easier.

First, we start with the creation of another animation for the door actor, which now will have two animations (two static images in this case, but it’s the same for the scope of this post).

One for the open, clickable door which will bring us to an unlocked level, and one for the closed, not clickable door, which represents the locked levels.

Then we have to create two game attributes. Game attributes are global variables which are accessible to every behavior. I am calling them “Highest Level Completed” and “Current Level” and I will use them to store respectively the number of the highest level completed and the current level being played. Both attributes have a starting value of zero.

Using game attributes for this purpose is very important, as StencylWorks allows you to save and load all game attributes.

Now we need to create a behavior to load game attributes, which should be executed as soon as possible, so you’d better bind it to the splash screen. It’s very easy as StencylWorks has a “load save file” block.

Now, the hardest task: show open gates for playable levels and make them clickable, and closed gates for unplayable levels. Modify the “Click to play level” behavior I showed you in create awesome Flash games in no time with StencylWorks – Selecting levels this way:

Let’s see what changed:

In the “always” block you can see the behavior has a new attribute called “level number” and it can be clicked only if the value of “Highest Level Completed” game attribute is greater or equal than “level number” attribute.

If it’s true, then we set “Current Level” game attribute to “level number” value and we make the player to to the level.

The “when drawing” block will also check for “Highest Level Completed” game attribute to be greater or equal to “level number” attribute, and will show the “Open” door animation, along with the level number, if true. Otherwise, the “Closed” door animation will be shown.

At this time, we have to customize the behavior of each door, just like you made in the previous step, this time setting also “level number” attribute to zero for level one, then one for level two, and so on.

Finally, once the player completes a level, in this case when the player hits the door, we have to set “Highest Level Completed” game variable to the larger number between “Highest Level Completed” game variable itself and “Current Level” game variable.

Then, you can save the game. This way, “Highest Level Completed” variable will be locally saved, and made available once you launch the game again.

This is what you should see once you beat level two:

I am making a complete game without writing a single line of code.

Get the most popular Phaser 3 book

Through 202 pages, 32 source code examples and an Android Studio project you will learn how to build cross platform HTML5 games and create a complete game along the way.

Get the book

215 GAME PROTOTYPES EXPLAINED WITH SOURCE CODE
// 1+2=3
// 100 rounds
// 10000000
// 2 Cars
// 2048
// A Blocky Christmas
// A Jumping Block
// A Life of Logic
// Angry Birds
// Angry Birds Space
// Artillery
// Astro-PANIC!
// Avoider
// Back to Square One
// Ball Game
// Ball vs Ball
// Ball: Revamped
// Balloon Invasion
// BallPusher
// Ballz
// Bar Balance
// Bejeweled
// Biggification
// Block it
// Blockage
// Bloons
// Boids
// Bombuzal
// Boom Dots
// Bouncing Ball
// Bouncing Ball 2
// Bouncy Light
// BoxHead
// Breakout
// Bricks
// Bubble Chaos
// Bubbles 2
// Card Game
// Castle Ramble
// Chronotron
// Circle Chain
// Circle Path
// Circle Race
// Circular endless runner
// Cirplosion
// CLOCKS - The Game
// Color Hit
// Color Jump
// ColorFill
// Columns
// Concentration
// Crossy Road
// Crush the Castle
// Cube Jump
// CubesOut
// Dash N Blast
// Dashy Panda
// Deflection
// Diamond Digger Saga
// Don't touch the spikes
// Dots
// Down The Mountain
// Drag and Match
// Draw Game
// Drop Wizard
// DROP'd
// Dudeski
// Dungeon Raid
// Educational Game
// Elasticity
// Endless Runner
// Erase Box
// Eskiv
// Farm Heroes Saga
// Filler
// Flappy Bird
// Fling
// Flipping Legend
// Floaty Light
// Fuse Ballz
// GearTaker
// Gem Sweeper
// Globe
// Goat Rider
// Gold Miner
// Grindstone
// GuessNext
// Helicopter
// Hero Emblems
// Hero Slide
// Hexagonal Tiles
// HookPod
// Hop Hop Hop Underwater
// Horizontal Endless Runner
// Hundreds
// Hungry Hero
// Hurry it's Christmas
// InkTd
// Iromeku
// Jet Set Willy
// Jigsaw Game
// Knife Hit
// Knightfall
// Legends of Runeterra
// Lep's World
// Line Rider
// Lumines
// Magick
// MagOrMin
// Mass Attack
// Math Game
// Maze
// Meeblings
// Memdot
// Metro Siberia Underground
// Mike Dangers
// Mikey Hooks
// Nano War
// Nodes
// o:anquan
// One Button Game
// One Tap RPG
// Ononmin
// Pacco
// Perfect Square!
// Perfectionism
// Phyballs
// Pixel Purge
// PixelField
// Planet Revenge
// Plants Vs Zombies
// Platform
// Platform game
// Plus+Plus
// Pocket Snap
// Poker
// Pool
// Pop the Lock
// Pop to Save
// Poux
// Pudi
// Pumpkin Story
// Puppet Bird
// Pyramids of Ra
// qomp
// Quick Switch
// Racing
// Radical
// Rebuild Chile
// Renju
// Rise Above
// Risky Road
// Roguelike
// Roly Poly
// Run Around
// Rush Hour
// SameGame
// SamePhysics
// Save the Totem
// Security
// Serious Scramblers
// Shrink it
// Sling
// Slingy
// Snowflakes
// Sokoban
// Space Checkers
// Space is Key
// Spellfall
// Spinny Gun
// Splitter
// Spring Ninja
// Sproing
// Stabilize!
// Stack
// Stairs
// Stick Hero
// String Avoider
// Stringy
// Sudoku
// Super Mario Bros
// Surfingers
// Survival Horror
// Talesworth Adventure
// Tetris
// The Impossible Line
// The Moops - Combos of Joy
// The Next Arrow
// Threes
// Tic Tac Toe
// Timberman
// Tiny Wings
// Tipsy Tower
// Toony
// Totem Destroyer
// Tower Defense
// Trick Shot
// Tunnelball
// Turn
// Turnellio
// TwinSpin
// vvvvvv
// Warp Shift
// Way of an Idea
// Whack a Creep
// Wheel of Fortune
// Where's my Water
// Wish Upon a Star
// Word Game
// Wordle
// Worms
// Yanga
// Yeah Bunny
// Zhed
// zNumbers