Difference between revisions of "Pulp"

From Playdate Community Wiki
Jump to: navigation, search
 
(19 intermediate revisions by 3 users not shown)
Line 11: Line 11:
|-style="color:white; border:none;background: #303133"
|-style="color:white; border:none;background: #303133"
| Language:
| Language:
| Point and Click
| Point and Click <br>PulpScript
PulpScript
|-style="color:white; border:none;background: #303133"
|-style="color:white; border:none;background: #303133"
| Link:
| Link:
Line 25: Line 24:


==Components==
==Components==
[[File:Pulp Screens.png|100px|left]]
===Game===
===Game===
Here you can set your game’s Name, Author, Background Color tile, and start Looping a song, as well as open existing games and create new ones. Note the Script button  in the corner; it will take you to Script mode where you can edit the main game script. You can also choose a room to use as your game’s card in the Playdate launcher and download individual assets collected from all over the Pulp editor.
Here you can set your game’s Name, Author, Background Color tile, and start Looping a song, as well as open existing games and create new ones.  
===Font===
===Font===
Choose between full-width and half-width fonts. You can clear or invert the entire font and UI tiles. Redraw individual characters or UI tiles. Preview the font with alphanumerics, a familiar pangram, or your own custom text. You can also import and export Pulp format fonts to simplify sharing between projects. (But note that each game only supports a single font which includes the UI tiles.)
 
Choose between full-width and half-width fonts. You can clear or invert the entire font and UI tiles. Redraw individual characters or UI tiles.  
===Room===
===Room===
The meatiest mode. You’ll probably spend most of your time here, drawing and animating tiles, then using them to layout your rooms. You can toggle the display of the tile and pixel grids and a red overlay for solid tiles. In the room you have selected as your card, you can toggle an overlay showing how the room will be cropped for the card.
The meatiest mode. You’ll probably spend most of your time here, drawing and animating tiles, then using them to layout your rooms. You can toggle the display of the tile and pixel grids and a red overlay for solid tiles.  
====Tiles====
====Tiles====
There are four tile types, each with their own unique use. You can reorder tiles within their Layer and frames within their tile. You can change the type of most tiles, the only exceptions being the two default “white” and “black” World tiles, the default “player” Player tile, and the last remaining Sprite and Item tiles.
There are four tile types, each with their own unique use. You can reorder tiles within their Layer and frames within their tile. You can change the type of most tiles.


World tiles do not support simple or scripted behavior. Both Sprites and Items can say something when bumped into or collected or define more advance behavior with PulpScript.
World tiles do not support simple or scripted behavior.  


All types of tiles can have multiple frames. By default all instances of a tile will loop continuously at the specified fps (frames per second), but using PulpScript you can tell specific instances of a tile in a room to play once or set their fps to 0 and control which frame to display manually.
All types of tiles can have multiple frames.
=====World=====
=====World=====
The majority of your rooms tiles will be World tiles. A World tile can be solid or allow the Player to pass through.
The majority of your rooms tiles will be World tiles. A World tile can be solid or allow the Player to pass through.
World tiles do not support simple or scripted behavior.
World tiles do not support simple or scripted behavior.
=====Sprites=====
=====Sprites=====
Sprite tiles are always solid
Sprite tiles are always solid.
Both Sprites and Items can say something when bumped into or collected or define more advance behavior with PulpScript.
=====Items=====
=====Items=====
Item tiles can always be passed over.
Item tiles can always be passed over.
Line 47: Line 49:
But once you declare your own <code>collect</code> event handler for an Item tile you become responsible for tracking the amount collected and swapping out a different tile upon collection.
But once you declare your own <code>collect</code> event handler for an Item tile you become responsible for tracking the amount collected and swapping out a different tile upon collection.
=====Player=====
=====Player=====
The Player tile is unique. Only the primary Player tile can be placed in a room and only one room which then becomes the starting room. Only Player tiles can contain transparent pixels. Only the primary Player tile can define behavior. Additional Player tiles can be created and swapped in for different animations based on movement direction or context. Unlike other tiles, when swapped, only the Player’s representation is swapped. This way all Player behavior lives in one place, on the primary Player tile.
The Player tile is unique. Only the primary Player tile can be placed in a room and only one room which then becomes the starting room. Only Player tiles can contain transparent pixels. Only the primary Player tile can define behavior. Additional Player tiles can be created and swapped in for different animations based on movement direction or context. Unlike other tiles, when swapped, only the Player’s representation is swapped.
=====Exits=====
=====Exits=====
Exits can connect a single tile in one room to a single tile in another room, connect the edges of two rooms, or display an ending.
Exits can connect a single tile in one room to a single tile in another room, connect the edges of two rooms, or display an ending.


