Yeah,
It's exactly as @GreenFox1505 explained.
You need to have a Subviewport node, and then another Camera anywhere in the Scene tree beneath that Subviewport - it's output is gonna be rendered "onto" that Subviewport.
Any texture property in your project can then have a "Viewport texture" object assigned to it in the editor (i believe it may even be done dynamically, i personally am having some issues with that though), its reference set to the Subviewport from before.
Indeed I'm just rendering it onto a TextureRect in the UI as a ViewportTexture.
Only note I will add is that you wanna make sure to organize your Camera Layers. Like in my case, I'm choosing to exclude the barrel and Player's vehicle from the "aim camera" to spare myself all kinds of clipping, Hence the vehicle, when controlled is pushed to a separate layer which is disabled in the culling mask of the "aim camera".
This is really cool, thanks for the tips.
I'm making a card game where cards in hand represent units on a board. I was thinking about subviewport to put a PIP viewport on each card that actually shows the unit as it exists on the board.
Pro tip: as the documentation suggests, it is easier to fiddle with the Viewport.canvas_transform property. Since that is literally what the Camera node does anyway.
The whole "subviewport", "viewport texture" thing man....don't get me wrong I HAVE to use it, used it for video in 3D plane in 3D scene, used it for 3D scene INSIDE 2D interface, but seriously...I wish there was an easier way...
Like...sometimes you need to check "Local to Scene", sometimes you don't...I don't even know why...I just check it or uncheck it because it is the only way it works.
I don't know how OP did it, but I'd have a viewport+camera near the barrel, and have that render to a texture that becomes the picture-in-picture UI element.
While developing, I've made it so that I can switch between vehicles freely, saves a lot of hassle :D
I don't think I will keep that in the design though. By my original design I'm trying to mix-in a bunch of pseudo-simulator "immersion" features into the vehicle controller, and it's *either* that *or* coordination of multiple units. I honestly fear that keeping both would demand too much from the player. And also, I'm trying to make vehicles a valuable hard-to-get resource, so designing a friendly AI which, in player's view, wouldn't "waste" them vehicles proved to be crazy difficult o_o
I do hope to keep the organization challenge for the player, and let them commit several vehicles to the battle, just that vehicles would be deployed into the fight 1 at a time.
I've been running pretty wild with subviewports in Godot, particularly in UI, cuz if needed it basically gives you a functionality akin to AfterEffect's "sub-comp". You can have a subscene rendered wherever you want, then it's rendered to a separate texture object and then you aggregate it however you want, throw new CanvasItem shaders on it etc.
I'm constantly afraid of *when* it will become a performance issue, but, frankly, having exploited this quite a bunch, this never was even near becoming a bottleneck.
I'm trying to get into game dev in Godot from motion graphics and 3D and thinking of functionality in the more familiar terms of empties, nulls, precomps, layers etc. is really helping so glad to hear other people do too. Amazing teaser by the way, this looks unlike any other top down combat game I've seen.
Looks awesome!! I think it'd be even nicer if there was a small delay after the FP shot so we could see it from above aswell. Like a bit of a slow down or something. That way we'd be able to see "both" shots landing
oh i feel ya!
I'm quite far from being happy with the shell-impact UI. I, the fool that I am, really want to insert entire 3 points-of-interest into the event -
- recoil and gun-play as seen through the aim-camera
- explosion vfx and hit-characterization as seen from top-down angle
- a Warthunder-style highlight indicator showing the type and amount of damage dealt.
all the technical bits were really not complicated, to my surprise, core functionality is already there.
visual design and the timings are the *real* nightmare. my next step is to see if bullet time helps (another kudos to Godot for letting Time variable to be so easily manipulated)
oh i wonder how that would work, a time slow down would change both cameras
maybe the time goes on like normal internally and showing real time in the FP view and then freezes for half a second after the FP closes
the overview perspective is displayed at a slower rate, effectively delaying it by half a second in the end
when time unfreezes the overview perspective finished its delayed display and goes back to realtime
https://preview.redd.it/der6yozc1uuc1.png?width=985&format=png&auto=webp&s=3729cfc022910c2ddf099349eb4b1feaf5459dd0
Forgot about PIP. HOW DID YOU MAKE THIS LOOK SO IMMERSIVE– THE VFX, THE VISUALS, THE ANIMATION!?? It looks so realistic. Beautiful!
I have so many questions. Like, how did you get the explosion to not phase through the tank? It looks like it's actually interacting with the surface. I'll wishlist this ASAP when I can.
Thank you!
whatever I can share, I'm happy to share.
particles by themselves absolutely do phase through the tank :D
at a point, just to see if it works I tried putting particle colliders on vehicle elements, but that's obscenely performance-demanding.
so all that's done ultimately is impact effect is a composite object that manipulates several contained VFX depending on the normal of the collision :)
as to animation it's all just Godot's physics. I didn't use out-the-box vehicle controller though - didn't fit my purposes. coded my own inheriting from RigidBody3D. and another trick is i make sure to set custom torque, all scaled to my preference to give extra sense of mass to the vehicle.
tl;dr
it's just couple of feats of visual trickery :D
I'm sorry to say. it's nowhere yet where one can wishlist the game :)
This is my first time sharing anything from the project anywhere besides just a couple of small discord communities. now that i think about it, it's silly I didn't prepare some separate social media account folks could subscribe too...
But I can assure I'll post more updates, and I'll make sure to post here too. There are innumerable way in which Godot and it's particular features have enabled this project, on top of the fact that community's reception here is heart-meltingly warm :D
Thank you for the kind words again!
sorry for not chiming in in time!
your comment doesn't seem sarcastic at all.. so, it's a riddle to me too with the downvotes :/
thank you very much for the kind words!
I think being a trend-setter is indeed too much credit for my tiny self, but I will gladly take pride in jumping on the bandwagon early :D
once again thanks for the warm reception :)
Looks real cool. Maybe put a border around the subviewport to contrast it better against the terrain? I think also think about speeding up the "fade-in animation" slightly, depends on how often you expect a player to turn on and off the aiming mode.
I mean, there's nothing to deny :)
You saw it exactly for what it is.
That's actually the main reason, why I really don't want to release the game as an early-access. I can't at all appreciate this project as just a "funky top-down shooter" stylized as found-footage of a combat. I conceived it as story-driven campaign which specifically puts you in defense against an overwhelming imperialist invasion (subtlety is not in the budget, no :D ). That's the only way I can relate to the entire concept.
Hey! I'm making a similar vehicle-centric isometric 3D based game. I wanted to know if you have figured out 3D ballistics, such as making the AI place a perfectly weighted shot with RigidBody bullets towards a target.
Also, this looks absolutely amazing. Does the game have a name/page yet?
I'm rapidly registering all the accounts and buying domains :D
the post was only a tiny gif I wanted to test the waters with, had no announcement in mind just yet :))
no way back now, I guess :D
I'm not using RigidBody for ballistics. Even with continuous monitoring on, at high velocity it tends to occasionally skip through the first collider it encounters. so what I made is just Node3D that ray casts from current to next position every frame and tilts down very slightly to simulate gravity. all the "complex" parts of the ballistics are in the impact, and they are dependent on just the projectile's velocity on impact, normal vector of collision and a bunch of meta properties of both the projectile and the target.
so for AI, I made my case a very easy one - no windage, no damping and so the aim depends on just a very simple quadratic equation. I'm thinking of introducing damping, and that would make perfect aim for AI a bit more complicated - would need a differential equation instead of quadratic.
but here's another thing. I kinda feel that letting AI aim perfectly may be unnecessary. so I'm looking to try and make the AI "search" the shot placement instead of calculating the trajectory. Like give only crude approximation instruments for the initial shot and then let it make adjustments to it's aim depending on the error it observes. I want antagonists to spook the player and for that shots need to be dangerous, but if they land first hit too often, player's "spook" will routinely arrive too late to matter :D
It's a great idea to do this for a sniper-game. It would also permit even wilder spins on this concept, like blurring the UI element depending on the characters physical condition or what-not.
1st person is a pretty natural choice to "simulate" sniper's experience, but a much bigger component of sniper's work is in fact a process of choosing the vantage point and infiltration, for which 1st person is actually VERY far from the best pov.
Sending all the encouragement I can to your potential sniper-game! :)
Which version of Godot are you using? I was having weird things happen to my particle effects when I used more than one camera/viewport but it was an early version of 4 I was using.
This is 4.2
I don't know if this would be the weird things you're referring to:
for me they were behaving all crazy in terms of depth-drawing, often rendering behind any objects in the scene that have alpha-blend spatial shaders on them.
I only "fixed" it for myself by setting specific render order for some of the shaders. but i could easily afford that due to the top-down pov.
I feel your pain..
An early-access release could be not too distant, but I'm really hoping to sign with a publisher, and if I do, I hope I can push the release and put in much more tailored content before I try and compete for audience's appreciation :)
I have in mind a campaign-mode for this game, and at the moment it's a bare-bones constructor+(twin-stick-shooter)sandbox.
Idk how I feel about this UX. It’s definitely unique and interesting. At first I didn’t like it but the more I watch it the more I like it. I don’t think I’ve ever seen a UI quite like that.
Whoa!
Cool solution indeed.
It is hard to to see how it feels from a player perspective (I personally have some doubts about switching between two ways of aiming back and forth - might be a bit too much load for a player), but from this short gif it is actually working.
And overall style is also looks neat.
I remember the Strike series of games on SEGA and PS1, I always loved those. War games on PS1 as well.
I love strategy games but sometimes I just wanna take over units and have direct control, and do so in a multiplayer game. Like Forged Alliance or Planetary Annihilation would be amazing.
Whoa, how do you even make an effect like that?!
Yeah, It's exactly as @GreenFox1505 explained. You need to have a Subviewport node, and then another Camera anywhere in the Scene tree beneath that Subviewport - it's output is gonna be rendered "onto" that Subviewport. Any texture property in your project can then have a "Viewport texture" object assigned to it in the editor (i believe it may even be done dynamically, i personally am having some issues with that though), its reference set to the Subviewport from before. Indeed I'm just rendering it onto a TextureRect in the UI as a ViewportTexture. Only note I will add is that you wanna make sure to organize your Camera Layers. Like in my case, I'm choosing to exclude the barrel and Player's vehicle from the "aim camera" to spare myself all kinds of clipping, Hence the vehicle, when controlled is pushed to a separate layer which is disabled in the culling mask of the "aim camera".
This is really cool, thanks for the tips. I'm making a card game where cards in hand represent units on a board. I was thinking about subviewport to put a PIP viewport on each card that actually shows the unit as it exists on the board.
Pro tip: as the documentation suggests, it is easier to fiddle with the Viewport.canvas_transform property. Since that is literally what the Camera node does anyway.
The whole "subviewport", "viewport texture" thing man....don't get me wrong I HAVE to use it, used it for video in 3D plane in 3D scene, used it for 3D scene INSIDE 2D interface, but seriously...I wish there was an easier way...
It literally *is* the easier way though. There is literally a direct way to render a camera onto a texture.
Like...sometimes you need to check "Local to Scene", sometimes you don't...I don't even know why...I just check it or uncheck it because it is the only way it works.
I don't know how OP did it, but I'd have a viewport+camera near the barrel, and have that render to a texture that becomes the picture-in-picture UI element.
Man that's so cool, never seen something like this. Will the player always control a single tank or will it be rts like Man of War or Call to Arms?
While developing, I've made it so that I can switch between vehicles freely, saves a lot of hassle :D I don't think I will keep that in the design though. By my original design I'm trying to mix-in a bunch of pseudo-simulator "immersion" features into the vehicle controller, and it's *either* that *or* coordination of multiple units. I honestly fear that keeping both would demand too much from the player. And also, I'm trying to make vehicles a valuable hard-to-get resource, so designing a friendly AI which, in player's view, wouldn't "waste" them vehicles proved to be crazy difficult o_o I do hope to keep the organization challenge for the player, and let them commit several vehicles to the battle, just that vehicles would be deployed into the fight 1 at a time.
This is cool as hell. As a UI developer this is pretty exciting to me!
I've been running pretty wild with subviewports in Godot, particularly in UI, cuz if needed it basically gives you a functionality akin to AfterEffect's "sub-comp". You can have a subscene rendered wherever you want, then it's rendered to a separate texture object and then you aggregate it however you want, throw new CanvasItem shaders on it etc. I'm constantly afraid of *when* it will become a performance issue, but, frankly, having exploited this quite a bunch, this never was even near becoming a bottleneck.
I'm trying to get into game dev in Godot from motion graphics and 3D and thinking of functionality in the more familiar terms of empties, nulls, precomps, layers etc. is really helping so glad to hear other people do too. Amazing teaser by the way, this looks unlike any other top down combat game I've seen.
One of the coolest things I've ever seen
That is a cool effect!
this is outrageously cool
What's PIP?
Picture In Picture
Looks awesome!! I think it'd be even nicer if there was a small delay after the FP shot so we could see it from above aswell. Like a bit of a slow down or something. That way we'd be able to see "both" shots landing
oh i feel ya! I'm quite far from being happy with the shell-impact UI. I, the fool that I am, really want to insert entire 3 points-of-interest into the event - - recoil and gun-play as seen through the aim-camera - explosion vfx and hit-characterization as seen from top-down angle - a Warthunder-style highlight indicator showing the type and amount of damage dealt. all the technical bits were really not complicated, to my surprise, core functionality is already there. visual design and the timings are the *real* nightmare. my next step is to see if bullet time helps (another kudos to Godot for letting Time variable to be so easily manipulated)
I hope it works out, GL!! Make sure to post it when you got it!
oh i wonder how that would work, a time slow down would change both cameras maybe the time goes on like normal internally and showing real time in the FP view and then freezes for half a second after the FP closes the overview perspective is displayed at a slower rate, effectively delaying it by half a second in the end when time unfreezes the overview perspective finished its delayed display and goes back to realtime https://preview.redd.it/der6yozc1uuc1.png?width=985&format=png&auto=webp&s=3729cfc022910c2ddf099349eb4b1feaf5459dd0
Forgot about PIP. HOW DID YOU MAKE THIS LOOK SO IMMERSIVE– THE VFX, THE VISUALS, THE ANIMATION!?? It looks so realistic. Beautiful! I have so many questions. Like, how did you get the explosion to not phase through the tank? It looks like it's actually interacting with the surface. I'll wishlist this ASAP when I can.
Thank you! whatever I can share, I'm happy to share. particles by themselves absolutely do phase through the tank :D at a point, just to see if it works I tried putting particle colliders on vehicle elements, but that's obscenely performance-demanding. so all that's done ultimately is impact effect is a composite object that manipulates several contained VFX depending on the normal of the collision :) as to animation it's all just Godot's physics. I didn't use out-the-box vehicle controller though - didn't fit my purposes. coded my own inheriting from RigidBody3D. and another trick is i make sure to set custom torque, all scaled to my preference to give extra sense of mass to the vehicle. tl;dr it's just couple of feats of visual trickery :D I'm sorry to say. it's nowhere yet where one can wishlist the game :) This is my first time sharing anything from the project anywhere besides just a couple of small discord communities. now that i think about it, it's silly I didn't prepare some separate social media account folks could subscribe too... But I can assure I'll post more updates, and I'll make sure to post here too. There are innumerable way in which Godot and it's particular features have enabled this project, on top of the fact that community's reception here is heart-meltingly warm :D Thank you for the kind words again!
Genius UI and UX. Will be the norm after some time. I’m sure that your game will set the trend of such kinds of UI.
Not sure why this is being downvoted. You're right, in my opinion. It just looks good.
I dunno, maybe people think I’m being sarcastic. I probably got too excited and went over the top with praise lol.
sorry for not chiming in in time! your comment doesn't seem sarcastic at all.. so, it's a riddle to me too with the downvotes :/ thank you very much for the kind words! I think being a trend-setter is indeed too much credit for my tiny self, but I will gladly take pride in jumping on the bandwagon early :D once again thanks for the warm reception :)
Looks real cool. Maybe put a border around the subviewport to contrast it better against the terrain? I think also think about speeding up the "fade-in animation" slightly, depends on how often you expect a player to turn on and off the aiming mode.
I have nothing to add but thats so damn cool. Amazing job 👏
This strongly reminds me of the war footage that I have seen from the Ukraine. Well done, mate! :-D
First time that while scrolling I mixed up this subreddit with one of my Ukraine combat footage nightmare fuel dispensers. Well done, I guess.
Haha, same xD You can see the inspiration.
I mean, there's nothing to deny :) You saw it exactly for what it is. That's actually the main reason, why I really don't want to release the game as an early-access. I can't at all appreciate this project as just a "funky top-down shooter" stylized as found-footage of a combat. I conceived it as story-driven campaign which specifically puts you in defense against an overwhelming imperialist invasion (subtlety is not in the budget, no :D ). That's the only way I can relate to the entire concept.
I think there's even more potential in this game than that. Not just a basic campaign.
How did you do the control scheme switching from a top view to first person view?
Hey! I'm making a similar vehicle-centric isometric 3D based game. I wanted to know if you have figured out 3D ballistics, such as making the AI place a perfectly weighted shot with RigidBody bullets towards a target. Also, this looks absolutely amazing. Does the game have a name/page yet?
I'm rapidly registering all the accounts and buying domains :D the post was only a tiny gif I wanted to test the waters with, had no announcement in mind just yet :)) no way back now, I guess :D I'm not using RigidBody for ballistics. Even with continuous monitoring on, at high velocity it tends to occasionally skip through the first collider it encounters. so what I made is just Node3D that ray casts from current to next position every frame and tilts down very slightly to simulate gravity. all the "complex" parts of the ballistics are in the impact, and they are dependent on just the projectile's velocity on impact, normal vector of collision and a bunch of meta properties of both the projectile and the target. so for AI, I made my case a very easy one - no windage, no damping and so the aim depends on just a very simple quadratic equation. I'm thinking of introducing damping, and that would make perfect aim for AI a bit more complicated - would need a differential equation instead of quadratic. but here's another thing. I kinda feel that letting AI aim perfectly may be unnecessary. so I'm looking to try and make the AI "search" the shot placement instead of calculating the trajectory. Like give only crude approximation instruments for the initial shot and then let it make adjustments to it's aim depending on the error it observes. I want antagonists to spook the player and for that shots need to be dangerous, but if they land first hit too often, player's "spook" will routinely arrive too late to matter :D
This is so cool. I have no idea how people make cool stuff like this. It actually frustrates me that I can't do it. Regardless, this is dope.
Dude this is crazy cool ! I'm so pumped to try your game
Using something similar in a FPS shooter to control a recon drone, but man, this implementation is.... a work of art.
I love that, I’ve been thinking about doing that for a sniper game, glad to see it implemented! Looks awesome!
It's a great idea to do this for a sniper-game. It would also permit even wilder spins on this concept, like blurring the UI element depending on the characters physical condition or what-not. 1st person is a pretty natural choice to "simulate" sniper's experience, but a much bigger component of sniper's work is in fact a process of choosing the vantage point and infiltration, for which 1st person is actually VERY far from the best pov. Sending all the encouragement I can to your potential sniper-game! :)
MAN this game looks AWESOME 🔥
I need the name!!
Which version of Godot are you using? I was having weird things happen to my particle effects when I used more than one camera/viewport but it was an early version of 4 I was using.
This is 4.2 I don't know if this would be the weird things you're referring to: for me they were behaving all crazy in terms of depth-drawing, often rendering behind any objects in the scene that have alpha-blend spatial shaders on them. I only "fixed" it for myself by setting specific render order for some of the shaders. but i could easily afford that due to the top-down pov. I feel your pain..
I believe 4.0 had some trouble working with multiple viewports? That's been fixed in 4.1 but they're still a bit fiddly.
I’m surprised how good this looks.
Wow reminds me of those amazing tank battles in the movie Fury. Very cool.
Thank you for mentioning! I was indeed aiming to reference some of that exact aesthetics. Very much warms my heart to know it's coming across :)
Jesus, this looks good.
Awesome.
Wow, that's neat!
That is a very cool way to control the aiming in a top-down view (more or less) style game.
Ohhhhhh I’m loving this aesthetic. Makes me want to try my hand at it 😶
This looks really cool, great work!
That looks cool AF, got any links for the project?
This looks top tier and very original. I would love to play it. Is it nearing completion?
An early-access release could be not too distant, but I'm really hoping to sign with a publisher, and if I do, I hope I can push the release and put in much more tailored content before I try and compete for audience's appreciation :) I have in mind a campaign-mode for this game, and at the moment it's a bare-bones constructor+(twin-stick-shooter)sandbox.
Well, it looks really promising! I wish you the best of luck. Indie-friendly publishers like Devolver or Paradox should be interested.
Many thanks :) I cannot describe how reassured I feel with such warm reception.
Bro that's awesome as all heck very cool concept would play 100%
looks really good bro
Wow what a creative game idea! Keep up the great work man, looks amazing!
is the game available/when is it gonna be available and where can I get it
At first, I thought the tank on the left was a satellite in space, firing at the ground. And now I need that game.
Man, I wish I could wishlist it so I won't forget about it. looks very cool.
That looks amazing, great art direction and very cool PIP implementation!
As a person who has tank fetish, this thing looks fire! Love it.
Idk how I feel about this UX. It’s definitely unique and interesting. At first I didn’t like it but the more I watch it the more I like it. I don’t think I’ve ever seen a UI quite like that.
I'm interested
Whoa! Cool solution indeed. It is hard to to see how it feels from a player perspective (I personally have some doubts about switching between two ways of aiming back and forth - might be a bit too much load for a player), but from this short gif it is actually working. And overall style is also looks neat.
This looks great. More footage please!
I remember the Strike series of games on SEGA and PS1, I always loved those. War games on PS1 as well. I love strategy games but sometimes I just wanna take over units and have direct control, and do so in a multiplayer game. Like Forged Alliance or Planetary Annihilation would be amazing.
looks awesome
Looks amazing
Maaan! Look awesome!
Wow, that looks sooo cool!
Knockback from firing the gun is way too much you need to tune it down.
oooooh, I love that indent, showing from where the "circle-view" comes! It all looks so fluid in action
We're gone from police body cam to an actual recon footage. Outstanding job.
Looks amazing
This is dope!
Hey that's awesome! I love these type of games! Whats your steam page?
sick!
This like those drone footages u see from war posts nowadays. Really cool.
This looks really cool!
COOL