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
Obsurveyor
Jan 10, 2003

Hanpan posted:

Are there any shader buffs itt? I'm struggling to find an answer to what I'm hoping is relatively simple problem.

I'm basically trying (in Unity) to create a shader that flattens anything beneath it. The goal is to create a plane that acts as a sheet of water inside of an isometric environment. Playing about I managed to create the inverse of what I want, but nothing I seem to do inverts the effect:



Is there a generic term for this type of shader? It's hard to research when you have no idea what you're looking for!

If I understand correctly, one way to do it would be to set the stencil buffer when you render the water. Then you render the objects with a two pass shader, one for stencil pass, one for fail. When it passes the stencil comparison, your object shader does its normal thing. When it fails the stencil comparison, you render red(using your example) or whatever. You'll also need to make sure you render your water before the other things in your scene. The stencil buffer is Pro only until Unity 4.6.

Adbot
ADBOT LOVES YOU

Tres Burritos
Sep 3, 2009

So I've been trying to figure out exactly how dual contouring works and make my own implementation of it.

I think I get the gist of what's going on with the algorithm, but I'm having trouble wrapping my head around the "Adaptive" part of it.

The original dual contoring paper posted:

The previous algorithm for dual contouring has the obvious disadvantage of being formulated for uniform grids. In practice, most of a uniform grid is devoted to storing homogeneous cubes (i.e; cubes whose vertices all have the same sign). Only a small fraction of the cubes are heterogeneous and, thus, intersect the contour. One way to avoid this waste of space is to replace the uniform grid by an octree. In this section, we describe an adaptive version of dual contouring based on simplifying an octree whose leaves contain QEFs. This method is essential an adaptive variant of a uniform simplification method. Our method has three steps.

  1. Generate a signed octree whose homogeneous leaves are maximally collapsed.
  2. Construct a QEF for each heterogeneous leaf and simplify the octree using these QEFs.
  3. Recursively generate polygons for this simplified octree.

This reads to me like,
"Instead of just a 3D grid, we simplify the grid by putting it into an octree and "collapsing" the tree for large stretches of space that are completely solid or completely empty"

So it's not really an octree in the sense that you can't just throw random vertices into it because then you wouldn't really have a way to figure out where the "edge" of the surface is. So your data is still in a uniform grid but it's been "compacted" into the octree?

I think this is what the paper means but I'm not 100% that I'm missing something.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Obsurveyor posted:

If I understand correctly, one way to do it would be to set the stencil buffer when you render the water. Then you render the objects with a two pass shader, one for stencil pass, one for fail. When it passes the stencil comparison, your object shader does its normal thing. When it fails the stencil comparison, you render red(using your example) or whatever. You'll also need to make sure you render your water before the other things in your scene. The stencil buffer is Pro only until Unity 4.6.
For this type of thing, you only need depth test, and the problem in this case is probably that the depth test is the reverse of what it should be.

Hanpan
Dec 5, 2004

OneEightHundred posted:

For this type of thing, you only need depth test, and the problem in this case is probably that the depth test is the reverse of what it should be.

Obsurveyor posted:

If I understand correctly, one way to do it would be to set the stencil buffer when you render the water. Then you render the objects with a two pass shader, one for stencil pass, one for fail. When it passes the stencil comparison, your object shader does its normal thing. When it fails the stencil comparison, you render red(using your example) or whatever. You'll also need to make sure you render your water before the other things in your scene. The stencil buffer is Pro only until Unity 4.6.

Hmm - I guess the issue here is going to be making it work on mobile.

Feel like I must be missing a trick here, or at least the terminology to describe what I'm after, because you see this kind of thing quite a lot in games like Fez and Monument valley.

Obsurveyor
Jan 10, 2003

Hanpan posted:

Hmm - I guess the issue here is going to be making it work on mobile.

It's nothing complex and I don't know why stencil popped into my head before depth but I think either would work would work on mobile fine, they've been used in 3D graphics for decades now.

quote:

Feel like I must be missing a trick here, or at least the terminology to describe what I'm after, because you see this kind of thing quite a lot in games like Fez and Monument valley.

Maybe you should try describing what you're after again. It sounded to me like you wanted to show some kind shadow for the object under water instead of its actual color.