Single tile Exit connections are one-way. To connect two rooms to each other, you must place an exit in each room pointing to the other room. First place an exit in the current room, then in the Exits palette to the right, select the room to connect to and place the exit outlet. Then open the connected room and create a reciprocal exit. Related exits and targets should be placed next to each other, not on top of each other. Exits can be placed on solid World tiles and still be interacted with unless covered by a Sprite. This allows you to create door Sprites that require key Items to unlock and clear to access the Exits below.
Edge Exits automatically create a reciprocal exit in the target room. Place the edge exit in the current room, then in the Exits palette to the right, select the room to connect to, and place the exit outlet. That’s it, the rooms now have a two way connection. Despite their name, Edge exits don’t have to be placed at the edge of a room. They can be inset from the edge as much as you like which is useful if you want to have square rooms and use the remaining space for a HUD.
Fin Exits display some text and reload the game when dismissed.
===Song & Sound===
===Song & Sound===
The two audio modes have a lot of overlap. A little music theory will help here but just like you don’t need to be an illustrator to use the Tile editor, with a little experimentation and practice, you’ll be hammering out little opuses (opera?) in no time.
The two audio modes have a lot of overlap. A little music theory will help here but just like you don’t need to be an illustrator to use the Tile editor, with a little experimentation and practice, you’ll be hammering out little opuses (opera?) in no time.
Line 73: Line 70:


