1. Project Start


Context

By the end of 2021, I had gotten a bit fed up of making games in Unity, not that I had made many at all. Over the summer, I was definitely stuck in the rut of starting projects and getting bored or fed up with them before they got started. The problem was twofold: I didn't have a clear vision of what I wanted to make, and I was (and still am) a fairly novice developer.

To combat this, I decided to make a copies of of Snake and Space Invaders since the end result was clearly defined. This worked really well, and I finished both of them, which also exposed me to new parts of game development - think pause menus, main menus etc. I finished Space Invaders around September/ October time, but I was definitely a bit worn out by this point - making games requires a lot of effort - so I decided to have a break. I had just started a a new job as a developer, so I was getting my fill of code five days a week anyway.

At around this time, I discovered the Bristol Games Hub,  and I was monitoring their newsletter for an opportunity to reach out and meet other game developers. In January,  they hosted a site for the Global Game Jam, so I took part and contributed code to Ice and Fire. The game was chosen as the winner at the local site, a fact which I was incredibly proud of, and this has inspired me to jump back in and start playing with unity again. To remove ambiguity, the game was not chosen as the winner of the worldwide competition, rather it was the winner of around 5-10 submission on that one Bristol site.

Now we're here, and YOU should play Ice and Fire.

Idea

The game is very much just an idea that I am prototyping at this point. I have no idea whether it will be any good. I've given a decent outline of the idea on the project page, so I won't repeat much of the detail here. An initial one-line pitch is below.

A level-based puzzle game where the player must send a copy of themselves back in time to help their current self find the solution.

I've always been fascinated by concepts involving time travel - a perfect example of this is the Netflix TV show Dark - so I wanted to have a go at incorporating time travel into a game. it's hardly a novel idea, but I thought it would be a good, achievable challenge. I was thinking a similar set-up to Ice and Fire,  but it would have some Prince of Persia III rewind vibes - a game I played to death on the PS2 way back - with a dash of the Terminator.

Progress

I started on Saturday and spent a good chunk of my weekend getting the project moving and off the ground, I had been having a think about my approach to it throughout the week, so I was excited and ready to go. Try and keep a straight face when you see the result of my weekend of work in the screenshot below.

The initial sandbox scene in which I am currently working. Blue circle is player; the purple hexagon is a pressure pad, the brown square is a crate, the blue rectangle is a door linked to the pressure pad, and the yellow square is the goal.

Whilst it may not be visually appealing, it works, and I am happy with the design so far. I won't go into any technical details here since there seems to be a specific post type for that on itch.io. A bullet-point list of current functionality is given below.

  • Player can incrementally move around the scene and the movement is recorded by the Timeline Manager
  • Player movement is restricted by the walls (white border)
  • Player can push the box around and they are stopped upon pushing the box into a wall (or another box). Box movement is also recorded by the Timeline Manager
  • Pressing the Shift key will trigger a rewind and all the player and box movements will be played in reverse
  • Door is hooked up to the pressure pad, and it will disappear when the pad is pressed
  • Pressure pad has a minimum press weight, meaning the weight of player alone can not open the door
  • Door will re-appear if the pressure pad is released
  • Goal turns green when the player enters it (boxes of course do not result in the goal turning green)

I've definitely tilted the bean can enough with the bullet points above, so you're on your own if you want to solve the conundrum presented in the screenshot.

I am quite happy with the current rewind functionality. Note that the rewind is not instantaneous: if there were five seconds between two actions, there will be five seconds between them on the rewind too. I intend to make the code public on Github when  I have made more progress.

To Do

I'm obviously not going list every outstanding item here since I basically have to build all of the game still. This is section is more of a next-steps style of section - I should probably change the title now while I am still writing this. The below are my next steps, thought it will probably be a fortnight before I get to spend a significant amount of time on this again.

  • Update the rewind functionality to generate a clone that is sent back in time. Currently the original player is sent back, which is not what I want
  • Limit the maximum amount of rewind. Currently the rewind goes all the way back to the start
  • Set the rewind to occur whilst the Shift key is held. Currently you just press it and it sends you all the way back

It would be nice to have a debug view of the rewindable actions in the Unity Inspector for the Timeline Manager, however I'm not sure how I would go about this or whether it is even possible. I know I would end up spending an absolute age on it either way, so this low priority for me now.

This is the default Inspector view in Unity. How bland. It would be good to see a list of objects that would be affected by the rewind and details of the rewind steps. Note the event channel scriptable objects in the Inspector. The inspiration for this came from this video/open project.


Get Time Travel Prototype

Leave a comment

Log in with itch.io to leave a comment.