Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
jizzy sillage
Aug 13, 2006

Unreal can be a bit trickier than Unity for stylised/non-PBR art styles. You generally have two paths available:

a) Default engine. Your work will mostly live in the Post Process Materials. These can be in the render pipeline in a few places (before/after translucency, before tonemapper, replaces tonemapper). You're limited to access render buffers already set up by the engine, so some effects become very hacky.

b) Custom engine. You can add or remove whatever render passes and buffers you want. World is your oyster but you need a strong understanding of rendering to go this route.

But there's also:

c) Secret third option. There's actually way to do custom rendering stuff that inserts into the render pipeline, the magic words here are SceneViewExtension.

If you're at a company working on a large project, it's strongly recommended you use a custom engine build anyway, so you may be comfortable with either B or C, especially if you have a tech art background and can write C++ and HLSL.

Guilty Gear Strive did some really slick cel shading in Unreal without needing any custom render passes as far as I know - you can just plug any material into the emissive output and it'll ignore lighting information, so all lighting can then be faked by you.

Adbot
ADBOT LOVES YOU

Brownie
Jul 21, 2007
The Croatian Sensation

jizzy sillage posted:

Unreal can be a bit trickier than Unity for stylised/non-PBR art styles. You generally have two paths available:

a) Default engine. Your work will mostly live in the Post Process Materials. These can be in the render pipeline in a few places (before/after translucency, before tonemapper, replaces tonemapper). You're limited to access render buffers already set up by the engine, so some effects become very hacky.

b) Custom engine. You can add or remove whatever render passes and buffers you want. World is your oyster but you need a strong understanding of rendering to go this route.

But there's also:

c) Secret third option. There's actually way to do custom rendering stuff that inserts into the render pipeline, the magic words here are SceneViewExtension.

If you're at a company working on a large project, it's strongly recommended you use a custom engine build anyway, so you may be comfortable with either B or C, especially if you have a tech art background and can write C++ and HLSL.

Guilty Gear Strive did some really slick cel shading in Unreal without needing any custom render passes as far as I know - you can just plug any material into the emissive output and it'll ignore lighting information, so all lighting can then be faked by you.

Yeah the major caveat is that you won’t have any lighting information available to you inside the shader graph (except the directional light direction, I think) so if you still want to be using point and spot lights you’ll have to either build you own SceneViewExtension that replaces their lighting pass or just overhaul the renderer completely. Either way I believe you’ll need source modifications?

jizzy sillage
Aug 13, 2006

Yep, that's exactly why you need the custom render pass (through either custom engine or SceneViewExtension). By default you have the vector of the main (brightest?) directional light plus maybe a few other bits and pieces, but no point/spot light information. There are ways to get that information into the material, somewhere around here in this video is a short demo of getting extra lighting information into a toon shader that normally only has the main directional light.

You can always just read pixel luminance to get a "lighting only" sort of buffer from the scene, but it's not actually "lighting only" since luminance is perceived brightness.

Anyway, the extent of the engine customisation required really depends on the stylised look you're going for. Plenty of people have achieved some really beautiful stylised stuff without needing to rewrite the render pipeline.

Raenir Salazar
Nov 5, 2010

"According to Wikipedia" there is a black hole that emits zionist hawking radiation where my brain should have been

I really should just shut the fuck up and stop posting forever
College Slice
You can also I think pass in a vector of a location of some other actor and use that as a fake light source, I think that's what Arc System Works does to further control the shading and something I did for something similar for my Solar System simulation project so all the planets would be lit only on the half facing the sun without relying on the directional lighting in Unreal which did freaky undefined things for the scientifically astronomically proportionally accurate scales I was using.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
There's been some real butthurt going on, but I wanna park here for a second because somebody was goodposting:

Red Mike posted:

The back and forth literally reads like every time I've helped someone moving from Unity to Unreal and had to repeatedly play the XY problem game as soon as they hit one of the big differences, like the most common being UI and how in Unreal you set up 'pull' code vs. Unity you push data from code instead.
I wanted to make sure I understood this correctly. Are you comparing Unreal event-drive GUI programming to Unity's immediate mode GUI stuff? This seems really important and I want to make sure I understand it.

