PDSnake - public domain no-frills Snake

I just released the first version of PDSnake, a simple yet polished version of the Nokia classic Snake for Playdate. The game is free and dedicated to the public domain.

itch-cover

You can download PDSnake at the following places for free:

PDSnake features a minimal aesthetic, high-score tracking, rock-solid 50 FPS, and an option to disable the sound effects.

PDSnake v0.1.0 1

:tv: Watch gameplay footage.

Why release a Snake clone?

I couldn't find any no-frills versions of Snake for Playdate. I played Snake as a kiddo on my mom's Nokia cellphone, and I wanted a fast and minimal version just like that.

It may seem like a trivial project, but it's been a great learning exercise. In particular, I was able to figure out how to work nicely with scenes and switch between them easily throughout the code.

I also thought it'd be great to polish up a game from the book to help people take one of the simpler chapters a bit further to a finished game:

View the source

The game's source is public and freely available to use and adapt:

Thanks for checking PDSnake out!

6 Likes

Lovely idea! I think this game is so fitting for a device like the Playdate. Just got mine yesterday and was looking for it. I also love that you made it open source!

Looking forward to see how it progresses : )

1 Like

Thanks so much!


I released v0.2.0 yesterday with some new features:

  • Display score during gameplay (! denotes new high-score)
  • Dark mode option

The score reset function has been removed but will come back in a future update. You can always reset your game data from the Playdate's Setting app.

I also set a new personal best of 45! :apple:

Download the latest build at PDSnake by Brett Chalupa or on GitHub: Release v0.2.0 · brettchalupa/pdsnake · GitHub

Here's the code diff if you're interested in what specifically changed: Comparing 0.1.0...0.2.0 · brettchalupa/pdsnake · GitHub

Next up on my list:

  • Card and icon meta images
  • Polishing up some of the UI screens
  • Total stats tracking and display
  • Bring back high score reset
1 Like

I just pushed up a new release (v0.3.0) that includes:

  • Meta card and icon for the app
  • Main menu polish
  • Stat tracking
  • More screen

You can reset your high-score and other stats in the Stats screen by pressing (A) + (B) at the same time.

Here's how the Stats screen looks:

View the full code diff for this release.

You can download the latest build on itch or right here:

pdsnake-0.3.0.pdx.zip (35.1 KB)

Next up is some UI polish and refinement. Then I'll consider this done!

I've just released v1.0 of PDSnake after polishing it up some more!

Here's a gameplay recording:

New stuff in 1.0:

  • Polish various scene layouts
  • Return to Main Menu from Game Over with (B)
  • Display current score and high-score when Menu is pressed

I had a really good time figuring out how to do the pause menu custom image. Learned a bunch.

Now that PDSnake done, I'm going to do some deeper diving into the SDK. I'll be doing PlayJam 7. And then I'd like to work on some more small games.

Here's the code diff for this release: Comparing bbff65eaea..d6507f3b27 - bcodes/pdsnake - Codeberg.org

And I've uploaded the latest build in all the places and attached it to the first post in this topic.

A player reported a crash today, and upon investigation, it was a bug with some code I wrote that would cause a crash for anyone without save data present. So basically everyone but me. :smiling_face_with_tear: It was a quick fix, and I just pushed up v1.1 for everyone in all the places.

nil strikes again! Here's the commit with the fix for anyone interested: Ensure save isn't nil before checking stat val · 2d5ab4af7e - bcodes/pdsnake - Codeberg.org

I've learned an important lesson in testing a fresh install with game data cleared on device before making a build.

1 Like

I got some player feedback on improving the game feel and UI, so I just released v1.2, which includes a removal of the "Score: " prefix during gameplay and a less severe speed increase over time while playing. The player thought that by making the snake move 2x faster, it changes the intent of the game: it becomes more about twitch reaction speed rather than challenge of maneuvering the snake as it gets longer.

I really agreed and adjusted as such! Awesome feedback.

I just updated the build on all the places, including the initial post in this topic. :snake: