Note
Hey there! Just a heads-up: this code was written back in 2024. It might not follow all the current best practices, but hopefully, some of you might still find it interesting! I've archived this repository as I don't plan on updating this game any further. If you're looking for an example of a good Playdate game structure, feel free to check out my template repository or one of my more recent games. Thanks for stopping by!
Siege of Syracuse is little game made for the Playdate during the Uncrank'd Game Jam.
It's the year 213 BC and the great city of Syracuse is under Siege. The Roman Empire is trying to conquer the city. You have been chosen to help Archimedes to defend the city using the power of the sun. Use the reflective mirror to create a beam of light that will destroy the floating Roman ships. There are five waves of ships that will try to reach the city. You have to destroy them all to win the game. Keep an eye on the temperature of the mirror, if it gets too hot you will need to wait for it to cool down.
It's a simple tower defense style game! You'll use a mirror, rotating it with the Playdate crank. Your goal is to reflect the sun's rays onto the incoming Roman ships to destroy them. Watch out, though โ the mirror has a temperature that increases when you use it! If it gets too hot, you'll need to give it a moment to cool down before using it again. There are five waves of ships trying to reach the city in total. You have to destroy them all to win the game! Between waves, you can upgrade parts of your mirror to make it more powerful or repair the tower to refill your health.
You can grab the compiled app from itch.io. If you enjoy tinkering with code, feel free to download the source code from this repository and compile it yourself using pdc
๐งโ๐ป
This project is just a simple Playdate game built using the official Playdate SDK. It's written in Lua and uses the Playdate's built-in graphics and input libraries. I've done my best to make the code readable, adding comments here and there to explain things. ๐ The code is separated into different files / folders to hopefully keep things organized. The main files / folders are:
main.lua
: The main entry point of the application. It initializes the app and handles the main game loop.scenes
: This folder contains the different scenes of the app.nodes
: This folder contains the different reusable bits used in the app.
If you find this source code helpful, maybe consider supporting my work? ๐ You can find me on Ko-fi or leave a small donation via itch.io. Any support truly helps me keep tinkering and hopefully improving things! Thank you! ๐
- Sound Effects: The lovely sounds effects located in
/source/assets/sounds/fx
are from Pixabay. I did some minor editing to make them fit just right. Apologies, but I downloaded several sounds before picking the final ones, so I don't have the specific links handy anymore. - Voices: The voice lines located in
/source/assets/sounds/voices
are made via Tortoise TTS - Music: The music located in
/source/assets/sounds/loop
is by me. - Font: The font used in the game, which is loc
5181
ated in
/source/assets/font
, is from Hewett Tsoi - Images: The images used in the game are from Rawpixel (using the Public Domain Filter)
- Fluid: The fluid simulation is based on the work of Dustin Mierau.