Water + Portals + Saving & Loading

I finally got water going through portal working with saving and loading.

water through portals

It’s not perfect, but the basics are there.

This is a really big step. It may not look like it, but there are a TON of really complicated systems at work here.

Level streaming loading, persistent save system, portal, water, etc.

The next step will be to refine this.

Of course there’s a bunch of edge cases, so the beta testing for this will be very interesting.

Dark Mode and Portals

In dark mode, the growth process is reversed. When you bring the dark mode box to the dark mode tree, it shrinks down into the seed it grew from.

Tree Growth Inverse


Also, David has started working on portals. We’re no longer using the system I set up about 2 years ago, but instead going with building something from ground up to work with all the other mechanics.


Now you’re thinking with portals!

Development Update – Portals & New Screenshots!

The last few days have been pretty intense as I’ve been working to get a playable demo ready to show off at IndieCade East. I wanted to include as much new content as possible, so that I could gauge different players’ reactions to the new direction that the game is headed in.

The portal system took a while to get right. There were still a ton of problems after integrating them into the game, and I actually ended up overhauling the entire system. In the previous version, I had all these triggers to detect when players were in different zones. Each trigger had a script and certain functions, so they were all cross referencing one another. For example, the detector to determine whether player was in range for the door to be open or not, would first check the detector to load the scene to see if the other scene actually exists.

It was way too confusing to manage, and when it came to debugging, it was a nightmare because I couldn’t tell which trigger or which script was causing the problem. Eventually I rewrote everything so that the only thing the detectors do would be to turn one boolean value on or off, depending on whether the player was inside or not, and a central script, the portal manager, would handle all the different states and controls.

In hindsight, this seems like the obvious approach, but it was really only clear to me after the portals and their basic functions had been put in place.

Anyway, here are some gifs of the portals in action:



And also, screenshots from the latest build!

Relativity_2014-02-12_v2 2014-02-12 21-18-43-28

Relativity_2014-02-12_v2 2014-02-12 21-17-50-11

Relativity_2014-02-12_v2 2014-02-12 21-28-27-18

Relativity_2014-02-12_v2 2014-02-12 21-24-55-21

Relativity_2014-02-12_v2 2014-02-12 21-36-44-37

Relativity_2014-02-12_v2 2014-02-12 21-38-22-67

DevLog Update – (Semi)Working Portals

It’s 1:30 in the morning, but I finally got portals to work!


It’s not perfect. There are a few issues I need to sort out:

1. You can see that there’s a flash right at the moment when you walk through the portal.

2. You have to be facing the portal in order to go through it (can’t walk backwards into it).

3. You can’t carry objects with you through the portal.

4. Still need to set up portals to teleport between different Unity scenes.

I’m not too sure how to approach these issues yet, except for the last one. I believe I can pull off portals between Unity scenes with additive asynchronous level loading. I think the problem of carrying objects through the portal will be the most difficult one.

However, pretty happy to have gotten portals working. They’re going to play a big role in the game.

DevLog Update – Screenshot Saturday & Portals!

Screenshot Saturday

It’s been a really exciting weekend for me. As some of you may know, I’ve been participating in Screenshot Saturday pretty regularly for about 2 months now, both on Reddit and on Twitter. Both places have been good venues to showcase some work-in-progress stuff and get feedback.

This Saturday, I shared this image below, which I made earlier in the week, and had posted in a previous devlog update:

It got some good response on Twitter, people were retweeting it and also commenting on the image.

I decided to share it on /r/indiegaming, the section on Reddit dedicated o indiegames. I had been lurking there for quite some time, but had never posted anything about Relativity, so had no idea what to expect. And to be honest, I wasn’t expecting much, just thought it would get lost amongst other posts, or worst, get downvoted to oblivion.

Instead, the feedback from the commutniy was really enthusiastic! It quickly became the most popular post on the subreddit, and I got a lot of response. Even RockLeeSmile, the Let’s Play youtuber, and Mike Blackney, who worked on Antichamber, commented.

Here’s the post: http://www.reddit.com/r/IndieGaming/comments/1uz7ig/escheresque_staircases_from_a/

Anyway, I know this stuff isn’t that important, and there’s still plenty of work to do, and a long road ahead of me. However, because I’ve been working on this game for so long by myself now, it can be really hard to gauge whether something I think is good actually is good, or if I’m just deluding myself. So for me, getting such positive feedback at this stage was just encouraging, and I felt like it validated my efforts in some way. At least now I know that I’m on the right track.


Ok, I’m starting to prototype some portal mechanics for my game. It’s turning out to be a little more difficult than I had expected. However, I’ve seen some pretty good working examples in Unity, so at least I know it’s possible. It just requires time.

My approach is to use render textures. Basically having cameras that point out from a portal entrance, and then rendering whatever the camera sees onto a texture, which is then placed on another portal door.

I’ll need to do some matrix transformations so that the cameras on the portal doors move according to how the player camera moves, so that it appears as if you’re actually looking through a portal, and not just a flat image.

This is just the visual side of it. In terms of actually teleporting player and objects across, I’m thinking I’ll need to use additive asynchronous level loading so that I can have two scenes open at once, and create the illusion of a seamless world.

Here’s what I’ve got so far:

Gotta start somewhere. :)