== Links ==
== Links ==
[https://play.date/pulp/ Pulp]


[https://play.date/pulp/docs/ Pulp Documentation]
* [https://play.date/pulp/ Pulp]
* [https://devforum.play.date/c/pulp Developer Forum]
 
=== Documentation ===
 
* [https://play.date/pulp/docs/ Documentation (Pulp)]
* [https://play.date/pulp/docs/pulpscript/ Documentation (PulpScript)] : Aside from all the tutorials and guides. It's always nice to have the documentation to fall back on. All different PulpScript commands are available for viewing right here.
 
=== Tutorials ===


[https://www.youtube.com/watch?v=r5GnCjsAqeQ PulpScript Tutorial]
* [https://www.youtube.com/watch?v=r5GnCjsAqeQ PulpScript Tutorial]
* [https://www.youtube.com/watch?v=r5GnCjsAqeQ PulpScript: A Beginner's Guide]: A tutorial that goes over the basics of PulpScript. Concise and to the point.
* [https://www.youtube.com/watch?v=p4eLcP3hgJc Make an Adventure Game for the Playdate using Pulp]: How to implement health, static hazards, moving hazards, locked doors, and more.
* [https://www.youtube.com/watch?v=ERJ0J2vxbzk Making a Simple Enemy AI and Attack System]: How to make a simple enemy pathfinding AI, how to make the player face the direction you move, a simple sword attack system, as well as locking a room until all enemies are defeated
* [https://www.gamedeveloper.com/console/playdate-pulp-zero-to-video-game-in-60-seconds Playdate Pulp: Zero to video game in 60 Seconds]
* [https://unbelievable-flavour.medium.com/neat-pulpscript-features-2c20cb809aec Neat PulpScript Features] A blogpost about some interesting Pulp features.


[[:Category:Pulp|All games on the wiki made with Pulp]]
=== Other ===


[https://www.gamedeveloper.com/console/playdate-pulp-zero-to-video-game-in-60-seconds Playdate Pulp: Zero to video game in 60 Seconds]
* [[:Category:Pulp|All games on the wiki made with Pulp]]


== Images ==
== Images ==

Latest revision as of 07:23, 9 June 2022

Pulp
A screenshot of Pulp.
Release Date: Public Beta: 20/1/2022
Developers: Panic
Language: Point and Click
PulpScript
Link: Pulp

Pulp is a special development system for the Playdate that is used via a web browser. Pulp has functionality for creating graphics, sound, music and fonts for usage in games, and more advanced behaviour can be made through its own scripting language known as PulpScript. Games created in Pulp can be exported directly to a Playdate console. Pulp is intended for an easier route to begin development for games on Playdate, to invite those who would be otherwise intimidated by programming languages like Lua and C.

A public beta for Pulp has been released and is available now to the public after an extensive closed beta period.

An internal game jam for Pulp was held at Panic, which produced six different games.[1]

Components

Pulp Screens.png

Game

Here you can set your game’s Name, Author, Background Color tile, and start Looping a song, as well as open existing games and create new ones.

Font

Choose between full-width and half-width fonts. You can clear or invert the entire font and UI tiles. Redraw individual characters or UI tiles.

Room

The meatiest mode. You’ll probably spend most of your time here, drawing and animating tiles, then using them to layout your rooms. You can toggle the display of the tile and pixel grids and a red overlay for solid tiles.

Tiles

There are four tile types, each with their own unique use. You can reorder tiles within their Layer and frames within their tile. You can change the type of most tiles.

World tiles do not support simple or scripted behavior.

All types of tiles can have multiple frames.

World

The majority of your rooms tiles will be World tiles. A World tile can be solid or allow the Player to pass through. World tiles do not support simple or scripted behavior.

Sprites

Sprite tiles are always solid. Both Sprites and Items can say something when bumped into or collected or define more advance behavior with PulpScript.

Items

Item tiles can always be passed over. By default, when a Player overlaps an Item tile it will be swapped with the Background Color tile and a variable matching the plural form of the tile’s name will be incremented (eg. an Item tile named “dot” will increment a variable named dotswhen collected). But once you declare your own collect event handler for an Item tile you become responsible for tracking the amount collected and swapping out a different tile upon collection.

Player

The Player tile is unique. Only the primary Player tile can be placed in a room and only one room which then becomes the starting room. Only Player tiles can contain transparent pixels. Only the primary Player tile can define behavior. Additional Player tiles can be created and swapped in for different animations based on movement direction or context. Unlike other tiles, when swapped, only the Player’s representation is swapped.

Exits

Exits can connect a single tile in one room to a single tile in another room, connect the edges of two rooms, or display an ending.

Song & Sound

The two audio modes have a lot of overlap. A little music theory will help here but just like you don’t need to be an illustrator to use the Tile editor, with a little experimentation and practice, you’ll be hammering out little opuses (opera?) in no time.

Script

The script editor is fairly fully featured. It supports PulpScript syntax highlighting, auto-indenting, auto-pairing of most control structures, and snippets for most functions (try pressing tab after typing if or tell and experiment to find others).

The PulpScript parser validates your code as you type, highlighting compilation errors below the editor. The editor will not save code that does not compile. If you switch away from a script before fixing its errors, when you return the code will be in its last working state—which may be an empty editor. Take care to address any issues as they arise.

Check out the PulpScript documentation to learn more about PulpScript.

Limitations

  • Pulp uses half the resolution of the Playdate's screen (running at 200x120 pixels).
  • Pulp runs on top of the SDK and as such, the performance ceiling is quite low.
  • Pulp uses a tile-based system mainly intended for "turn based" gameplay mechanics. It won't suit well to anything "real-time" such as a scrolling shooter.
  • PulpScript cannot be coded for as heavily as making a game from scratch using the SDK.

Links

Documentation

Tutorials

Other

Images

References