Also, whatever other contrasts you have on the feel of Unity. These kind of "vibes" are actually pretty useful to know especially for some poor fool like me coming over from Unity.

Raenir Salazar
Nov 5, 2010

"According to Wikipedia" there is a black hole that emits zionist hawking radiation where my brain should have been

I really should just shut the fuck up and stop posting forever
College Slice
The worst thing about Unreal's GUI is needing to know about the Widget Reflector to debug anything or to know what you're dealing with, especially if you're new to a big project and obviously have no idea where anything is. :v: Unity's is a little more convenient to work with since the canvas also exists in the scene hierarchy.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Rocko Bonaparte posted:

There's been some real butthurt going on, but I wanna park here for a second because somebody was goodposting:

I wanted to make sure I understood this correctly. Are you comparing Unreal event-drive GUI programming to Unity's immediate mode GUI stuff? This seems really important and I want to make sure I understand it.

Also, whatever other contrasts you have on the feel of Unity. These kind of "vibes" are actually pretty useful to know especially for some poor fool like me coming over from Unity.

my reading is that in unreal you likely have something more akin to MVVM instead of the assumption unity makes that you have a behavior that writes values to a thing. so your UI selects what values you want, instead of being force fed values. with some effort, you can do the same in unity.

havent used unreal so im not entirely sure if thats the case.

jizzy sillage
Aug 13, 2006

Unreal Widgets can bind to values, so when the value updates so does the Widget representation - the UI is pulling data. I don't enjoy UI development at all so I tried to avoid it and jumped ship to Unreal long before I learned Unity best practice, but I'm guessing in Unity the object will set the value in the UI, so the object is pushing to the UI?

Unreal also has a new MVVM system, UMG View Model.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

jizzy sillage posted:

Unreal Widgets can bind to values, so when the value updates so does the Widget representation - the UI is pulling data. I don't enjoy UI development at all so I tried to avoid it and jumped ship to Unreal long before I learned Unity best practice, but I'm guessing in Unity the object will set the value in the UI, so the object is pushing to the UI?

Unreal also has a new MVVM system, UMG View Model.

most large scale projects I've worked in unity have some sort of mvvm through a context object to decouple ui development from janitoring data. so it nets out the same.

Red Mike
Jul 11, 2011

Rocko Bonaparte posted:

Are you comparing Unreal event-drive GUI programming to Unity's immediate mode GUI stuff? This seems really important and I want to make sure I understand it.

Also, whatever other contrasts you have on the feel of Unity. These kind of "vibes" are actually pretty useful to know especially for some poor fool like me coming over from Unity.

Basically yes, although it's not strictly speaking immediate mode, it's just a push approach instead of event driven, i.e. you set values/options in the UI objects directly. It's not like imgui where you're having to basically re-specify the UI every frame in order to keep it drawn (and therefore have to manage state/etc yourself), you just get a bunch of UI objects that you store references to and then set properties in those objects to make it change.

I don't think either approach is better or worse for small scale projects, but Unity's approach breaks down pretty badly for large scale projects that want to have a consistent UI framework, unless you build something that 99 times out of 100 is a pull architecture built on top of what's there. But if people used it at smaller scales or only for prototypes, then they won't have done this and expect the push architecture to be 'standard'; hell AFAIK there still isn't any established major UI library/framework on top of Unity UI that does this (probably because it's so hard to genericise something like this properly for game UI).

leper khan posted:

most large scale projects I've worked in unity have some sort of mvvm through a context object to decouple ui development from janitoring data. so it nets out the same.

^ Basically this, you end up setting something up where you end up with something much closer to Unreal's approach (but not necessarily the exact same, and you usually add a bunch of stuff that Unreal doesn't provide out of the box anyway).

To be clear: the thing I'm highlighting with the example is when someone used to pushing data to UI goes to Unreal, their default approach seems to be the opposite: try to get the Unreal approach to work in a push style.. which sounds like it should be pretty simple (just make something to hold the desired state of the UI, make the UI read from it, and have inputs on that state container that you can 'push' updates to). Unfortunately, they tend to run into two issues in the same order:

