Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 07:38:37 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsManifold Garden
Pages: 1 ... 5 6 [7] 8 9 ... 63
Print
Author Topic: Manifold Garden  (Read 390005 times)
William Chyr
Level 8
***



View Profile WWW
« Reply #120 on: January 27, 2014, 11:38:59 PM »

DevLog Update #27 - 01/28/2014

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.
Logged

chris wade
Level 0
**



View Profile
« Reply #121 on: January 28, 2014, 12:06:04 AM »

Glad you figured out the rotation thing!

How are you handling the portals rendering? Render textures I'd guess, but specifically how are you getting it to rotate so well with your view. I did a quick experiment with something similar a few months back, but never got the camera right.

As for taking items through the portals, have you tried saving the position offset of whatever you're holding and then adding that offset when your position changes?
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #122 on: January 28, 2014, 11:33:42 AM »

Glad you figured out the rotation thing!

How are you handling the portals rendering? Render textures I'd guess, but specifically how are you getting it to rotate so well with your view. I did a quick experiment with something similar a few months back, but never got the camera right.

As for taking items through the portals, have you tried saving the position offset of whatever you're holding and then adding that offset when your position changes?

I actually ended up just getting the 'Portalizer' package from the Unity Asset Store. I was having a lot of trouble with getting the perspective matrices working, and decided in the end time would be better spent on other parts of the game.

Unfortunately, the package only includes the visual side of Portals, and doesn't let the player actually teleport.

Regarding the rendering, from what I can tell, it is render textures. It's actually just the Unity Pro water shader with all the refraction stuff removed. It then uses the code here to modify the projection: http://aras-p.info/texts/obliqueortho.html

I have to be honest, I don't really know what's going on. I just trimmed down the package to contain only the part I need, and then moved on. I will likely return to the code to study it more in depth once I'm on the optimization phase.  Wink

With getting objects through portals, I haven't tried your method yet, but will give it go. However, keeping the position that's the problem. There's also the issue of keeping track of objects across scenes as you carry them through portals. For example, if you carry a box from scene 1 to scene 2, the game needs to remember that.
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #123 on: January 30, 2014, 10:58:06 PM »

DevLog Update #28 - 01/31/2014

Haven't been posting here as frequently. Mostly been dealing with lots of technical challenges - rewriting various systems I implemented months ago so as to work with the current structure of the game. For example, I had to rewrite parts of the code governing the logic of the cubes that can be interacted with, so that their positions and colors can be saved. 

I'm continuing to work on Portals. I've now added additive asynchronous scene loading as well, so that the portals can serve as transitions between levels.

Here you can see it in actions. For the sake of clarify, I've made the "load scene" trigger the blue checkered box, and the "destroy scene" trigger the red checkered sphere. When you walk in to the "load scene" trigger, it loads the other scene, and turns the portal on. When you walk into the "destroy scene" trigger, it destroys the other scene.



Of course, in the final game, you won't be able to see the "load scene" and "destroy scene" triggers, and they'll be much bigger to anticipate player movement.
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #124 on: February 01, 2014, 03:14:06 PM »

Submitted Relativity to the Experimental Gameplay Workshop at GDC! Keepinger my fingers crossed.
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #125 on: February 05, 2014, 12:21:33 PM »

DevLog Update #29 - 02/05/2014

Portals are about 75% finished. Most of the basic functions are now in place. I figured out how to use asynchronous additive level loading with portals, so you can now travel between scenes using Portals. To help with organization of assets, I call portals that work within a scene "IntraPortals" and portals that work between scenes "InterPortals". The code is slightly different between the two as the InterPortals need to load and destroy scenes and check if the other scene is there already before setting up the connection.



Correct Way to Destroy

On the topic of destroying scenes, I finally learned the 'proper' way to destroy gameobjects. Originally, I would just call the Destroy(gameObject) function straight in Update(). This would give me an error problem that I usually just ignored. However, Unity would start to crash when I did this. It was really frustrating, because I would lose everything I didn't save, and it was a real pain to have to start up Unity again. I decided it would be time to learn the right way.

At first I thought setting objects inactive would solve the problem, but it actually resulted in the same error message. As it turns out, what you need to do is put the destroy function inside a coroutine, and use this line of code:

yield return new WaitForEndOfFrame();

Basically, you want to wait until the end of frame before you destroy any objects in Unity.

What's Next

Today I'm going to start porting the key signal system from the teleportation doorways over to the portals. I still need to test how the additive asynchronous level loading works within a build of the game. There's a bit of a hiccup when the level is loading when I test it out in the Unity editor. However, the docs say that this is normal, and the editor generally takes longer to load levels than the player.

There's still several aspects of the Portals that need to be polished, such as when the doors can close and open. There are a few spots where the player can miss the triggers. I also need to figure out a way to teleport objects while players are carrying them.


Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #126 on: February 06, 2014, 10:08:37 AM »

DevLog Update #30 - 02/06/2014

I started working on how to teleport objects across while the player is carrying them. It turned out to be not as difficult as I had imagine. I was, however, getting this particular problem:



As you can see, the cube that the player is carrying would disappear for a second while going through the portal. The reason why this was happening was because at that moment, the cube hasn't been teleported yet, and is behind the render texture. Teleportation doesn't occur until the player hits the render texture.

I tried a bunch of different techniques to fix the problem, such as teleporting the cube first, but all without much success. Eventually though, I remember reading somewhere that to get the physics of objects going through portals right in Portal, Valve would actually duplicate an object on the other side of the portal.

This gave me an idea.

I duplicated the player game object, removed all the controller scripts, camera, and colliders, and attached a cube object to the player, also with the collider and other scripts removed (so that only the renderer remained). Let's call this the "Mirror Image". Then, whenever the player was within the zone in one portal, I would activate the mirror image in the other portal, with the same local position and rotation as the player. And so, in the second where the actual cube disappears behind the render texture, the mirror image cube fills in the gap.

Here's what it looks like:


Logged

Connor
Level 8
***


Smooth talker, musician. Loves all things 70s.


View Profile WWW
« Reply #127 on: February 06, 2014, 05:49:38 PM »

genius!
Logged

Firearrow games
www.firearrowgames.net

blitzkampfer:
https://forums.tigsource.com/index.php?topic=52009.msg1280646#msg1280646

too bad eggybooms ents are actually men in paper mache suits and they NEED to be agile
Regulus
Level 0
*


View Profile
« Reply #128 on: February 06, 2014, 06:06:29 PM »

This looks very interesting.

Definitely keeping an eye on this.
Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #129 on: February 06, 2014, 06:26:18 PM »

I'm loving the big rectangular portals, and the transition looks super smooth. Smiley
Logged

OniWorld
Level 2
**



View Profile WWW
« Reply #130 on: February 07, 2014, 09:46:33 AM »

i'm loving those portals, i think you've nailed them! Coffee
Logged

Code_Assassin
Level 5
*****


freedom


View Profile
« Reply #131 on: February 07, 2014, 10:07:01 AM »

Clever name, and nice mechanics. Following this one!
Logged
William Chyr
Level 8
***



View Profile WWW
« Reply #132 on: February 07, 2014, 11:47:28 AM »

Thanks so much for the feedback, everyone! Really appreciate it. Coffee

The last few days working on the portals have been a real pain, so it's great to be able to share the progress and hear from you all.

The portals will still need plenty of polish, but at least now I've got their basic functions down, at least within the context of gameplay. There are still several bugs, especially if you try to break them, like running back and forth between portals rapidly, or trying to approach it from a weird angle while an object is falling through, etc. For the most part though, the features are there, and it's time to move on to other stuff.

I'm going to start integrating portals into the main game and see how it goes. The effect is looking pretty sweet so far, so I think it will make a really big difference, especially in creating the feeling of a continuous open world.

Also, got some exciting news in the works. Will post it here in a few days!!
Logged

Eric Winebrenner
Level 0
***



View Profile WWW
« Reply #133 on: February 08, 2014, 03:49:02 PM »

Really loving the core mechanic! I'm impressed
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #134 on: February 09, 2014, 01:03:18 PM »

Really loving the core mechanic! I'm impressed

Thanks SodayBoy! Glad to hear that.
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #135 on: February 10, 2014, 03:40:51 AM »

DevLog Update #31 - 02/10/2014

IndieCade East
So, I have some pretty exciting news. I learned a few days ago that I'll be demoing Relativity at one of the Show & Tell sessions at IndieCade East next week. The session I'm scheduled for is Sunday, February 16th 1:30 PM - 3:30 PM. I'll have a playable version for people try out. So if any of you will be in NYC for IndieCade East, come say hi! (Itay Keren's Mushroom 11 will also be at the same timespot, so be sure to check out that game as well. It looks super sweet) It'll be the first time I'm having the game playtested publicly in over 3 months, so I'm really looking forward to getting some feedback.

