Hey there, welcome to this devlog for “Grab n Dash” – a game I created in just 12 hours for Ludum Dare 53.
The game jam typically lasts 72 hours, but I only had 48 hours to work on the game due to a day trip, which meant I had to create a game with a simple concept that I could finish quickly. The theme for the jam was “Delivery,” and my idea was to create a 2D side-scrolling game where the player controls a ship with claws to deliver packages to their destinations.
So, let’s dive into Unity. Every game starts with a cube, right? At least for me it does! I quickly got to work and made the ship move up and down using the spacebar. I then added claws to the ship, copying and pasting the movement code from the ship body and modifying it to move locally.
With the basic movement done, it was time to create the packages and destinations. Everything except the player, should be moving at the same speed to the left. It will create an illusion that the player is moving to the right. I used a GameManager script to hold the speed variable that represents the speed of the world moving relatively to the player.
To implement the mechanic of the claws grabbing packages, I used the Physics2D.CircleCast function with a layer mask to detect when the claws sweep through a package. If the claws grab a package, the package is moved to the position of the claw, and its transform parent is set to the claw so that it will follow the claw. I used the CircleCast function instead of the ColliderDidEnter2D function because it’s better for fast-moving objects like bullets, although it may be overkill for this game.
Once the claws can grab packages, I used the same CircleCast function to detect when they touch destinations and drop the package they are holding at the destination.
To keep the game interesting, I added some obstacles that the player needed to dodge, and created a Spawner script that spawned the obstacles, packages and their associated destinations.
With most of the game components in place, I added a game loop where the player earns one point for every successful package delivery and loses a life for hitting an obstacle or missing a delivery. I added basic UI elements for the score, life, and game over menu.
With the basic gameplay mechanics in place, I moved on to graphics and audio. I made all the graphics using Krita and added a background music asset from the Unity Asset Store and sound effects from an asset bundle. Once the graphics and audio were in place, the game looked and sounded much more interesting.
Finally, I spent some time polishing the game, including fixing minor bugs and increasing the difficulty for every point the player scores.
Overall, I’m happy with the result, especially given the time constraints. It’s always fun to participate in game jams and see what you can create in a short amount of time