In Development - Speedcubing game

Hi
I have started working on my second game and wanted to share. This time it's a 3D Speedcubing game with the working title Cranky Cube (if you have any suggestions for a title please post them).

I'm making the game in C and using the cglm library for all the maths. I have worked a little in C before, but this is my first "larger" project and I'm really enjoining it, the playdate C api has been great so far.

I haven't really done a lot of 3D stuff before (had a class at uni, but that was mostly theoretical). I probably have a lot of optimizations I can do but so far it's running great on device with a few dips in the 30s for the 3x3 cube when 3 sides are showing and a larger one with the completion animation.

Here are some screen recording of what i currently have

playdate-20240707-150224

And here is the 3x3 cube
playdate-20240707-150336

I would like to run a small poll to see how many people now how to solve either a 3x3, 2x2 or both, as I'm thinking about adding a tutorial but I'm not sure if I'll will manage. I want to see if it's something I should spend time on or not, otherwise I'll probably just add a QR code to a website with the algorithms.

Which size cube do you know how to solve?

  • 3x3 & 2x2
  • 3x3
  • 2x2
  • None
0 voters
9 Likes

looks cool! I know how to solve a 3x3 but not 2x2, but i might learn soon

1 Like

You know whats crazy? I was literally talking to my friend earlier about how I wanted this to exist on the playdate! I was going to try to figure out how to make it myself but this kind of 3D thing is way beyond me. This looks awesome! I'm interested, what are the controls like for this? How are you utilizing the crank?

1 Like

Glad to hear that you are interested!

I haven't 100% settled on the controls yet, but currently I have it setup so that each button on the D-pad corresponds to a side and while holding down the D-pad you crank to rotate the face. e.g holding down the Up button will rotate the top of the cube (no button rotates the front face). I'm liking it so far and I feel like you can quickly gain muscle memory for the algorithms.

If you are interested I can send you the latest build and you can try it out.

As for things I have added. I now have a first draft for the main menu

playdate-20240708-211434

I have also added a dither pattern to the background. I'm not sure if I'm keeping it, but I'll try it out for a while and see.

1 Like

I'd love to test the latest build! Also I like the dither pattern, it adds some depth and I think its much better than a blank white background.

1 Like

This is looking awesome! I really like the control scheme you've described; it sounds very intuitive. Can't wait to try it out :slight_smile:

1 Like

I forgot to explain how the camera works and how to rotate the whole cube...

The camera can be moved either by holding down B and pressing one of the directional buttons or holding down one of the directional buttons and pressing B. You can also hold B and use the crank, this sets the viewing angle to the angle of the crank. Just pressing B without the D-pad resets the viewing angle.

playdate-20240711-165112

As for rotating the whole cube, it's the same as for the camera but you use A instead of B (moving the crank does nothing)

playdate-20240711-165137

I will upload the build here so other people can try. If you have any feedback feel free to post here or give me a message :slight_smile:

cranky_cube.pdx.zip (223.8 KB)

As for what I'm going to work on next. I'll be making a settings scene where you can change the 8x8 pattern for each side. I hope this will make it easier for people distinguish the sides if the default patterns are to similar for you. I'm also thinking of adding a checkbox for inverting the camera/cube rotation controls.

My end goal is getting the game on Catalog as a big wish for the game is having a global leader board where people can compete :crossed_fingers:

3 Likes

Just gave it a try. I was surprised at how well my muscle memory translated into the crank controls, they're very intuitive! The only feedback I've got would be to add some (optional) sound effects. I think that would really take this project over the edge. It already feels super polished so congrats!

1 Like

Glad you liked it!!

Oh I'll definitely add sound effects, I have even implemented all the code for it. It's just that I have no ability when it comes to sound, so I'll need to get someone to do that for me.

1 Like