A little update:
I'm pretty happy with how the transitions through the tunnels look and with how smoothed movement looks with the player being hidden behind scenery.
A little update:
I'm pretty happy with how the transitions through the tunnels look and with how smoothed movement looks with the player being hidden behind scenery.
love the little up / down the ladder animations !!
What do you mean Pulp wasn't made for side-scrolling platformers?
Scrolling Platformer Demo.zip (2.9 KB)
This was fun to work out! I tried to keep the code to a minimum and really lean on what Pulp already offers. It's certainly no Mario (shamelessly stolen level layout for this demo aside) but it's not unplayable!
The trick to "screen-scrolling" is in Pulp's follow config and using edge exits set several tiles into the screen to sew together multiple rooms with overlapping layouts. Then I simply used crop
to add the black bars on either side of the screen to hide that room switching from sight! If you load up the json and comment out the crop command in the game script it makes the whole thing very obvious (and is actually a kind of cool looking effect).
The platforming is very rough-and-ready as the jump curve is less of a curve and more of a triangle, but hey the player goes up-and-down and it's not awful (ymmv!).
Unfortunately it seems the player confirm
and cancel
events for pressing the A and B buttons don't fire repeatedly when held no matter the Pulp config, so my idea for varying jump height by how long the button was held was scrapped. Instead I made both A and B do a jump, but the B jump is shorter!
Very infrequently, I've not yet joined the server for playdate/pulp. Definitely more of a forum than chat person I'm afraid!
Introducing Tile Hill - a tile-based sort-of-side-scrolling proof-of-concept platformer in Pulp!
I adjusted the jump curve to feel more natural, and made the jump height with the A button depend on how long of a run up you take. The B button always does the smallest jump so you can still hop at speed. Also - semi-solid platforms!
I added slopes that can be run up-and-down. You can also press down to slide down a slope!
Spikes are, naturally, deadly to any platforming hero. I also made some circular saws which aren't in the demo but are in the editor - the difference is that spikes are only deadly on vertical collisions, but the saw is deadly from any direction.
Finally I added springs. They preserve vertical velocity, so you will bounce off them up to the same height you fell from.
Here's the JSON if you'd like to play with it and see how it is put together
Tile Hill.zip (7.4 KB)
You're doing fantastic work here!
A Doodle Sketch toy - draw with the d-pad and wipe clean with the crank (that is, for all my artistic ability, supposed to be a playdate )
A sneak peek of Pulpino - an even tinier in-game editor made in Pulp!
Moving the cursor "off-screen" makes the HUD show in the editor, but the B button also quickly cycles between tools and the crank will change selected tile. Docking the crank switches to game mode (and undocking it back to the editor).
Not sure how far I'd like to take this. Adding more tiles, certainly, and a HUD for changing rooms on the left. Maybe text input would be cool! I'm not sure how feasible actually saving creations will be - it'd mean a store variable for every tile I guess, which sounds painful!
Edit - and here is the move tool and switching rooms:
Pulpino is now close to something-like-v1...
The objective of any level is to collect all of the floppy disks and get to the computer. As well as solid walls you can place ice (the player slides in the direction of movement), conveyor belts (they move the player in their direction of travel), switch blocks (that are either solid or non-solid), and switches (that are triggered when the player stands on them).
The biggest downside at the moment is not being able to save any creations between play sessions. I'm not sure if there is a good approach to that other than recording every tile in every room...
Nice work on Pulpino so far! I really like the interactable objects and the slide-out menu design.
(Also, you may already know about this, but there is a tool called Pulp Mill that allows you to translate Pulp .json into Lua, so you can work in some saving/loading functions that way)
Using Pulp Mill so I can handle saving/loading in Lua is a very sensible suggestion, but I worry it would compromise the entire concept of making an even smaller game editor in Pulp if it isn't really all done in Pulp. I'm in a corner of my own making
I've got to the point with Pulpino where I really need to test out the performance on an actual Playdate - the only problem being I don't have one yet!
Would anyone lucky enough to have a console be willing to test out the pdx for me?
I'm specifically interested in:
I suspect the bucket and move tools may have problems. I really hope saving doesn't!
Here is a zip of the pdx: Pulpino.pdx.zip (156.4 KB)
Edit: A couple of kind people over on discord have tried it out for me. As suspected the bucket and move tools noticeably struggle, reportedly taking 3-5 seconds to process, which is unfortunate but not world-ending, and otherwise the performance sounds ok! I'll see what I can do to improve performance, although it might have to wait until I have my console so I can test first hand.
You could try putting it through the Pulp Mill!
can i use this to make a game?
From that demo, go ahead!
Would love to see what you come up with
I love your solution for smoothing out the player movement, thanks for providing that demo!
How did you get the player to smoothly move behind tiles? I've been using hide for that, but when moving smoothly the player is drawn above the tile as they exit. It doesn't look great, especially when walking between two tiles hiding the player, since the player pops up briefly moving between the two. Any pointers would be appreciated if you have the time, thanks!
Bumping this with some Resonant Tale progress!
This is a sub-boss in the first dungeon. There are a few different mechanics going on:
play ... then
and wait ... then
for timing events.All pulpscript has is a random
function that returns a random integer between some min and max values (inclusive). After a bit of thinking what I realised is that, if you have a room where the possible x coordinates go between x_min
and x_max
, and the player is somewhere in the room, you can use the random
function to randomly get an x coordinate that isn't the player's by getting a random number between x_min
and x_max - 1
, then comparing it to the player's x coordinate and adding 1 if it is equal to or greater than the player's x coordinate.
Like this:
min_x = 9
max_x = 15
tile_x = random 9,14
if tile_x>=event.px then
tile_x++
end
Maybe this is obvious, but it was an "aha!" moment for me!
Unfortunately with three different pot locations to randomise it got a little more complicated. For each subsequent location I had to reduce the max in the random range (essentially you reduce it by however many values you already have occupied), but I also had to recursively check if my random value was equal to or greater than each of the already occupied coordinates. So the first pot has just the one conditional, the second pot has a top-level if/elseif with a nested if in each, and the third pot has a top level if/elseif/elseif each with a if/elseif in turn each with a nested if. I can just about accept that, but randomising the locations of more than 3 objects and some kind of refactor would be necessary - exactly how I don't know!
Anyway I hope some of that was interesting and I will endeavour to actually get the game finished!
First of all, this might be my favorite thread here. I love all your prototypes and also every bit Iâve seen from your âmainâ game.
Regarding the scaling up of randomized tile placement, couldnât you just check for the type of tile that is at the random coordinates.
I.e. if itâs a world tile (which means empty) place the pod, if itâs a sprite (there is already a pod at the coordinates) choose new randomized coordinates?