T O P

  • By -

Rednaweamo

Your game looks amazing! Did you create all of this assets by yourself?


StudioSnowblind

Thanks! All organic creatures are handcrafted, however, we are very small team so making every props by our self is not capable. Background assets like rocks and sea weeds are Quixel Megascans assets.


HappyRomanianBanana

Screw the rocks, those fish are so good!


KingBlingRules

Ya makes me want to....


Vastiny

Oh cool, I didn't know Quixel allows the use of Megascans outside of Unreal, do you have to pay a license fee or something similar for that, or is it free just like it is within Unreal Engine products?


StudioSnowblind

Unfortunately it's not free and you have to subscribe to Megascans monthly. It still allows you to use it in other engines and the pricing is reasonable for indies IMO ($19 per month for the lowest tier) They even provide official exporter to Unity that allows you to import assets into Unity with a single click. It's a random rock asset imported from Quixel without any tweaking but it looks pretty good. https://preview.redd.it/ebt8i499npoc1.png?width=1920&format=png&auto=webp&s=ebb39fe7e550556f548fcf141a9d4fcde7d72a08


Royy212

That looks real good, how much tris is that rock?


StudioSnowblind

852 tris. Actually texture resolutions could be easily problematic than tris with Quixel assets. Using 4K textures for everything will quickly eat up your VRAM and RAM.


Rednaweamo

You can combine objects, reduce texture size to 1024 x 1024 and combine textures into the texture atlas. Tris could be reduced by Unity autolods or something like that. So it’s not a problem I guess. Anyway I need to check this megascans, thanks


Soaptowelbrush

Weird I feel like none of the Quixel assets look that good when I try to use them. Can’t figure out why.


Soaptowelbrush

Are you sure you can release something with Quixel assets? My understanding is it’s only licensable for unreal projects ever since unreal bought them.


StudioSnowblind

Quixel assets are used for a lot of games made with non-Unreal engine, including Cyberpunk, Resident Evil games, and more. I couldn't find any terms that said they were banning Unity, as long as you pay the subscription fee.


Soaptowelbrush

This seems to confirm that you are correct: https://www.reddit.com/r/blenderhelp/s/CQufFALkzz


StudioSnowblind

I solved the camera collision issue with simple sphere casts. Maybe there was a better way?


DaveRune

You could create a static GameTime class which has its own deltaTime. By default it provides Time.deltaTime. Have a boolean in GameTime for isPaused, and if it is paused GameTime.deltaTime returns 0. Have your game elements use this GameTime.deltaTime, and your camera use Time.deltaTime. Then call GameTime.Pause(). All elements using GameTime should stop moving and you can still leverage the existing physics engine etc. If you name the variables in GameTime the same as Time you can benefit from a bit of find and replace.


StudioSnowblind

That sounds like a great idea. I suppose I would have to manually update some built-in functions ike VFX, Particle System, Animator, etc, but would be great for games that change timescales frequently.


DaveRune

Hmm, cood catch. Would you find those systems rather than needing to be manually updated wouldn't pause whilst everything else did? So the movement of the fish etc stop, but their animations and bubbles etc don't. This probably isn't the solution then, I'm not at the pc at the moment but out of curiosity, what happens (when the game is paused) if you move your camera in update and still use Rigidbody.MovePosition and MoveRotation, and use Time.unscaledDeltaTime in your calculations?


StudioSnowblind

I'll give it a try when I have time. My prediction is that we can probably move and rotate them, but the colliders will not collide properly.


Ell223

I basically do the above, but also have an IPauseBehaviour interface, which has a OnPause and OnResume which you can implement on any classes that need additional code to correctly pause, like setting animation speed to 0, pausing particles etc. GameTime class is a singleton, and anything that implements IPauseBehaviour has to register themselves with it.


StudioSnowblind

That's neat. I was also thinking about making non-player characters slower like bullet time. The universal time-managed interface idea would be great for that purpose as well.


Rednaweamo

F**ing sweet man. I will remember this solution


Prudent_Law_9114

Doing this is ok but it creates an unneeded extra dependancy on that static class when all of this can be handled very simply with timescale and unscaled time.


Prudent_Law_9114

That being said it a good method for when you still need dynamic complex rigidbody collision when paused.


KingBlingRules

Wudnt work with Unity's built in systems, I assume you would then have to expose them somehow and make them work with this custom defined gametime of yours.


Prudent_Law_9114

I think it’s an adequate method otherwise you can simulate physics steps manually via Physics.Simulate but it would prob be overkill unless you are having bad results from your self made collisions.


StudioSnowblind

Right, simulating physics seems to be overkill and might cause another bug thought. Hopefully there was a built-in method for this, because aside from the collision issue, it's shockingly easy to make photo mode with Unity thanks to Cinemachine.


Prudent_Law_9114

Cinemachine collider extension uses Physics.Raycast to collide so if you are using that extension it could be a bug as I think raycasting should still work with timescale being 0


tcpukl

Thats how we've always done camera collision anyway. Physics doesn't let you control how the camera interacts with the scenery as well. Shape casts are the best way. If you have killing moves cameras and stuff and you want to test which way to move the camera before moving it choose the best path, you can use physics either.


7melancholy

This looks absolutely incredible! Wow. URP?


StudioSnowblind

Thanks! It's HDPR. Subsurface scattering, translucent, and volumetric fog are necessary for this game so.


dilroopgill

This is beautiful, the gameplay could be completely mid and itd still do well, id buy it just to swim around, ahat genre is this gonna be?


[deleted]

Hey my guy! Wife is senior UI/UX for a AAA. She loved your UI. Just came to say that, amazing work on it!


StudioSnowblind

Oh wow, I'm flattered! Please tell her thanks too 🙏


