Dev Log | CrankShaft

Hi, I am a game developer in my professional life. I wanted to explore the Playdate device and its limitations to see what can be done with it. I'm currently thinking about 2D games that give the illusion of being in 3D. I've developed a game prototype based on one of these ideas.

CrankShaft

The game is called CrankShaft, and it utilizes the crank control to create an enjoyable experience. The player controls a bouncing ball that moves horizontally, and when it encounters an obstacle, it jumps. By rotating the cylinder using the crank controller, the player tries to guide the ball to the end of the level.

Visually, it appears as if we're rotating 3D arc objects. However, these objects are actually 2D sprite animations. During rotation, the sprite animation frames change, allowing the ball to move horizontally along the sprite's x-axis. I thought I could achieve this orthographic effect, and it works well. I haven't come up with a method to do this using perspective.

I didn't use SDK collision system. Instead, I developed my own angles collision algorithm. This allowed me to create a system that works accurately at the right angles and with high performance.

Currently, the arrangement of the arcs in the game is randomly generated. I plan to add fixed levels to the game. I want to make it suitable to apply for catalog with features I want to add gameplay and artistic.

5 Likes

this is awesome. curious about that custom collision system! I could see it getting crazy if u had passages that allowed arcs to be placed close enough to each other that the ball could "back bounce" and quickly ricochet between two arcs. of course that could blow up the scope. it is sick as it exists! would buy this.

I implemented a simple logic for collision calculations. I know the range of angles in which the arc is drawn and the rotation at the moment of contact. If the calculated angle falls between the two angles at the moment of contact, I understand that a collision has occurred. I only perform calculations when the ball touches the ground, which allows me to achieve good results with high performance.

Your suggestion sounds fun. Having the ball bounce between two close arcs could bring a different dynamic to the game. However, it seems there is a technical obstacle related to layers. Currently, the ball is always on the top layer throughout the game. When it hits the arc on the ground and moves to the other arc, it needs to switch to the bottom layer. Perhaps I can find a solution to this.

1 Like