Skip to the guide
pockit✦
Make a game
THE POCKIT MAKER’S GUIDE

A little help.
A lot of possibility.

You don’t need to learn everything before you start.
Make one little thing work. Then make it yours.

01 / A PLAYABLE LITTLE BEGINNING

Your first game, one small step at a time.

Let’s make a short platformer: cross a patch of ground, collect a few things, and reach the finish.

  1. Give it a name.

    Open the editor and log in. Choose Blank game, choose Platformer, and pick a sprite pack if you like. Create your game.

  2. Give your player somewhere to stand.

    Open Add to world above the scene and pick the ground object. Paint a row beneath the player. Select the player to place its starting position.

  3. Make a tiny journey.

    Place a few coins and a finish object where the player can reach them. In Game logic, connect a player-touching-Goal event to Complete the current objective. Your pack may draw that finish as a beacon or a door.

  4. Try it before adding more.

    Choose Playtest to try the scene you are currently editing, then press the game’s Play button. Restart returns to this scene; published games still begin at your chosen opening scene. Move with arrow keys or WASD; Space jumps in a platformer. Back in the editor, move anything that feels unfair.

  5. Add one thing that feels like you.

    Draw a new hero, add a little music, or open Game logic and try one ready-made behavior. Playtest again.

  6. Let someone play.

    When it works from start to finish, choose Publish game. Add a title and description, publish, then share its playable link.

02 / PICK YOUR STARTING POINT

Blank canvas or a little head start.

Blank game gives you an empty level and one player. Templates give you something playable to change. There are 10 curated starter templates, built around three kinds of movement: platformer, top-down, and shooter. Search by name or idea, then narrow the list by game type. Clearing the filters brings every template back; your game details stay in place.

Choose a name, how the player moves, and an optional sprite pack. Templates bring their own progression. Blank games leave objectives, scoring, and endings to your blocks. The five original packs are Moss & Acorn, Moonstone, Copper Circuit, Cloudberry, and Sunset Bazaar. You can redraw their art or choose a new pack later in More settings, World & art.

Your account is your little studio.

Create a username and a password of at least 8 characters. No email or confirmation is required. Save your password somewhere safe; there is no email password-reset flow. Your drafts belong only to your account.

Already have a project file?

Use Open project on the New game screen to import a Pockit JSON backup. Import opens editable work; a published play link is for playing.

03 / PIXELS, PLACES & THINGS

Build a world you can walk around.

Open Add to world and choose Sprites, Screen UI, Effects, or Story. Search sprites by name or ability, or use Create a sprite to draw something new and add traits. Choose a sprite, then click or drag to paint it. The left World hierarchy lists every placed copy. Use Select (V) to click a sprite in the scene or hierarchy: its settings appear in the right Inspector. Drag sprites freely without grid snapping, or enter precise X/Y coordinates in the Inspector. Arrow keys nudge a selected sprite one world pixel; Shift + arrows moves eight. Whole sprites stay together and terrain tiles keep their grid. Press Delete to remove a placed copy. Select Player to move its start. Paint places your chosen object; Erase removes tiles. Undo is there when an experiment doesn’t work.

Each copy can have its own name, traits and collision box. Drag between World rows to reorder. Drop onto the middle of a sprite or group to parent it. Shift-click selects a range; Command-click on Mac or Ctrl-click on Windows toggles individual objects. Choose Group selection in the Inspector to make one parent for a selection. Double-click a World row, or press F while it is focused, to center it in the preview. You can also set its Parent in the Inspector; children keep their position and then follow parent movement in the editor and during play. Select a group to add behaviors in the Inspector. Every child sprite inherits those traits and settings, including children added later. A nested group can override matching parent traits. Group collision boxes apply separately to each 8 × 8 part. Remove a group behavior to restore each child’s own setting. Pixel art stays shared by sprite type. The bottom asset panel remains your sprite, tile and sound library. Uploaded sprites and recordings have Delete buttons; imported tilesets have Delete tileset. Deleting artwork removes its placed copies after confirmation. Deleting a sheet keeps separately saved whole sprites. Undo restores deleted assets; blocks or scripts that reference deleted assets may need updating.

▦

World layer

The things your game interacts with: ground, enemies, coins, doors, and scenery.

▨

Background layer

Painted art behind the world. It is decorative and has no collision or object behavior.

Use the layer button or L to switch layers. Larger levels have scrollbars; Alt-drag, middle-mouse drag, or Shift plus the arrow keys pans the editor. Panning the editor does not change your game camera.

Import a whole tree, building, or prop

In the bottom Sprites panel, choose Import sprite sheet. Upload an image or choose a sheet already in your game. Pockit divides it into 8 × 8 cells. Drag around the complete tree; hold Shift or Command/Ctrl to add cells, or Command/Ctrl-click to remove a cell. Transparent cells remain empty. Name the selection, choose walk-through decoration, a solid base, or a solid shape, then Save sprite & select next.