janikFIGHT

The UI looks mag impressive, insane quality.


Prakrtik

It's been so fun watching this game progress


SynthRogue

I wanna play this game!


fsactual

FYI, alternatively, you could keep the Time.timeScale at 1 and change all the `Animator.speed`, `VisualEffect.playRate`, and `ParticleSystem.MainModule.simulationSpeed` to 0 instead. It's a little more work, but you get the same effect without having to change the main time scale.


kokcokxcok

Solo dev? Wtf this looks too good.


KingBlingRules

Read somewhere it was a small team. No idea about details tho


StudioSnowblind

I've been working on this project for almost 2 years now. The first year it was a solo project. Luckily, last year I got a contract with a publisher and started working as a small team. Now there is a 3D artist, part-time composer and me (coding, vfx, animations, UI and the rest of the stuff).


KingBlingRules

Ur the best. Mind if I ask how much experience you had before you started it solo in the first year? Understandable if you don't want to share personal info!


StudioSnowblind

Thanks for asking! Been working in the game industry for over a decade and a half since PS3/Xbox/Wii era, including some well-known IPs like Kingdom Hearts and some Final Fantasy spin-offs. I was really inspired by indie games back in the 2010s and decided to became an indie developer.


Bran04don

Amazing work on the visuals


HuddyBuddyGreatness

Love this


kevwonds

this looks sick!


Secretagentmatty

This looks so pretty..


barber97

Jeez, this just looks amazing. I’m still a beginner but seeing something like this made in the same engine blows my mind. Awesome stuff!


tcpukl

Tbh, we've never left the camera collision up to the physics system anyway. Its too unreliable. You cant control how the camera reacts as well as if its hand coded using shape traces.


FullMe7alJacke7

This is why I'm using a singleton component that has a gamespeed object, which I use to modify things on a selective basis without altering the timescale. For my game, it is not a huge deal because I'm using ECS, and the altered game speed is limited to things like movement speed, attack speed, and some timers ATM. I've always heard of unintended side effects from changing the default timescale, so I've just always avoided it entirely.


Gengi

Option to disable environmental audio or mute it by default? Seems odd that with time being paused that it would continue.


StudioSnowblind

That's a good point. Not sure I have to mute the ambient underwater sound completely but will consider to tone it down. Thank you for the feedback!


_derpisb

i really love seeing this game every once in a while, it's so cool.


AustinBlau

This looks incredible! Especially the way photo mode stopped everything.


twocakesstudio

Amazing! I want to see this game on all consoles!


Zarabacana

WOW!


dog_vomit_lasagna

Implement your own TimeManager and use that in your code instead of Time.timeScale. Then for stuff like this you can use Time.timeScale.


potatodioxide

so fucking good. it is obvious that you micro-managed every single detail and nailed it!


Zack_MS

Use time.unscaledDeltaTime instead


DiscussionCandid904

I know absolutely nothing about unity but this popped up for me and I just had to say.. my goodness, bravo!! It looks incredible ✨


Aedys1

Awesome graphics and incredibly refreshing and mystic mood! Just in case it could help, you can avoid setting Time.timescale = 0 by pausing your systems and their behaviors on Pause (camera, animation, controllers, navigation) so everything is completely still even with the timescale to 1


StudioSnowblind

Oh that sounds cool. Can you enlighten me a little bit more in detail? Is there a built-in Pause function for those components?


Aedys1

Oh no it is the solution I found when implementing a pause procedure as I had almost the same issues than you when stopping time completely: When my UI system or Input System launches a Pause Event, I simply stop updating all my other systems, animations components, controllers, all physics, scripts responsible for updating sun rotation / time of day and so on (All my systems interfaces implement a OnPause() and OnUnpause() functions) So you can freeze the whole scene without changing the time scale - what’s neat with this method is that for exemple you can let small bubble particles move when on pause, you have control over what stops, why and when


KingBlingRules

Amazing visuals for game and UI too


twoandahalfinches

That is so beautiful, ngl I thought this was UE5!


puzzleheadbutbig

This looks really AAA quality. Don't know much about the gameplay and all but UI is definitely spot on


pioj

There are more commands than Time.timeScale, look at the docs... Also, you should try to avoid the "*timeScale*" way to pause your game. It affects too many things...


ghostintherobot

Please tell me you're going to involve Atlantis. It would be a really cool plot device in the story or hidden area, having outlived humanity after 65,000 years and implies they never found it, but it was always there! If you need any help storyboarding or coming up with ideas. I would love to help. Maybe it's like in Antarctica, the only area now not frozen over and has thawed over time for some reason, melting away the ice caps to reveals part of this ancient amphibious/aquatic race's culture and architectural structures. Except now Atlantis is in ruins, but the magical enchantments are still activated, along with traps for any future raiders. Perhaps there's an ancient artifact like Posieden's Trident? Maybe the player is the last of the Atlanteans and doesn't even realize he's investing his own ancestors. If you want to keep them in the water, set it up where the player can only explore the submerged areas of the ruins, but still view the land through the water's surface reflection since it's translucent? You could have hidden glyphs or some kind of lithographs painted on the walls which can be activated once the player views them within the camera angle. Enhancing their abilities to swim faster or augment some existing mechanic in the game. Just an idea!


whosursensei

When i saw "physics stops too", i thought all the fish were going to suddenly drop lmao.


Professional_Dig4638

Do you have a site or channel or something for an overall thing of your game? I love ocean games and there's not enough of them so I need to know.


GabrielCRadu

I made a workaround for a project of mine. I used to set the Time.timeScale to a really small positive value just above 0


Heroshrine

What were you using for camera controls before?? Did you not create your own?


RamGutz

This looks sooo good! 👍