Hanpan
Dec 5, 2004

Obsurveyor posted:


Maybe you should try describing what you're after again. It sounded to me like you wanted to show some kind shadow for the object under water instead of its actual color.

Basically this exact effect:

http://imgur.com/mfn5Q0O

See how the water turns the building a flat colour? That.

dupersaurus
Aug 1, 2012

Futurism was an art movement where dudes were all 'CARS ARE COOL AND THE PAST IS FOR CHUMPS. LET'S DRAW SOME CARS.'

Hanpan posted:

Basically this exact effect:

http://imgur.com/mfn5Q0O

See how the water turns the building a flat colour? That.

Do you really need a shader to do that? Not that shaders aren't cool, but you could do the same with unlit geometry set to some color.

Hanpan
Dec 5, 2004

dupersaurus posted:

Do you really need a shader to do that? Not that shaders aren't cool, but you could do the same with unlit geometry set to some color.

I'd like it to be a shader, as not shown is how the water level rises and falls.

Flownerous
Apr 16, 2012
There's usually a bunch of ways to achieve an effect like that. I haven't tried any of these but they are what I would try.

This is the simplest one I can think of but involves modifying the shader of all your models and assumes that the water is flat.

code:
1. Draw the water as light blue with no depth write or test. (Or just clear the screen to the light blue colour if that works.
2. Draw the geometry with a blend to dark blue based on the Y position.
Here are some other ways:

code:
1. Draw the water as light blue, with depth write.
2. Draw the geometry with DepthTest = GEqual and a dark blue material.
3. Draw the geometry as normal.
code:
1. Draw the geometry as normal.
2. Draw the water as light blue, with depth test and depth write.
3. Draw the geometry with DepthTest = GEqual and a dark blue material.
code:
1. Draw the geometry as normal.
2. Draw the water as dark blue with no depth write.
3. Draw the water as light blue with a vertex shader projecting it to the far camera plane. 

Flownerous fucked around with this message at 03:08 on Sep 6, 2014

Bob Morales
Aug 18, 2006


Just wear the fucking mask, Bob

I don't care how many people I probably infected with COVID-19 while refusing to wear a mask, my comfort is far more important than the health and safety of everyone around me!

Anyone have a suggestion for improving my collision detection (floors) routine?

I started playing around with a Javascript Donkey Kong clone. My sprite sheet (5x8) looks like this:



Levels (by tile index)



Works here:



Doesn't work here:



My code looks like this:
code:
        if (o.jVelocity >= 0)  {  // gravity

          // 0 - blank
          // 1 - solid
          // 8-15 - x-7  pixels deep
          // 24-31 - x-23 pixels deep (ladder blocks)

          // check the block under mario
          underBlock = (level[Math.ceil(o.y/YSIZE)][Math.ceil(o.x/XSIZE)]); // block under mario
          currentBlock = (level[Math.floor(o.y/YSIZE)-1][Math.floor(o.x/XSIZE)]); // block mario is 'in'
          
          fallDist = 0;

          // do a mod 8 to determine which half of the block you're in
          // only check falling
          // either fall and land or just fall
          // check left/right separately
          // check left/right blocks and move up otherwise stay level or drop

          if ((o.y % 16) == 0) {  // perfectly in the grid
            if (underBlock == 0) { // empty underneath
              fallDist = 8;
            } else if (underBlock == 1) { // regular brick underneath
              fallDist = 0;
            } else if (between(underBlock, 8, 15) || between(underBlock, 24, 31)) {  // angled brick below
              // if distance between remainder of grid and top of angled brick > 8 fall
              fallDist = 0;
            } else {
              fallDist = 8;
            }
          } else {  // not perfectly in the grid
            console.log("o.y: " + o.y + " % 16: " + (o.y%16) + " Underblock: " + underBlock);
            if (underBlock == 0) {
              fallDist = 8;
            } else if (underBlock == 1) {
              if ((16-(o.y % 16)) < 8) {
                fallDist = Math.min(8, o.y % 8);
              } else {
                fallDist = 8;
              }
            } else if (between(underBlock, 8, 15) || between(underBlock, 24, 31)) {  // angled brick below
              // if distance between remainder of grid and top of angled brick > 8 fall
              if ((16-(o.y % 16)) < 8) {
                fallDist = Math.min(8, o.y % 8);
              } else {
                fallDist = 8;
              }
            } else {
              fallDist = 8;
            }
          }
          if (fallDist > 0) {  // fall down
            o.y += Math.min(8, fallDist);
          }
I'm getting stuck on how to check for the 'real' height of a block that doesn't take up a whole grid. It just seems way more complicated than it should be and I don't imagine the 8-bit versions of this game had that complicated of a routine.

Admiral Snuggles
Dec 12, 2008

:qq: Freedom :qq:

Bob Morales posted:

Anyone have a suggestion for improving my collision detection (floors) routine?

I'm getting stuck on how to check for the 'real' height of a block that doesn't take up a whole grid. It just seems way more complicated than it should be and I don't imagine the 8-bit versions of this game had that complicated of a routine.

In some platformer code I've seen there is a very thin invisible "skin" that goes on top of all the floors to sort of "help" the collision detection. Your code would something like:

code:
if comingDownFromAJump and collidingWithSkin then
	verticalVelocity = 0.01

Also, dude, you need to learn some states.

http://gameprogrammingpatterns.com/state.html

:)

Floor is lava
May 14, 2007

Fallen Rib
I have to be missing something completely trivial. Any ideas?

quote:

Error 5 error C2783: 'boost::weak_ptr<T> Entity::GetComponent(const ComponentId)' : could not deduce template argument for 'ComponentType' c:\users\floorislava\dropbox\workspace\ces\ces\src\main.cpp 44 1 CES

Inside the entity class as a public member function:
code:
template <class ComponentType>
boost::weak_ptr<ComponentType> GetComponent(const ComponentId id)
{
	EntityComponents::iterator iter = m_components.find(id);
	if (iter != m_components.end())
	{
		StrongComponentPtr pBase(iter->second);
		boost::shared_ptr<ComponentType> pSub(boost::static_pointer_cast<ComponentType>(pBase));
		boost::weak_ptr<ComponentType> pWeakSub(pSub);

		return pWeakSub;
	}
	else
	{
		return boost::weak_ptr<ComponentType>();
	}
}

Inverness
Feb 4, 2009

Fully configurable personal assistant.
Which line is the error message indicating?

SupSuper
Apr 8, 2009

At the Heart of the city is an Alien horror, so vile and so powerful that not even death can claim it.

floor is lava posted:

I have to be missing something completely trivial. Any ideas?


Inside the entity class as a public member function:
code:
template <class ComponentType>
boost::weak_ptr<ComponentType> GetComponent(const ComponentId id)
{
	EntityComponents::iterator iter = m_components.find(id);
	if (iter != m_components.end())
	{
		StrongComponentPtr pBase(iter->second);
		boost::shared_ptr<ComponentType> pSub(boost::static_pointer_cast<ComponentType>(pBase));
		boost::weak_ptr<ComponentType> pWeakSub(pSub);

		return pWeakSub;
	}
	else
	{
		return boost::weak_ptr<ComponentType>();
	}
}

Since you didn't post the line that actually triggers the error, I assume you're trying to do "entity.GetComponent(id)" when you need to do "entity.GetComponent<ComponentTypeIWant>(id)" because the compiler can't deduce what type is appropriate.

Floor is lava
May 14, 2007

Fallen Rib

SupSuper posted:

Since you didn't post the line that actually triggers the error, I assume you're trying to do "entity.GetComponent(id)" when you need to do "entity.GetComponent<ComponentTypeIWant>(id)" because the compiler can't deduce what type is appropriate.

That did it. Thanks.

ahmeni
May 1, 2005

It's one continuous form where hardware and software function in perfect unison, creating a new generation of iPhone that's better by any measure.
Grimey Drawer
Been working over the past few days on implementing a procedural dungeon generator as detailed here. Main algorithm is finally complete and I'm liking the results so far:

Jewel
May 2, 2009

ahmeni posted:

Been working over the past few days on implementing a procedural dungeon generator as detailed here. Main algorithm is finally complete and I'm liking the results so far:



Ah! That's my favorite dungeon generation algorithm because it's so unique. I like your take on it, and the realtime visualisation is really drat neat!

Yodzilla
Apr 29, 2005

Now who looks even dumber?

Beef Witch

ahmeni posted:

Been working over the past few days on implementing a procedural dungeon generator as detailed here. Main algorithm is finally complete and I'm liking the results so far:



This is sweet.

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

Bob Morales posted:

Anyone have a suggestion for improving my collision detection (floors) routine?

I started playing around with a Javascript Donkey Kong clone. My sprite sheet (5x8) looks like this:



I'm getting stuck on how to check for the 'real' height of a block that doesn't take up a whole grid. It just seems way more complicated than it should be and I don't imagine the 8-bit versions of this game had that complicated of a routine.

http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/

Synthbuttrange
May 6, 2007

ahmeni posted:

Been working over the past few days on implementing a procedural dungeon generator as detailed here. Main algorithm is finally complete and I'm liking the results so far:



The best is those two rooms on the left that are right next to each other, but require a trek all the way around to get to between the two.

ahmeni
May 1, 2005

It's one continuous form where hardware and software function in perfect unison, creating a new generation of iPhone that's better by any measure.
Grimey Drawer

SynthOrange posted:

The best is those two rooms on the left that are right next to each other, but require a trek all the way around to get to between the two.

Yeah, minimum spanning trees can unfortunately have that effect as the only condition is that the graph is entirely reachable. There's a bit of logic that throws some of the discarded edges back in and I may tweak it to prefer adding low cost routes. Though on the other hand you can do things like taking the longest chain and turn them into boss rooms or treasure rooms, etc. so it wouldn't so much be a long trek as two different objective paths.

HappyHippo
Nov 19, 2003
Do you have an Air Miles Card?
I don't think there's anything wrong with it, I kinda like it. Feels more unique to have that kind of thing occasionally.

Very cool animation by the way. I love seeing algorithms depicted visually.

Jo
Jan 24, 2005

:allears:
Soiled Meat

ahmeni posted:

Been working over the past few days on implementing a procedural dungeon generator as detailed here. Main algorithm is finally complete and I'm liking the results so far:



This is seriously awesome looking. Did you do the visualization in-engine, or is this just a neat thing you produced with outside tools?

ahmeni
May 1, 2005

It's one continuous form where hardware and software function in perfect unison, creating a new generation of iPhone that's better by any measure.
Grimey Drawer

Jo posted:

This is seriously awesome looking. Did you do the visualization in-engine, or is this just a neat thing you produced with outside tools?

At the moment this is all the engine does, with the underlying data being a bunch of room objects with some iteration logic to slow things down. With the amount of positive feedback I've heard about the animation it would be neat to integrate it as an intro to a level. The next step is translation into Phaser's tile map support.

echinopsis
Apr 13, 2004

by Fluffdaddy
The reason I am so into game development and computers is that when you put in the time and theory you get awesome poo poo like that. You cna acheive your dreams

Stick100
Mar 18, 2003

ahmeni posted:

At the moment this is all the engine does, with the underlying data being a bunch of room objects with some iteration logic to slow things down. With the amount of positive feedback I've heard about the animation it would be neat to integrate it as an intro to a level. The next step is translation into Phaser's tile map support.

Yes it would be a pretty awesome opening but of course could give away a great deal of information about the map. If your game is exploration device you could show everything but the final version (up to the direct lines, but not the right angled lines), but it might also be awesome to let them know the room layout but have no idea what's in each room.

You would get a much higher tolerance for waiting if you let people see that for their own levels. What did you program the generation in?

Lowen SoDium
Jun 5, 2003

Highen Fiber
Clapping Larry
So I got an Unreal Engine account this last weekend and have spent a few hours playing around with it.

First and foremost, I can not believe how good the lighting in UE4 is. It is incredible.

Secondly, Blueprint is pretty freaking awesome. I had originally planned on doing more in C++, but Blueprint is powerful enough that it looks like it can do practically everything I would ever need to do, quicker and easier than I could do it in C++ (I am not a professional programmer).

Finally, I find UE4's pricing to be more attractive. I don't really need Unity3d's PRO features, but I feel better knowing that I have a legit license for everything with UE4. And I don't think I am ever going to have to worry about UE4 5% fee since I am mostly planning on free games and just screwing around.

I only really have two complaints about UE4 when compared to Unity3d

1: The editor has more than a couple of bugs. So far, they mostly seem to be stability bugs. I have had a few instances where I was able to cause the editor to crash by repeating certain steps in a certain order.

2: WebGL is still in beta and is kind of a pain to get set up (also requires a 64bit browser for now). I know that Unity3d doesn't really have WebGL yet, but they do have a pretty decent browser plugin that gets you more or less to the same place.

brian
Sep 11, 2001
I obtained this title through beard tax.

Hey chaps, I was wondering if anyone had any experience with speech recognition and specifically if there are good packages available for somehow deriving intent from speech that isn't just recognising single words regardless of context, I remember stuff involving POS tagging and hidden markov models from a rudimentary AI class I had years ago, but I was hoping there would be some sort of prebuilt solution for this sort of thing. It's basically for directing a character to do things like running to objects and interacting them and so on.

scissorman
Feb 7, 2011
Ramrod XTreme

brian posted:

Hey chaps, I was wondering if anyone had any experience with speech recognition and specifically if there are good packages available for somehow deriving intent from speech that isn't just recognising single words regardless of context, I remember stuff involving POS tagging and hidden markov models from a rudimentary AI class I had years ago, but I was hoping there would be some sort of prebuilt solution for this sort of thing. It's basically for directing a character to do things like running to objects and interacting them and so on.

It's been a while since I looked at this stuff as part of my master's thesis but as far as I know there is no ready solution.

For general-purpose stuff like POS etc. you could look at the Python NLTK or the Stanford NLP tools but you should be aware that you'll need to do some post-processing to transform from POS to your specific intent.
You'd also need something for the speech recognition part and you can probably find similar libraries for that part; looking around, I found CMU Sphinx but I can't comment on the quality.

Still, dealing with the general case of extracting semantics from speech/text is a really hard problem and I'd recommend to make things easier by going with a more limited solution, either by writing your own natural language DSL or adapting a tool implementing subset of natural language like Attempto, which is what I ended up doing.

Someone else may know better, game development-specific solutions but this is what I'd recommend.

brian
Sep 11, 2001
I obtained this title through beard tax.

Ah brilliant, i'll look into all the links and see whether I'll ever have the time to implement it well enough to be worthwhile, a limited solution will almost definitely be fine given the context of just commanding a thing I imagine, I just want it to be as intuitive for the player as possible. Thanks!

echinopsis
Apr 13, 2004

by Fluffdaddy

Thankfully the devs are solid working away improving things!

The lighting is amazing when static but not as such when it's dynamic. i find the mix of the two unsettling at times. also the default temporal AA doesn't work for my game and there aren't many other options for tuning it!


blueprints are amazing though and also the way you can use them, make a object that is a wall with lights built in and have the wall build it's own colours and yeah I am stoked l have made rockets that fire and follow my pawn and they run by themselves! I am exite

ahmeni
May 1, 2005

It's one continuous form where hardware and software function in perfect unison, creating a new generation of iPhone that's better by any measure.
Grimey Drawer

Stick100 posted:

Yes it would be a pretty awesome opening but of course could give away a great deal of information about the map. If your game is exploration device you could show everything but the final version (up to the direct lines, but not the right angled lines), but it might also be awesome to let them know the room layout but have no idea what's in each room.

You would get a much higher tolerance for waiting if you let people see that for their own levels. What did you program the generation in?

The generation itself is all currently in javascript with Phaser. I don't really like it but being pure js means I can hack away at it on breaks at work without the wind turbine that is Unity kicking in. I'll likely port it over to Unity/Futile once it's nearer to completion.

Stick100
Mar 18, 2003

Lowen SoDium posted:

1: The editor has more than a couple of bugs. So far, they mostly seem to be stability bugs. I have had a few instances where I was able to cause the editor to crash by repeating certain steps in a certain order.

2: WebGL is still in beta and is kind of a pain to get set up (also requires a 64bit browser for now). I know that Unity3d doesn't really have WebGL yet, but they do have a pretty decent browser plugin that gets you more or less to the same place.

1. Which editor are you using, Windows Mac or OSX?

2. WebGL doesn't "require" 64 bit exactly. If you make a shipping build instead of a development build it will likely work on 32 bit browsers. There is also a setting you can change (it changes the heap size) that will make it much more likely to deploy to browsers.

They asked for feed back on the HTML5 builds and I started a thread and it was 1. Get it working on 32 bit browsers, or give a dip switch to help.
2. Get it working on the launcher builds so you don't have to download the source.

There were some other feedbacks, but those 2 were pretty much unanimous. They have stated they are working on HTML5 this cycle (usually about 1 month) and have not yet announced the features for the next build.

In short if you want HTML5 it will likely be fixed in the next two months so just go ahead and get your game put together and by the time you're ready they should be ready too. (However you'll likely have to spend another $19 when it's ready).

UE4 reminders:

1. The 5% only counts after your first 3K per quarter per game. So very few people will ever pay it.

2. You can cancel at anytime and retain github/new launchers access until you hit your 30 days. I always signup, check I have access then immediately cancel and have had full access for the full 30 days.

3. After your sub. expires you lose github access a bit after, and you stop getting access to new Launcher builds. However the launcher will still work and you can still re download all the builds/content that was available when your subscription lapsed.

As an example of this if you paid $19 at launch and then immediately cancelled and then opened the launcher now (roughly 6 months later) you'd still be able to get access to UE 4.0 or 4.1 if that came out in the first 30 days and the sample content that launched, but not the new content like vehicle game. As it happens the vehicle game wouldn't work with UE4.0 as it required engine changes in UE4.2.

It's an insane deal and I wish I wasn't so bought into C# (10 years experience) to make it unappealing to use.

Lowen SoDium
Jun 5, 2003

Highen Fiber
Clapping Larry

Stick100 posted:

1. Which editor are you using, Windows Mac or OSX?
Windows. I haven't lost any work from it crashing yet, but I also am mostly just screwing around right now.

Stick100 posted:

2. WebGL doesn't "require" 64 bit exactly. If you make a shipping build instead of a development build it will likely work on 32 bit browsers. There is also a setting you can change (it changes the heap size) that will make it much more likely to deploy to browsers.

They asked for feed back on the HTML5 builds and I started a thread and it was 1. Get it working on 32 bit browsers, or give a dip switch to help.
2. Get it working on the launcher builds so you don't have to download the source.

There were some other feedbacks, but those 2 were pretty much unanimous. They have stated they are working on HTML5 this cycle (usually about 1 month) and have not yet announced the features for the next build.

In short if you want HTML5 it will likely be fixed in the next two months so just go ahead and get your game put together and by the time you're ready they should be ready too. (However you'll likely have to spend another $19 when it's ready).

Thats good news. I haven't actually tried a web build yet, but it sounds like it is coming along faster than I thought it was.

Stick100 posted:




UE4 reminders:

1. The 5% only counts after your first 3K per quarter per game. So very few people will ever pay it.

2. You can cancel at anytime and retain github/new launchers access until you hit your 30 days. I always signup, check I have access then immediately cancel and have had full access for the full 30 days.

3. After your sub. expires you lose github access a bit after, and you stop getting access to new Launcher builds. However the launcher will still work and you can still re download all the builds/content that was available when your subscription lapsed.

As an example of this if you paid $19 at launch and then immediately cancelled and then opened the launcher now (roughly 6 months later) you'd still be able to get access to UE 4.0 or 4.1 if that came out in the first 30 days and the sample content that launched, but not the new content like vehicle game. As it happens the vehicle game wouldn't work with UE4.0 as it required engine changes in UE4.2.

It's an insane deal and I wish I wasn't so bought into C# (10 years experience) to make it unappealing to use.

I didn't know a about the first thing. That is pretty good news too.

As far as it being unappealing to use because of your C# experience, have you messed with Blueprints? I am curious how a more experienced programmer feels about them, especially a C# programmer. I have a friend who is a professional programmer who does almost everything in Java or C#. He has mostly been playing in Unity 3d because of that and and hasn't tried Unreal Engine because he likes C# a lot more than C++. After I have been playing in UE4, I have been telling him about Blueprint and I think he would like it but I am curious about how another C# programmer feels about it.

echinopsis
Apr 13, 2004

by Fluffdaddy

Lowen SoDium posted:

curious about how another C# programmer feels about it.

Me too! Because I don't "get" my OOP so well, blueprints let me keep trying things till they work. It would be a MUCH slower process with code. For a seasoned coder who made little errors I can't imagine much benefit in them.

Currently my disappointment is with how temporal AA is not suitable for something I am trying to do (leaves artifacts) but it overall looks much nicer than FSAA which I'm left using. Welp

Stick100
Mar 18, 2003

Lowen SoDium posted:

As far as it being unappealing to use because of your C# experience, have you messed with Blueprints? I am curious how a more experienced programmer feels about them, especially a C# programmer. I have a friend who is a professional programmer who does almost everything in Java or C#. He has mostly been playing in Unity 3d because of that and and hasn't tried Unreal Engine because he likes C# a lot more than C++. After I have been playing in UE4, I have been telling him about Blueprint and I think he would like it but I am curious about how another C# programmer feels about it.

Blueprint is all right I've spent a couple hours with it and like it. It's REALLY well implemented and a much better visual programming language than anything else I've seen (like Scratch or Playmaker). If I was going to work full time on game development I think I could throw out my C# work and switch to blueprint + C++. If you are not a professional programmer and have no interest in being one then UE4/Blueprint is the best solution for making games currently.

I'm still working days (and probably will for years to come) as a C# dev so I'm in C# already 40 hours a week using Visual Studio and Resharper and very comfortable with that tool chain. Now that Unity works with Visual Studio and Resharper out of the box I can't really choose any other tool set or my sanity and career. The experience transfers exactly between web dev and game dev, you're dealing with nearly the same issues so I can't really deal with another programming environment. As a programmer who has already had to deal with certain issues (like OAuth calls to Google, or updating large data sets quickly) in his day job, being able to use the exact same code is really useful.

In the last 3 years I've done Java, C++, C#, VB.Net, Javascript, a couple flavors of SQL and by far what I've found most productive is when I can spend the most amount of time in C#.

Stick100
Mar 18, 2003

echinopsis posted:

Me too! Because I don't "get" my OOP so well, blueprints let me keep trying things till they work. It would be a MUCH slower process with code. For a seasoned coder who made little errors I can't imagine much benefit in them.

Blueprint (and all visual programming languages that emphasis state) are useful for a professional programmer but certain things (like doing a parallel foreach) will always be way easier in a non-visual programming language. This is why often times people will mix the two with certain developers using one much more heavily than another.

Unity actually has a pretty good state based system in Mecanim Animation System. In the training video for Unite they explain and show that Mecanim can actually be used like Playmaker to create Finite State Machines completely unrelated to animation.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?
The Gamer's Choice phase of SA GameDev is now live, if folks want to check that out. There are some... really, really weird games this year. It's awesome :haw:

superh
Oct 10, 2007

Touching every treasure
Speaking of Mecanim, how in the world can you properly check animation completion? We're working on a 2d game that uses converted spriter -> Mecanim animations, and we need events to fire at the end of certain clips. From what we've seen with some off and on googling, the last few weeks, this may be impossible to do reliably? That can't be correct, can it?

We've tried checking the current clip normalized time, and that doesn't do the trick. Should we be looking at coroutines for this?

Adbot
ADBOT LOVES YOU

Jewel
May 2, 2009

superh posted:

Speaking of Mecanim, how in the world can you properly check animation completion? We're working on a 2d game that uses converted spriter -> Mecanim animations, and we need events to fire at the end of certain clips. From what we've seen with some off and on googling, the last few weeks, this may be impossible to do reliably? That can't be correct, can it?

We've tried checking the current clip normalized time, and that doesn't do the trick. Should we be looking at coroutines for this?

You can't. You can use an addon someone made called Mecanim Event Manager but even then the events don't fire sometimes if it's mid-transition and basically: Unity is hot garbage and I'm in pain every day until I finish the game I'm forced to work on in unity :)

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