Reading the Pulp Docs
Tags: gamedev, beginners, playdate, pulp
Published: 2023-01-18 16:41:36

## Up to this point
- I have the Pulp editor using the example game
- And two other games
- I have downloaded one `PDX`
- I have tweaked a few small things in a few views

## Time to fill in knowledge gaps
I shall open the [Pulp Docs](https://play.date/pulp/docs/).

And I shall learn all there is to know - generally speaking -  about Pulp!

## What I'm learning

### Quick Overview
- Sprites, Items and Exits are the only Layers that can have Behaviors
- The player can 'bump' into a Sprite and 'walk over' an Item - those verbs are important distinctions
- What I've been calling `views` are actually `modes`
- The half-width font is meant for games with lots of text
- Each room is composed of tiles - I kind of knew that, but it's great to get confirmation that that is all a room contains
- There are four tile types: Player, Item, Sprite, World
- There is only one Player in the game
- Sprites are any interactive thing
- Sprites are always `solid`
- That means the player can't pass through them
- Items are something the player can collect
- Items are never `solid`
- Items disappear when collected
- The tile that was the Item is replaced by the tile chosen as the background color of the game
- World tiles can be solid or not solid
- All tiles can have multiple frames for simple animation - good to know there's no tile that can't
- The five views in `Song` are called `voices`
- The interactive keyboard is called a `piano roll interface`
- A song can start looping at game start, room enter or game end
- Sound is like Song, but pertains to Sprites and Items instead of rooms or game state
- 100-step undo/redo! Nice!

### Modes
- I can write a custom `collect` function if I want to do more than replace an Item tile with a background-color tile when an Item is collected
- Only one font per game
- Solid tiles are easily identifiable with a red overlay
- The blue overlay shows how a room will be cropped to display as the title card
- There are several modifier keys that make manipulating one or more tiles very easy
- I can change the layer to which a tile resides, with a few exceptions
- World tiles can't be scripted to do or say anything
- The default behavior when a player overlaps an item is very cool: tile replaced, variable auto-incremented
- Of course, defining a custom `collect` function renders those default behaviors null and void
- Tile frames that are part of an animation can be specified via scripting
- The room that the player starts in is the starting room - the explains why the star-like icon appears next to only one room in the list of rooms
- Creating more tile in the Player layer allows for different player appearance and animations
- All Player behavior is attached to the first player tile, and selecting new tiles for the player merely changes the player's appearance - never affecting behavior
- Single-tile exit connections are one-way
- Exits can be covered by Sprites as a way of enabling a key-unlocks-door gameplay mechanic
- Something about placing related exists next to one another instead of on top of one another
- The second exit type - connecting room edges - is called an Edge Exit
- Edge Exits don't have to be placed on the literal edge of a room
- That's cool for games that want to have square rooms (with a HUD filling the extra space
- `Musical typing` seems like it will be a lot of fun: play piano on my keyboard!
- Oh, the `voice`s are different sound frequencies
- Each voice has different: characteristics, octave ranges, durations. Wow. I'm excited to play with sounds...some day!
- `Envelopes` are a thing - how a note changes over time
- `Envelopes` are a very complicated thing
- Songs have parts: intro, repeating body
- Songs have 32 bars while sounds have 4
- Songs can have all five voices playing simultaneously while sounds can have only one voice playing at a time
- The editor is wonderfully robust to allow rich song/sound editing
- Notes are compared to pixels in that they are the atomic level of a Sound or Song, and richly editable
- The Script editor should feel like Visual Studio Code for writing PulpScript: all of the perks when writing code in a dedicated development environment
- Code is validated as it is typed and only saved when it can be successfully compiled
- Errors appear below the editor to aid in troubleshooting

### Etc.
- Most editor actions (the seemingly most common ones) have a keyboard shortcut - many of whom leverage a modifier key
- There are several options for getting assets into and out of Pulp

## Knowledge gaps: filled!
- I'm glad I read these after spending a lot of time in the editor, because it added a lot of clarity instead of overwhelming me
- Although, Song and Sound seem pretty complex

Next, on to the other - far more technical - Doc: PulpScript!