I made a prototype for a puzzle-platformer


I decided to make a puzzle platformer about time travel.  But it is not like Braid. No, it is a completely different kind of time travel. A kind of time travel where you change things in the past to change things in the present.  Let's see what I have done.

So I create an empty Unity project with the idea in my head for a game where you shift between different time frames to platform through things. I got a character controller from Brackeys, and started making some sprite shapes. I added edge collider components to the sprite shapes, and I thought I would have to manually map them, but thankfully it was automatic. Once I had a little capsule man jumping around in a field, I figured it was time to add the game's main gimmick:

TIME TRAVEL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

I went into Visual Studio & thought of a way to implement this, and this is what I came up with:

There would be a meter for the amount you would time travel, and by holding Shift, you could fill up that meter. When it reached the maximum, it would be set back to zero, and a bool value would be changed to true for being in the past, which would instantaneously load the past level. I then implemented this, but for some reason I made the meter fill a static variable, which caused nothing to work, and then I turned my brain on and realized that there was no reason for the variable to be static, so I got rid of the static modifier, and it worked wonderfully! 

Now, stylistically, I thought of making the present a tilemap level, and the past a sprite shape, so I had to open Piskel and create literally A SINGLE WHITE PIXEL as a tile for the placeholder present. It sounds outrageous, but I didn't think of any other way, so that's just how it is. With the past, I said earlier, it would just be a sprite shape, because back then there was no industry and everything was natural and all that jazz. 

Implementing the two versions of each level mechanic was somewhat easy, I decided to add a timer for the amount of time in the past so that you don't just spend all of your time there, but I had no way to get back extra time, which was pretty stupid on my part. :/ I made a little playground to mess around with, and then I got some feedback from other people who said that the prototype was fun, so I took that as a go-ahead to continue working on it.

Later, I added post-processing effects to give this little warp effect for when you're in the time-travelling process, and I also made it to where you have to crouch and hold shift, and wait a significantly longer time, because you're travelling through time, and that takes a lot of energy. I also added the mechanic where, when you are in the present, you gain time back to spend in the past, albeit at a slower rate than you do vise versa.

Now it was time to start adding interactable objects. I had two ideas for objects: a boulder you can push around in the past that becomes a block with a grate growing out of it in the direction of where the sun was in the past in the present, and a log that also can be pushed around in the past that becomes a moving platform in the present.

Implementing the block to go to the position of the boulder was a little time consuming; since I had to fit it on the same grid as the tilemap so it wouldn't stick out, I saved the boulder's position to a Vector2 variable, that was then rounded for both X & Y, with 0.5 being added to each, and the block's position was finally set to that Vector2 variable. It may be a little inefficient, but hey, it works. Writing the script for the girder took a little extra work.

Basically I had to create an empty GameObject that would be the child of the block, and then there would be the actual girder that would start from the edge of that gameobject, so that the rotation pivot would be the center of the block, rather than the center of the girder. Understand any of that? No? Great! I then had to search online for a 2D look at script because the lookat script Unity had was only really good in 3D, so I found an eligible script and stole it. And lastly, I created the sun- It's literally just a yellow circle in the sky that's it no programming required.

Time for the moving platform; I stole a moving platform script from Youtube and made the points be parented by an object whose rotation and position were mapped exactly to a log in the past, which is essentially just a box rigidbody. Much simpler compared to what I had to do earlier.

With these core mechanics created (and quickly mashing together a level exit), I finally stepped down and made a level. A level where you have to move logs to get to a place where you move boulders to get to a place where you moved logs to get to the exit, I had a deadline to follow.

Thanks for reading this all the way through, I really appreciate it. Make sure to come back next time for next devlog I make for this jam, yes, I am doing another one, I want to make this a full release.

Feedback is super appreciated, especially constructive criticism. If you played it and had fun, let me know! If you played it and absolutely hated it, tell me why! I hope you have a great day, and good whatever time it is.

Files

Time Warper Windows 28 MB
May 27, 2022
Time Warper Mac 58 MB
May 27, 2022
Time Warper Linux 15 MB
May 27, 2022

Get Time Warper

Comments

Log in with itch.io to leave a comment.

An interesting read, but a few screenshots would help.