Click its new Sprites card and click the world to place it. Every tile arrives as one named group, on top of the painted tiles: select, drag, erase, or delete it together. Beds, trees, and other sprites can overlap floor tiles; moving or removing the sprite leaves the floor intact. Expand the group in World to fine-tune individual collision boxes. Keep this window open to save several named objects—Bed, Lamp, Picture—from one upload. The saved list confirms each addition. Choose Done when your collection is ready. To animate a whole sprite, select the first pose and choose Add selection as frame. Click more poses and add them, or use Add frames to the right for a strip. Command/Ctrl-click adds each next frame in one step. Preview, reorder or remove frames, and set the animation speed before saving. All frames use the same dimensions, including transparent margins.

Place tiles without a mouse

Focus the level canvas with Tab. Use arrow keys to move the tile cursor and Enter to paint the selected object. Choose Erase first to erase with the same controls.

Copy objects into another scene

Select one or more objects in World. Use the Copy, Paste, and Duplicate buttons above the hierarchy, or ⌘/Ctrl C, ⌘/Ctrl V, and ⌘/Ctrl D. Copy, switch scenes, and paste to reuse the selection. Shift selects a range; Command or Ctrl adds individual objects.

Groups include their children and attached particles or lights. Copies retain Inspector values: traits, collision boxes, mirrors, layer order, and conversation/cutscene assignments. Inherited settings are preserved when a child is copied without its parent. Pasting into another scene keeps the positions where possible; Duplicate offsets the copies slightly. Existing objects are never overwritten. Undo removes the entire paste in one step.

Screen elements and effects can be copied too. Each scene has one Player, Camera, Backdrop, and Screen UI root: copying these applies their settings to the destination rather than adding a second root. Camera includes post-processing; a menu backdrop includes its background image. New copies have their own Inspector settings; pixel art, animation clips, sound assets, and conversations still use the shared project libraries.

The clipboard lasts while this project is open in this tab. Scene logic blocks are not copied. Choose the new object in destination-scene blocks when connecting a named trigger or UI button. A copied cutscene that targets objects included in the selection gets its own sequence with those targets reconnected; references to objects outside the selection still need those objects. If a scene is too small or a sprite/UI/effect limit would be exceeded, a message explains why and nothing is pasted.

04 / ONE WORLD, OR A WHOLE JOURNEY

Give your game a beginning and an ending.

Use Manage above the level list to rename, resize, duplicate, add, or reorder scenes with Earlier / Later. Choose Show first when the game opens to set the opening scene. Native passage links and particle locations follow reordered scenes; check custom scripts that use calculated level numbers. Choose Gameplay for a world, or a menu preset for a title screen, level select, game over, ending, credits, or pause overlay. Chapter text belongs to that scene. Set your opening story and ending in Game settings, Levels & story or More settings, Story.

Each scene has its own Game logic, player movement, camera, backdrop, and effects. A new scene starts with empty blocks and JavaScript. It takes a starting copy of the current visual and movement settings; later edits affect only that scene. Sprite artwork, reusable assets, conversations, and explicitly configured Game memory remain available throughout your game. Ordinary scene values reset on each scene change.

In the Cutscene maker, Pause gameplay during this cutscene freezes player movement, enemies, and game timers while the sequence runs. Turn it off to keep playing during the sequence. A Move step temporarily controls its chosen actor; other actors keep moving. Conversations inside a running cutscene can still pause gameplay with their own pause option. Existing cutscenes pause by default.

Conversation panels keep portraits beside speaker names, reserve space while text appears, and stay inside cinematic bars. In Conversation studio, Appearance, Keep characters visible lets the panel switch between top and bottom to avoid covering the player. Turn it off for fixed placement.

Conversations that wait for the player

Open Add to world, Story, Conversation and choose a placed sprite, or select a sprite and choose Add conversation in its Inspector. Both open the same Conversation Studio. Write pages, choose a speaker and portrait, add an expression and a sound. Walk near the sprite during play and press E or tap its prompt. Players use E, Enter, Space, click, or tap to continue. The first press reveals unfinished text; the next advances. Holding a key never skips pages.

Expand Choices & alternate responses to add answers that lead to different pages, remember a scene value, or require a scene value such as has_key ≥ 1. Use Box & text size to set width, actual height, and text size, or choose Make compact. Height is a percentage of the game screen; 0 automatically fits text up to 45% of the screen. Long dialogue scrolls inside the box, with answers below. Open Appearance for style presets, position, portrait size, inside spacing, colors, opacity, borders, and transparent portraits. Pixel studio’s Eraser or Make this color transparent removes painted sprite backgrounds. Conversation settings control repeat visits, text speed, and whether the world pauses. The Game logic Story category connects conversation-start, choice, and finish events to your game.

Title screens, menus, pause, and credits

Open Add to world, Story, Gameplay or menu screen. Menu presets use the same Screen UI elements you already know: drag on the canvas, edit text and color in the Inspector. Select a button to choose Start, Change scene, Resume, Restart, or Sound settings. A panel can show an artwork sprite or an uploaded image. Use Add to world, Image for a scene-specific screen image. Select Backdrop, Image, color & transparency in a menu to edit its background; upload PNG, JPEG, or WebP up to 2 MB. Fit, fill, stretch, size, opacity, and send-behind-UI controls are in the Inspector. Transparent PNG/WebP pixels remain transparent. Use Show on to keep a UI element in one scene or across gameplay scenes.

The opening scene follows your choice in Manage. Game-over and ending presets appear on losing or winning. Escape opens a pause overlay without resetting the world. Its backdrop starts at 50% opacity. Select the pause backdrop to adjust opacity and Blur world behind pause menu; buttons and text stay sharp. Continue resumes the current in-memory run after returning to a menu; it does not survive closing the page. Credits scroll when Scroll upward is enabled; add their music in Sounds & music and use the return button to skip.

Start a story when sprites meet

Select a placed sprite and open Story interaction in its Inspector. Choose Conversation, Cutscene, or Cutscene + conversation, then pick existing stories or create them. Turn on Cinematic conversation for smoothly fading black bars without building a sequence; expand Conversation options to adjust talking distance, bar height, and fade time. With both selected, the cutscene leads into the conversation while keeping its camera framing until the pages finish. A conversation already played in the sequence is not repeated. After a one-time intro, players can still talk to the sprite if its conversation allows repeats. Cutscenes can start with Press E / tap nearby, Player comes nearby, or Player touches / collides. Set the nearby distance; 16 pixels is one tile. Each placed copy has its own choice. Cutscenes play once per game by default; enable repeat when you need it.

For more control, Game logic, Events contains two separate blocks: comes within … pixels and touches / collides with. Choose the player or any sprite kind on either side, then put Story, Play cutscene inside. Distance compares collision-box centers; collision uses the actual box edges. These blocks match any copy of the selected kind. They fire once, not every frame. Choose repeat to rearm after all matching pairs separate. For one specific placed copy, use its Inspector instead.

Search the behavior library for cutscene to add either ready-made trigger stack. The older player-touch event is still available.

Make a short cutscene without timed blocks

Open Add to world, Story, Cutscene, then add readable steps: Move a character, Camera · focus & zoom, Show a conversation, Play an animation, Wait, Fade, Change scene, or Play a sound. Reorder with Earlier and Later. Positions use world pixels, with 16 pixels per tile. A camera step can focus on the player, a placed sprite, or a world position, or keep its framing and only zoom. Enable Adjust zoom: 0.5× is wide, 2× is a close-up. Duration controls the smooth transition. Subject offsets adjust the framing, and the camera keeps following that subject through later movement steps. Turn off Keep camera inside level to center a subject near a level edge. Finishing or skipping restores your normal camera.

Enable Cinematic bars · letterbox to frame a cutscene with black bars at the top and bottom. Choose each bar’s height (2–25% of the screen) and fade time (0–3 seconds). The preview shows your framing. Bars stay during conversations and fade away when the sequence ends or is skipped, without changing zoom.

In the cutscene maker, choose Play when entering a scene and save, or assign it under Add to world, Story, Saved conversations & cutscenes, Play on entry. For an interaction, connect a Game logic event (key press, touching a sprite, or Conversation finished) to Story, Play cutscene and select the sequence. Add a shared-value condition if it should happen only once. The world waits while it runs, conversations still wait for input, and control returns afterward. When you save, the builder shows Saving… until your account confirms. The confirmation names the scene that starts the sequence, or explains how to connect a Story block. If a save fails, your edits stay available and Retry save appears beside the error. Saving updates your draft; publish again to update the arcade version. Enable skipping to let Escape or the skip button finish the sequence safely. Test movement routes: cinematic movement does not automatically navigate around walls.

How template worlds continue
ModeWhat happens
Start to finishComplete each authored level in order.
Random adventureGenerate a map from a seed and a rooms, maze, or platforms layout.
Endless journeyCompleting a room makes a fresh generated room.
Time loopRepeat your levels while keeping the score.
Story chaptersPlay your levels as a linear story, with an introduction, chapter text, and ending.
Enemy wavesDefeat each wave and survive the number of waves you choose.
Sizes and limits

A level starts at 32 × 18 tiles and can grow to 160 × 90. A project can contain up to 20 authored levels. Shrinking a level crops tiles outside its new bounds, so save a backup before a large resize. Random and endless modes generate rooms instead of using your painted sequence as-is.

Optional zoom for a cinematic conversation

Select the speaking sprite, assign its conversation, and check Cinematic conversation. This adds the black bars. Zoom camera while talking appears underneath and starts off. Turn it on to choose the camera zoom: 1× is normal and 2× is a close-up (0.5–4× supported). The camera eases to that zoom and eases back when the conversation ends. Without this option, cinematic bars do not change zoom. Each placed speaker has its own settings.

05 / EVERY PIXEL IS YOURS

Make a little character with character.

Select a placed sprite and choose Edit shared pixels, or click its sprite in the strip below the world. Every sprite uses an 8 × 8 pixel canvas. Use the pencil, eraser, or fill tool, choose colors, and save your sprite to update it throughout your game.

Add animation frames to bring it to life. Every sprite can have named animations such as hurt, open, or attack. Add a clip in Pixel Studio, draw frames or choose Import sprite sheet (you can also drop an image into Pixel Studio). The importer suggests the frame size and separates rows into animations. Preview the 8 × 8 conversion, name your clips, adjust their speeds, then apply and Save sprite. Use the slicing controls for different frame sizes, columns, spacing, margins, or a background color you want to make transparent. Each clip supports up to 64 frames. Idle loops automatically; player walk and jump clips follow movement. Use Game logic: Animation to trigger a clip from an event: loop it, play once and return to normal, or hold the last frame. Choose the player, every copy of a sprite, or the touched object. Avoid replaying the action every frame, which restarts it.

Tilesets gives you named tiles and objects from the original art packs. A tile’s suggested behavior can be used automatically or changed when you add it. Once added, its pixels and traits are yours to edit.

To use your own sheet, choose Tilesets: Import tileset. PNG, WebP, and JPEG images split into 8 × 8 tiles without resizing; any image dimensions work, with transparent padding for partial edge tiles. Click the sheet overview to find a tile, or browse the pages. Select a tile and draw its collision rectangle, fit it to visible pixels, or type its bounds. Choose decoration, solid, one-way, hazard, or collectible. Save the sheet, pick a tile, and paint it into the world. Edit collisions & traits reopens the sheet later. Up to eight sheets and 65,536 source tiles are stored with your project, within its 30 MB size limit. Images can be up to 16 MB and four million pixels.

Start with a clear shape.

At eight pixels wide, a strong silhouette and a few contrasting colors do more than lots of detail. Test your hero against the actual background, not only in the sprite editor.

Artwork and collision are separate

A collision box is the part of a sprite that touches the world. Adjust each placed copy in the Inspector, or edit the sprite type in Object Studio. Player collision lives in its movement settings. It must stay inside the 8 × 8 sprite.

Mirror a placed sprite

Select a sprite in the World list or canvas. In the Inspector, open Mirror artwork and choose Flip horizontally to face the other way, or Flip vertically to turn it upside down. Select an imported whole sprite to mirror all its pieces together. Animation frames follow the same flip. Only this placed copy changes; the source artwork, other copies, and other scenes stay as they were. Individual sprite collision boxes are unchanged.

06 / WHAT DOES IT DO?

Give objects a few good traits.

For water, add Zone and choose Water. The submerged part of the player ripples and takes on your chosen Underwater overlay color. Adjust Overlay strength and Underwater distortion in the Inspector or Object Studio. Set both strengths to zero to keep the player’s original appearance. Water artwork has its own Surface ripple strength and Surface ripple speed. Enable Reflect the world and adjust Reflection strength for a mirrored surface that fades with depth. Connected water tiles share one surface. Use Playtest to see the motion; set surface ripple strength to zero for still water.

A sprite is how something looks. Traits say what it does. Select a placed sprite to edit its traits in the Inspector. To create a sprite type, choose Create an object in the bottom asset panel. Its trait library has search, categories, and recipes.

TRY THIS

A moving hazard

Add Hurts to make contact dangerous, then Moves to give it a pattern. Adjust damage, speed, and distance. It’s one object with two traits.

Try Solid for platforms, Collect for rewards, Bouncy for springs, or Checkpoint for a safe return point. Doors, keys, and switches connect through matching letter channels. Built-in objects can be changed too; they are starting points.

Go a little deeper

An object can have up to 8 traits. A project supports up to custom object types without a fixed count cap, and a level up to 400 live objects. Plain scenery and solid-only tiles do not all become moving actors. Use a Code trait or the JavaScript workspace for custom behavior beyond the provided traits.

07 / LITTLE BLOCKS, BIG IDEAS

Tell your game what happens next.

Game logic is beside World builder. Choose Add a behavior to search 88 ready-made starting points. Filter by category, game type and complexity. Try buffered jumps, stamina, reloads, switch puzzles, quests, lanterns or HUD elements. Recipes add required particle effects and screen elements automatically; setup notes explain any objects to place. They add to your existing logic; they don’t replace your level or other blocks.

Start with an event: a key press, a collected object, or the game starting. Connect actions beneath it. Add an if block when an action should only happen under certain conditions. An action sitting by itself does not run.

Functions let you name a group of actions and reuse it. Give a function inputs when each call needs different values. Variables remember things such as a quest step or a custom score.