"How do I make my state container push the info to the UI" - until they remember this is the point of the thing and you have to make the UI read from it instead; usually they get fooled by the fact that the C++ classes for the UI do in fact allow some amount of access to apparently 'push' data.
"OK I have my state container working and the UI pulling from it (probably tied in via blueprint), how do I make the inputs generic so that I don't have to write boilerplate for each new UI component/value I want to support" - usually after a couple attempts to do this they start realising that there's something wrong with the approach because all they're doing seems to be writing boilerplate/glue code.

jizzy sillage posted:

I don't enjoy UI development at all so I tried to avoid it and jumped ship to Unreal long before I learned Unity best practice, but I'm guessing in Unity the object will set the value in the UI, so the object is pushing to the UI?

Yeah more or less; you create your UI objects (ideally at design-time) and get references to them. You then have various properties you can set/methods you can call to affect the UI, and you'd normally be calling them from whatever your update/render logic is doing.

There are a couple other approaches to UI in Unity really, but they're not as well-supported/used still AFAIK. Or at least one of the official ones does tend to be used/supported but for specific kinds of UI like game world UI or web views. All I really know about the newer developments is what I've heard or seen in projects but I haven't had to use them.

Red Mike fucked around with this message at 09:04 on Apr 15, 2024

Raenir Salazar
Nov 5, 2010

"According to Wikipedia" there is a black hole that emits zionist hawking radiation where my brain should have been

I really should just shut the fuck up and stop posting forever
College Slice
At the end of the day of course, if you're new to game development or even as an experienced developer switching it up with Indie/personal projects, coding any code at all, even inoptimal code or a inoptimal approach, is better than spending all your time trying to do things the "right" way and not making any progress in your game. Because coding is just as much a creative pursuit and some people only have the mental energy for what they want to do in that moment.

BornAPoorBlkChild
Sep 24, 2012
was debating whether or not to post this in the FG thread

https://twitter.com/Otohadou22/status/1779589229204459940?t=eq2KQT3sF5yWGOHXWiCNlg&s=19

the quality of Mods for UMvC3 have been increasing to an insane degree over the months (to the point they're importing Animations from other games and originals).


would love to see them take on another one


If this isn't allowed I will happily remove it

BornAPoorBlkChild fucked around with this message at 01:06 on Apr 16, 2024

sebmojo
Oct 23, 2010


Legit Cyberpunk









Is this a good thread to ask about Godot? My kid is doing game design and has hit a problem that seems like it should be really simple to solve but

Basically it's a physics object that should be emitted and then keep moving subject to physics. Instead it just pops out and stops.

reignonyourparade
Nov 15, 2012
I think you're gonna need to give more details than that.

Tunicate
May 15, 2012

sebmojo posted:

Is this a good thread to ask about Godot? My kid is doing game design and has hit a problem that seems like it should be really simple to solve but

Basically it's a physics object that should be emitted and then keep moving subject to physics. Instead it just pops out and stops.

Is it running a _physics_process thst includes a command like velocity=move_and_slide()?

Might need to set initial velocity?

sebmojo
Oct 23, 2010


Legit Cyberpunk









Thanks! I'm on my phone, I'll post some more details when I'm home, just checking that this was a useful place to post the question.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
This is a valid spot, yeah. You could also join the Dogpit discord server. It's an SA-adjacent gamedev server, and there's a fair few godot users there.

Raenir Salazar
Nov 5, 2010

"According to Wikipedia" there is a black hole that emits zionist hawking radiation where my brain should have been

I really should just shut the fuck up and stop posting forever
College Slice

TooMuchAbstraction posted:

This is a valid spot, yeah. You could also join the Dogpit discord server. It's an SA-adjacent gamedev server, and there's a fair few godot users there.

I hope that's not the racism gamedev server I was linked to before in the thread. :smith:

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Raenir Salazar posted:

I hope that's not the racism gamedev server I was linked to before in the thread. :smith:

dogpit came out of awfuljams

Adbot
ADBOT LOVES YOU

Raenir Salazar
Nov 5, 2010

"According to Wikipedia" there is a black hole that emits zionist hawking radiation where my brain should have been

I really should just shut the fuck up and stop posting forever
College Slice

leper khan posted:

dogpit came out of awfuljams

That's good and reassuring. The other discord in question I was pretty surprised when I looked up and saw them defending the dude who said women couldn't be programmers in a "Well he's right!" way.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply