Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

[DevLog] Escape the Room

A topic by Evey created Jan 07, 2018 Views: 255 Replies: 4
Viewing posts 1 to 5
(+1)

Hello everyone! My name is Taylor and I'm a 23 year old IT engineer turned novice game developer. I've dabbled in some bitsy and Unity in the past few months and I've decided that the next step for my development in this area would be to successfully complete and publish a game.

So, my goal for this jam is To publish a completed game!

I've chosen to embrace the jam theme of 'Memories' and the game idea I've pulled together is inspired by a couple of my favourite games: Ghost Trick: Phantom Detective and the Zero Escape series. What gameplay concepts did these games have?

  • 'Escape the room' puzzles
    • Zero Escape, as the name may imply, is basically a series of escape-the-rooms with heavy plot inbetween.
  • Time limited puzzle solving
    • In Ghost Trick, in the puzzle segments, you have only a certain amount of time to reach a puzzle solution or you're forced to reset.
  • Puzzle restart/replay as a necessity
    • In both games it's all but impossible to achieve success on the first playthrough - you're either lacking in assets or knowledge the first time around and must develop these to proceed.
  • Metagame knowledge as a mechanic
    • Zero Escape toys with this as both a gameplay and plot mechanic; the spoiler-free explanation is that it's not only acceptable but necessary to make use of knowledge obtained in previous playthroughs - e.g. memorising a puzzle and using this to solve it directly next time without working through the puzzle in full.

My game concept is therefore a single escape the room puzzle with a twist - the player has a very limited time in which to solve it before the game automatically resets: time being limited to such an extent that there is absolutely not enough time to work out the solution in one go! As in the two games mentioned above, the player must work off what they've learned from each iteration of the game in order to progress.

I'm pleased with this concept because, as with some of the best concepts for a novice developer, it lays a simple foundation that can be built off with more complex additions - however complex I feel comfortable with. It's also an engaging and interesting idea for me and I hope it will interest others too!

All that said, I've drawn up a list of specific goals I feel I should achieve for this game to be considered (by me) suitable for submission:

  1. Title screen
    1. With 'Start Game' and 'Exit' buttons
  2. A working level
    1. Time-limited reset mechanic with UI bar
    2. Solveable puzzles
  3. Win condition
    1. An overarching puzzle with solution gained from solving the others

All fairly simple and open to stretch goals e.g. more puzzles, more levels, recording and displaying player score (number of iterations they took to solve), so I've got plenty to work on! I certainly hope to have something enjoyable to show off at the end of this, I do work full time so I will need to make good use of my spare time to achieve this - but the time box I feel will help motivate me to get something done.

Here's hoping for a productive and valuable couple of weeks!

Day Three- Whoops, late start!

I really wanted to get the time mechanic sorted right off the bat as this is the core gameplay mechanic and was sure to be fairly challenging...

Getting the time countdown to work was surprisingly easy, in fact! Getting the respective UI bar to display the appropriate amount of time remaining, however, was a bit more fiddly. It took a fair bit of work to discover how even to affect its size during runtime: it turns out that it is not possible to directly manipulate the position in code; rather, it's necessary to manipulate four 'offset' variables, referring to 'minOffset' and 'maxOffset' for the UI element's x and y axes.

Following this I could work out the top and bottom values for 'offsetMax.x' where the bar was either totally full or totally empty, then, working out the percentage of time remaining I'd apply that percentage to the box size and...


...oops.

What had I done wrong? This was actually nearly what I was after and the jittering at the end of the gif is actually the level resetting, as intended, when the time hit 0. But the bar was going the wrong way!

The issue took me a while to figure out but as with all the best technical faults there was a simple solution: What I had been doing was working out the percentage of time left (timeRemaining/maxTime) and applied this to the time bar's offset value. But the offset works in reverse! Rather than the bar starting at 100% size and going down, I was setting it to 100% of the max offset value (i.e. the bar being 100% reduced in size) and decreasing this offset as time progressed. What I needed was the opposite of this; the logical way of doing this being to measure time elapsed, starting at 0% and increasing to 100% of the time limit!

This was a fun little challenge to kick off with as not only do I have limited experience developing with unity's UI tools, but there was also a bit of maths to be worked out to come up with the right solution.

So now, I have a time bar that decreases as time elapses:


And works just as well when adjusted to different time scales - important, because I'll probably need to tweak this a lot later to give an appropriate amount of time for the player to complete puzzles in!


I love your concept - Ghost Trick and Zero Escape are fantastic games to draw inspiration from, and I'm excited to see another take from them. I enjoyed reading your first update figuring out your programming problems. Good luck, hope the rest of development goes well for you :)

Hey, I am really interested in what you end up making! I love doing escape rooms in-person, I've done some from all over the United States. And I agree that it is cool to see your thought process in dealing with your programming issues. Good luck! :D

Ghost Trick and Virtue's Last Reward are both on my short list for "best game I've ever played", and the twist seems like it leaves a lot of room for interesting puzzles and story alike, so I'm super hype for this.