Show or hide a sprite without deleting it

In Game logic, then Sprites & world, use Hide sprite or Show sprite. Choose one placed sprite, an imported whole sprite or group, all copies of a sprite, or the player. Hidden sprites are invisible and stop moving, colliding and triggering interactions. Show brings them back with their position, health and traits preserved.

For example: when a level begins: hide sprite Door, then when a key is collected: show sprite Door. Use Touched object to hide only the copy that triggered your event. These changes reset with the scene. Fading only changes appearance; use Hide when you also want to disable the object.

Keep logic easy to follow

Build one event at a time and playtest it. Use Tidy view to fit your blocks on screen. Undo and Redo affect block edits while the block workspace is active. Up to 800 blocks can be saved; very long loops stop with a visible error. Standard Blockly variables belong to your visual program; Pockit game variables can also drive screen UI.

When you want to write code

Open the JavaScript tab for custom hooks that run alongside your blocks. Apply your changes, then playtest. The extension reference documents the actual functions and hook names. It is the deeper reference; you don’t need it for your first game.

Aim and shoot with the mouse

For top-down and shooter games, select Player in World, then find Combat & power-ups. Turn on Player can shoot, Aim toward the mouse and Left-click to shoot. Move with WASD or arrows; hold the left mouse button to fire at your chosen rate.

The Mouse blocks read the pointer’s world or screen position, check whether the button is held, and run actions when the game is left-clicked. Use world x/y with shoot toward x/y for custom weapons. Leave automatic mouse firing off when your blocks fire each click, so one click makes one shot. Clicking a screen button does not also shoot.

Give a sprite its own named trigger

Select the placed sprite and enable Trigger in its Inspector. Name it, then choose touch, nearby, E nearby, or code blocks only. A whole imported sprite group can have one trigger for all its pieces. Player triggers are code-only. Turn on repeat activations if it should work more than once per scene visit.

In Game logic, Events & timing, add when trigger happens, choose the named sprite, and put actions inside. Activate trigger lets another event call it. Renaming the trigger keeps its blocks connected. Touch and nearby triggers repeat only after leaving and returning.

Remember a key, quest, or choice across scenes

Open Game logic, Game memory in the toolbar. Add a name, choose True / false, Number, or Text, and set a starting value. These values last across scene changes and respawns for the current playthrough. A new playtest or restart restores their starting values. They are not save files and do not survive closing the game.

For your key, name a True / false value has_key and start it at False. In the key scene, put set game value has_key to true inside when the player touches Key. In the door scene, use when a level begins with an if game value has_key condition; inside it, remove every Door. Without the key, the door stays. The player can go back, collect it, and return.

For ready-made blocks, search Add a behavior for Remember a key in the first scene and A door that remembers in the second. Both configure and reuse has_key automatically. The key behavior also hides the key on return visits. Change the Key and Door sprite selectors to use your own artwork.

The Game memory block category lets you read, set, change a number, or reset one value. True / false works directly in an if; compare numbers and text with a comparison block. Do not set has_key to false at each scene start. Starting values already apply once per new game. Rename values freely; their blocks stay connected. Deleted values remain marked missing until you choose a replacement. Use ordinary scene values for temporary progress that should reset.

Wait a few seconds, or continue after a video

For a delay, connect when a level begins, after 30 seconds, your action. The action goes inside the after block. Timers work in gameplay and menu scenes; an after block sitting alone will not run. The editor warns about disconnected stacks.

If a video with sound waits for browser permission, click Play video with sound in the game. Muted videos can start automatically. For a video introduction, set its Playback to Play once. Use Screen UI, when video finishes, choose your video, and put Go to scene inside it. This waits for the actual video ending. A looping video never finishes.

Find a block quickly

Use Find a block above the block workspace. Search for what you want to do, such as fade, key, text, timer, camera, or sound. Drag a result into an event just like any other block. Clear the search or press Escape to return to categories. Blocks are grouped by purpose: Events & timing, Input & player, Sprites & world, Story & scenes, Animation & fades, Camera, Screen UI, and more. Your existing logic stays in place.

Fade a sprite or screen element

In Animation & fades, choose fade sprite or fade screen, then In or Out and a duration in seconds. Target the player, a placed sprite, a whole group, or all copies of a sprite type. Fade in can reveal a hidden screen element. Zero seconds changes it immediately. Fading only changes the look; a faded wall still blocks movement. Use a removal block if you want to remove it too.

Put the fade inside an event, not Every frame, which would keep restarting it. Other blocks keep running while it fades. For a follow-up action, add an after block with the same duration. Fades and opacity changes reset on scene changes.

08 / MAKE IT FEEL GOOD

A few dials change the whole game.

Select Player in the World hierarchy. The first control switches between Platformer, Top-down, and Top-down shooter; the controls below adjust speed and acceleration. Changing movement keeps your art and level in place. Platformers also have jump strength, gravity, extra jumps, and a hold-to-jump-higher option. Expand Precision movement & forgiveness for ledge grace, buffered jumps, corner correction, instant start/stop, directional dashes, wall jumps and climbing stamina. Dash uses Shift or X; hold C to grip a wall. Movement refill is a reusable trait for recharge crystals. Change one value, playtest, and compare.

Use Game logic for objectives, points, health, and endings. Connect events to Add score, Set lives, Complete the current objective, or End the game in defeat actions. Blank games have no automatic victory, scoring, losing condition, or status strip. Templates and existing projects retain their authored rules.

Combat & power-ups controls shots, damage, and temporary powers: shield, health, speed, jump, magnet, tiny, or ghost. The basic enemy has defaults; individual objects get their own settings through Traits.

A useful first adjustment

If a jump feels heavy, try a little more jump strength or less gravity. If stopping feels too slippery, adjust acceleration and stopping. Keep the level short while you tune the feel.

09 / FRAME THE GOOD STUFF

Choose what the player sees.

Select Camera in the left World hierarchy. Its Inspector contains camera movement and post-processing effects. Start with Follow, Side scroll, or Fixed. Zoom ranges from 0.5× to 4×; 1× shows a 32 × 18 tile area.

Follow horizontally, vertically, or both. Follow response changes how quickly the camera catches up: a lower value feels softer, a higher value feels quicker, and zero snaps immediately. Keep camera bounds on to stay inside the level.

Offsets, look-ahead, and dead zones

An offset shifts the framing around the player. Look-ahead shows more of what they are moving toward. A dead zone lets them move inside a small screen area before the camera follows. Use these to make a platformer easier to read.

TRY THIS

A little reveal

In Game logic, use Camera blocks to pan toward a destination and zoom in. After a short delay, follow the player again. Playtest the whole sequence so the controls and camera feel natural together.

10 / THE LITTLE THINGS PLAYERS SEE

Make the screen your own.

Select text in the World list, then use Appearance, Text inside the box in the Inspector. Choose left, center, or right text alignment, top, middle, or bottom alignment, a font style, bold, wrapping, inside padding, and line spacing. These align the words inside their box without moving the element. Screen UI blocks can change alignment and font while playing.

Use Add to world to add text, hearts, a progress bar, a panel, or a button. Use Select to drag it directly in the central canvas. Select an element to change its size, colors, background, and screen anchor.

Bind a value to score, lives, time, remaining time, level, wave, or a game variable. Text can include tokens such as POINTS {score} or {var:crystals}. The game fills them in while you play.

Use Screen UI blocks to change text, meters, visibility, position, and style. A button-click event can trigger your own actions. Hide the built-in status strip if your custom interface replaces it.

Why anchors matter

UI stays on the screen while the camera moves. Top-right and bottom-right offsets measure inward from the right edge; bottom anchors measure upward from the bottom. Use arrow keys to nudge a selected element, or Shift for 8-pixel steps. Up to 64 elements can be added.

Add a video · play once or loop

For a cinematic clip, create a scene and choose Video scene. It begins with one video already sized to the whole game screen, so you can select it and upload your MP4 or WebM instead of building a cutscene. If its size or anchor changes, choose Make full screen in the Inspector to restore it.

You can also choose Add to world · Screen UI · Video inside an existing scene. Videos added there belong to that scene. Choose Play once or Loop; once holds the last frame and loop repeats. Adjust fit, opacity, and optional sound. Screen UI visibility blocks can hide or show videos. Hiding pauses playback; showing again starts from the beginning. Clips can be up to 8 MB, within your project’s 30 MB limit. MP4 with H.264 video works well across browsers.

11 / A SOUND OF ITS OWN

Add a bleep, or a whole soundtrack.

The Sounds & music tab below the world lets you preview and choose the jump, collect, hit, shoot, and win sounds. Adjust the sound-effects volume there.

Open Sound library to import multiple recordings, search, rename, preview, change pitch and volume, or loop a sound. You can add any number of sounds within the shared storage budget. Renaming preserves the sound’s ID.

In Game logic · Sound & messages, connect play recording beneath any event. Pick your sound and its volume, pitch and looping. Use stop recording to end a loop. JavaScript can call api.playSound(id, {volume: .8, rate: 1, loop: false}) and api.stopSound(id); find each ID under Use in JavaScript on its sound card.

Open Music in the top toolbar to upload a background track. Set volume and choose whether it loops. A level can use the whole-game track, have its own track, or stay silent.

The whole-game track continues across levels that inherit it. A level’s own track starts when that level begins. Music begins after the player presses Play; turning looping off lets a finished track fall silent until a new track or replay.

Files and space

Each audio file can be up to 8 MiB, with 20 MiB shared by music and sound effects across a project. Audio is stored with the project, so use short, compressed tracks where possible. Large files may fill the browser’s device storage; keep a project backup and check the save status.