Also, if you stop by, you'll get one of these sweet business cards, which I just got in the mail:



Integrating Portals

I've placed myself in a self-imposed crunch to try to get a mac build ready these few days before heading off to New York. My goal is to integrate portals into the main gameplay, and have the first several levels be able to smoothly transition between one another. This is probably the biggest change to the game since the last stable build, and I'd really like to see if it works well.

Here's a shot of a portal integrated into the actual game:



You can see that the lighting between the two scenes is not consistent - there are no shadows in the scene inside the portal. However, this is something that's going to have to wait for now. More important problems to tackle at the moment.

Mesh Collider vs Primitive Collider

Everything in Relativity is constructed out of boxes. This is mainly so that you any surface would fall explicity under one of six gravitational fields (if I had a slope at 45 degrees, it would have to be in 2 gravitational fields), and also because I have limited resources, it's a minimalist style that I can do well. To try to optimize my scenes, I started to merge all the primitives into meshes, in order to reduce draw calls.

However, I soon started to have all these weird problems with collision. It turns out, while having a single mesh over many primitives may be preferable for rendering, it is not for so for collision. Thanksfully, I still had my original primitives saved. The current set up is I created a giant mesh with the primitives, but the mesh only has a renderer and no collider. I keep all the primitives, but turn off their renderers, so that only colliders remain.

It took a while to figure this out, but I'm glad things are working now.
Logged

bsp
Level 1
*



View Profile
« Reply #136 on: February 10, 2014, 09:42:13 AM »

Woah! Nice job landing that IndieCade slot. Unfortunately I won't be at East so I hope you make it to IndieCade LA as well. Can't wait to try it.
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #137 on: February 10, 2014, 02:18:35 PM »

Woah! Nice job landing that IndieCade slot. Unfortunately I won't be at East so I hope you make it to IndieCade LA as well. Can't wait to try it.

Thanks CordellC! And yes, I'm definitely planning on submitting Relativity to IndieCade LA. It's one of the main festivals I'm aiming for. The game will certainly be much more polished by then.
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #138 on: February 12, 2014, 10:33:02 PM »

DevLog Update #32 - 02/13/2014

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!











Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #139 on: February 15, 2014, 03:56:28 AM »

DevLog Update #33 - 02/15/2014

I want to share some super exciting news. As mentioned in my last update, I'm currently in NYC at the moment for IndieCade East. Yesterday was the first day of the conference. I didn't get to attend too many of the talks, as I had a lot of fun just meeting other developers in person and talking to them about my game and what they were working on.

The best part was I got to meet Alexander Bruce, who created Antichamber! Any of you who've been following this devlog will know that that game is a huge influence on Relativity, and is one of the games I've studied very closely this past year in making mine. The influence is probably quite evident in the aesthetic choices I've made, but also in the design of the overall structure and the progressions system of the game.

Anyway, it was super awesome to finally meet Bruce in person. He playtested the game and gave me some really good and invaluable feedback. We ended up talking for an hour or so, and it was an incredible experience for me to be a able to pick his brain on different design challenges I had been struggling with, and to get insight into how he approached the same kinds of problems for Antichamber. We even discussed the logistics for some of the new mechanics I'm thinking of introducing later in the game.

Talking to Bruce, I realized there were a lot of issues with the first stage of the game, with some of the mechanics for keeping track of progression, and some of the backtracking that the player had to do. Bruce gave me a lot of good suggestions on how I can approach these problems and possible solutions to implement.

Most importantly for me, he believed that my game was interesting and had potential. Of course, there's still a ton of work that needs to be done, and a lot of problems to be addressed, but it was really great to hear that from him. He's really direct and honest in his feedback too, so I can definitely take take his word at face value.

For me, as someone making a game for the first time, and also doing it completely on my own, it was very reaffirming to get positive feedback from someone whose work I hold in high regard. It took some weight of my shoulder, just knowing that I'm not deluding myself on the quality of my work.
Logged

Pages: 1 ... 5 6 [7] 8 9 ... 63
Print
Jump to:  

Theme orange-lt created by panic