12 / A LITTLE MORE LIFE

Make the air interesting.

Choose Add to world above the scene. Add an effect from 13 presets: light, fire, smoke, rain, snow, explosion, sparks, dust, footsteps, magic, trail, bubbles, or confetti.

Give it a name and attach it to a place in the world, the player, an object type, or the camera view for weather. Use it in every level or one selected level. Choose its colors, shape, size, rate, and lifetime.

Select and drag the effect in the main scene. The right Inspector has its color, emission, attachment, motion and timing controls. Lights offer warm, moonlight and neon looks, radius, brightness, soft edges, flicker, pulse and wall blocking. Parent an effect to one sprite to follow that exact copy. For a darker mood, select Camera and raise Ambient darkness.

React to something in your game

Use Game logic’s Particles category to start, stop, or burst a named effect. You can change its settings during play too. Particles are visual: a flame doesn’t damage a player unless you add a Hurts trait or game logic. There is no fixed limit on the number of effects you add; your project storage limit still applies. A shared budget of 1,024 live particles keeps playback smooth.

13 / THE FINISHING TOUCH

A whole mood, a few small choices.

Every game starts with post-processing. Select Camera for effects. Expand the lighting, color and texture groups in its Inspector for deeper controls. The effect switch lets you compare the clean scene with your finished look.

Adaptive shadows
Platformers get terrain depth and landing shadows. Top-down games get grounded silhouettes. Adjust strength, direction, reach and softness.
Ambient darkness
Darkens the world while Light effects reveal it. Solid terrain and closed doors block local light.
Bloom
Lets bright areas glow into neighboring pixels.
Color grading
Changes the color balance, brightness, contrast, and warmth.
Vignette
Darkens the edges around the action.
Chromatic aberration
Separates color channels near the screen edges.
CRT and pixelation
Adds scanlines and other screen texture, or makes pixels chunkier.

Backdrop controls scenery behind the world: styles, clouds, parallax, color cycling, reflective water, darkness, and an uploaded image. Your painted background layer remains a separate way to add decoration.

Let the game stay readable.

Start gently. If the hero, hazards, or text become hard to see, turn an effect down. Custom Screen UI is drawn after post-processing so it stays clear.

14 / KEEP IT, THEN SHARE IT

Your work is yours. Publishing is a choice.

Changes save to your account while you edit, with a larger-capacity device copy kept for recovery. Images, music, and videos upload separately, so changing a block does not resend all your media. Check the save message before closing. Save now sends pending changes; My games holds your private drafts.

Publish game creates a playable snapshot in the arcade. The title, description, cover, maker name, and game become public. Later editing does not change that snapshot until you publish again. Share the play link when you are ready.

Make your game page your own

In Publish game, use Details for the title, short description, full story, tags, version, and development status. Appearance has color palettes, four custom colors, cover art, a banner, background images, fonts, and layout. Extras adds instructions, credits, screenshots, and up to three custom text sections.

The live preview shows your choices. Show page surface is on by default, keeping text readable over background artwork. Turn it off in Appearance for a transparent page. Try Narrow to check the smaller layout. Save page draft saves those settings privately to your account. Update published game publishes your current game and its page together. Images can be PNG, JPG, or WebP, up to 10 MB before resizing.

Views, likes, comments & discovery

Published games show shared views, likes, and comments. Views count once per browser per day, starting when this feature is enabled. Sign in to like a game or leave a plain-text comment. Each account gets one like per game. The bookmark button keeps a game on your device’s Saved shelf separately.

Comments can be up to 2,000 characters, with 15 seconds between posts. You can remove your own comments, and a game’s owner can remove comments on that game. Updating a published game preserves its engagement; unpublishing removes the publication and its comments.

In the arcade, use Sort by for Newest, Popular, Most liked, Most viewed, or Most discussed. Popular combines views, likes, and comments. Use Load more games to explore further.

Your developer workspace

My games has search, sorting, and filters for private drafts, published games, and unpublished changes. The ••• menu on each game lets you customize its page, duplicate it, download a JSON backup, copy its play link, unpublish, or delete it. A duplicate starts as its own private project.

Edit maker profile changes your display name and workspace bio. Your username stays the same. Publish a game again to update its public maker name.

▱

Keep an editable backup

Use Save current project on the New game screen, or ⌘/Ctrl + S. Open that JSON project later with Open project.

▧

Keep a playable version

A published link is for playing in the arcade. It does not replace your editable project backup.

Larger games, save warnings, and history

Embedded media is kept privately with your account. The save indicator distinguishes saving, account confirmation, and device backup failures. If a warning appears, it explains whether the issue is your connection, storage, a newer version, or a size limit. Keep the tab open and use Download backup if a save cannot finish. Reconnecting retries pending changes.

Save history lets you download up to five previous account revisions saved after this update. It never replaces your open game automatically. Each project has a 50 MB storage limit for game data and unique imported media. Reusing the same media across scenes counts it once. The small Storage bar at the top of the editor shows how much is left; click it for a breakdown. At the limit, remove unused content or compress media. Changes over the limit cannot save to your account or publish; your last save is safe, and you can undo, remove content, or download a backup. The separate compact game-data limit is 8 MB. Individual upload tools have smaller limits; playable publications can be up to 40 MB. Short, compressed videos and music keep both saving and playing faster.

A device copy or a newer version needs attention

If a device has unsaved work, choose whether to continue it or open the account version. Preserved copies are available in Device backups. If another session saved a newer version, keep your work as a new game or load the saved version. Pockit asks instead of silently replacing newer work.

Unpublish or delete a game

Unpublish removes the playable snapshot while keeping your draft. Delete removes the draft and its published snapshot. In My games, choose Delete and type the exact game title to confirm. This is permanent and cannot be undone. Other games and downloaded backups stay safe. Download a project backup first if you may want to return to it. If a newer version was saved in another session, deletion stops: refresh My games and review the game before confirming again.

An editor left open for a deleted game stops saving. You can keep a recovery backup, choose Save as new, or return to My games. It will not quietly recreate the deleted game.

Customize your arcade page

Open your published game in the arcade and choose Customize page. Only its signed-in owner sees this button. Choose Wide, Play first, or Story, set the page width, and customize the colors, banner, background, text, screenshots, and credits. The Pockit navigation and footer always keep their own styling.

Save page draft keeps changes private. Update game page changes the public page without publishing unfinished gameplay from the editor. You can also customize your page through the editor’s Publish game window.

Under Extras, Custom HTML & CSS, add markup and inline styles in an isolated section below the details. Set its height to fit your content. Scripts, forms, embedded pages, and links are disabled; custom styles cannot affect Pockit’s navigation, footer, account tools, or the game itself. Images may use HTTPS addresses. Custom HTML has a 50,000-character limit.

Arcade games wait for players to press Play game before running scripts, videos, or sound. The player also has Expand and Fullscreen controls. Pockit no longer adds a score, timer, or lives bar. Screen UI authored inside a game still works.

15 / A LITTLE TROUBLESHOOTING

When something feels off.

My player falls straight through the level.

Check that the floor is on the World layer and its object has the Solid trait. Put the starting player above the floor. Tiles painted on the Background layer are decorative.

I reached the end, but I didn’t win.

Blank games leave the ending to you. In Game logic, connect a touching or nearby event to Complete the current objective. Check that the event targets the correct sprite. Templates keep their built-in objectives; their descriptions explain how to finish.

My blocks don’t do anything.

Make sure the actions connect beneath an event. Check the selected object, UI element, or particle effect still exists. Playtest and read any logic error below the game. Try one behavior by itself before adding more.

I can’t hear my music.

Press Play in the game first; browsers wait for that interaction before playing audio. Check game and level music settings, volume, and whether the track has already finished with looping off.

The camera doesn’t follow me.

Choose Follow in the Camera tab and enable the axes you need. A small level may not have room to scroll while bounds are on. Camera blocks can also change these settings during play.

My particle effect is missing.

Check that it is enabled in this level. Object attachments need matching objects placed in the level. Movement triggers need a moving source. A burst happens once unless you trigger another.

A save warning appeared.

Keep the page open, check your connection, and try Save now. Download a project backup if device storage is full or you need to close. A newer-version message offers ways to preserve your changes before loading another copy.

16 / YOUR NEXT LITTLE STEP

Keep the useful things close.

Editor shortcuts
KeyAction
V / B / ESelect / paint / erase.
LSwitch world and background layers.
⌘ or Ctrl + ZUndo. Add Shift to redo.
⌘ or Ctrl + SDownload an editable project backup.
EscClose a dialog.
Tab, arrow keysMove between controls. Left/Right changes focused tabs; Home/End jumps to the first/last tab.

Editor shortcuts stay out of the way while you type in a field. Playtest shows your game’s own controls. In this guide, / focuses search and Esc clears it.

How do I upload my game to itch.io?

In My games, open your game’s ••• menu and choose Download playable HTML. You can also choose Download playable HTML in the editor. Download the current game as one HTML file, then create an HTML project on itch.io, upload it, and select This file will be played in the browser. Enable Click to play for sound. Your file includes Pockit branding and works without a Pockit login. Download a new copy after edits; keep a project JSON backup for editing.

What this version is built for

Pockit makes small 2D games with platformer, top-down, or shooter movement. Stories can use branching conversations, gameplay scenes, menus, and cutscenes; enemies chase directly rather than finding paths around walls. Multiplayer, shared project editing, paid sales are not included. JavaScript and the open source can take a project further.

✦

Your first game doesn’t need to do everything.
It just needs to feel like your little world.

Back to the top